mobx-persist-store
Version:
Mobx Persist Store
38 lines (37 loc) • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeSerializableProperties = void 0;
const configurePersistable_1 = require("./configurePersistable");
const utils_1 = require("./utils");
const isSerializableProperty = (obj) => {
const keys = ['key', 'serialize', 'deserialize'];
if (!(0, utils_1.isObject)(obj)) {
(0, utils_1.consoleDebug)(!!configurePersistable_1.mpsConfig.debugMode, 'passed value is not an object', { obj });
return false;
}
return keys.every((key) => {
if (obj.hasOwnProperty(key) && typeof key !== 'undefined') {
return true;
}
(0, utils_1.consoleDebug)(!!configurePersistable_1.mpsConfig.debugMode, `${String(key)} not found in SerializableProperty`, { key, obj });
return false;
});
};
const makeSerializableProperties = (properties) => {
return properties.reduce((acc, curr) => {
if (typeof curr === 'string') {
acc.push({
key: curr,
serialize: (value) => value,
deserialize: (value) => value,
});
return acc;
}
if (isSerializableProperty(curr)) {
acc.push(curr);
return acc;
}
return acc;
}, []);
};
exports.makeSerializableProperties = makeSerializableProperties;