canBeSerialized.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = canBeSerialized;
  6. var _ParseFile = _interopRequireDefault(require("./ParseFile"));
  7. var _ParseObject = _interopRequireDefault(require("./ParseObject"));
  8. var _ParseRelation = _interopRequireDefault(require("./ParseRelation"));
  9. function canBeSerialized(obj) {
  10. if (!(obj instanceof _ParseObject.default)) {
  11. return true;
  12. }
  13. var attributes = obj.attributes;
  14. for (var attr in attributes) {
  15. var val = attributes[attr];
  16. if (!canBeSerializedHelper(val)) {
  17. return false;
  18. }
  19. }
  20. return true;
  21. }
  22. function canBeSerializedHelper(value) {
  23. if (typeof value !== 'object') {
  24. return true;
  25. }
  26. if (value instanceof _ParseRelation.default) {
  27. return true;
  28. }
  29. if (value instanceof _ParseObject.default) {
  30. return !!value.id;
  31. }
  32. if (value instanceof _ParseFile.default) {
  33. if (value.url()) {
  34. return true;
  35. }
  36. return false;
  37. }
  38. if (Array.isArray(value)) {
  39. for (var i = 0; i < value.length; i++) {
  40. if (!canBeSerializedHelper(value[i])) {
  41. return false;
  42. }
  43. }
  44. return true;
  45. }
  46. for (var k in value) {
  47. if (!canBeSerializedHelper(value[k])) {
  48. return false;
  49. }
  50. }
  51. return true;
  52. }