"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = canBeSerialized; var _CoreManager = _interopRequireDefault(require("./CoreManager")); var _ParseFile = _interopRequireDefault(require("./ParseFile")); var _ParseRelation = _interopRequireDefault(require("./ParseRelation")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function canBeSerialized(obj) { const ParseObject = _CoreManager.default.getParseObject(); if (!(obj instanceof ParseObject)) { return true; } const attributes = obj.attributes; for (const attr in attributes) { const val = attributes[attr]; if (!canBeSerializedHelper(val)) { return false; } } return true; } function canBeSerializedHelper(value) { if (typeof value !== 'object') { return true; } if (value instanceof _ParseRelation.default) { return true; } const ParseObject = _CoreManager.default.getParseObject(); if (value instanceof ParseObject) { return !!value.id; } if (value instanceof _ParseFile.default) { if (value.url()) { return true; } return false; } if (Array.isArray(value)) { for (let i = 0; i < value.length; i++) { if (!canBeSerializedHelper(value[i])) { return false; } } return true; } for (const k in value) { if (!canBeSerializedHelper(value[k])) { return false; } } return true; }