parse
Version:
Parse JavaScript SDK
60 lines (59 loc) • 1.46 kB
JavaScript
;
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;
}