canBeSerialized.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. "use strict";
  2. var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
  3. var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
  4. _Object$defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.default = canBeSerialized;
  8. var _isArray = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/is-array"));
  9. var _CoreManager = _interopRequireDefault(require("./CoreManager"));
  10. var _ParseFile = _interopRequireDefault(require("./ParseFile"));
  11. var _ParseRelation = _interopRequireDefault(require("./ParseRelation"));
  12. function canBeSerialized(obj) {
  13. const ParseObject = _CoreManager.default.getParseObject();
  14. if (!(obj instanceof ParseObject)) {
  15. return true;
  16. }
  17. const attributes = obj.attributes;
  18. for (const attr in attributes) {
  19. const val = attributes[attr];
  20. if (!canBeSerializedHelper(val)) {
  21. return false;
  22. }
  23. }
  24. return true;
  25. }
  26. function canBeSerializedHelper(value) {
  27. if (typeof value !== 'object') {
  28. return true;
  29. }
  30. if (value instanceof _ParseRelation.default) {
  31. return true;
  32. }
  33. const ParseObject = _CoreManager.default.getParseObject();
  34. if (value instanceof ParseObject) {
  35. return !!value.id;
  36. }
  37. if (value instanceof _ParseFile.default) {
  38. if (value.url()) {
  39. return true;
  40. }
  41. return false;
  42. }
  43. if ((0, _isArray.default)(value)) {
  44. for (let i = 0; i < value.length; i++) {
  45. if (!canBeSerializedHelper(value[i])) {
  46. return false;
  47. }
  48. }
  49. return true;
  50. }
  51. for (const k in value) {
  52. if (!canBeSerializedHelper(value[k])) {
  53. return false;
  54. }
  55. }
  56. return true;
  57. }