mosx
Version:
Multiview observable state management engine
63 lines • 5.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.compressedSnapshot = exports.snapshot = void 0;
const mobx_1 = require("mobx");
const mosx_1 = require("./mosx");
const snapshot = (target, params) => {
if (target instanceof mobx_1.ObservableMap) {
return mapSnapshot(target, params);
}
else if (target instanceof mobx_1.ObservableSet) {
return setSnapshot(target, params);
}
else if (Array.isArray(target)) {
return arraySnapshot(target, params);
}
else if (target instanceof mosx_1.Mosx) {
return mosxSnapshot(target, params);
}
else {
return target;
}
};
exports.snapshot = snapshot;
const compressedSnapshot = (target, params) => {
return target;
};
exports.compressedSnapshot = compressedSnapshot;
const mosxSnapshot = (target, params) => {
const { tags = [], objTags = mosx_1.Mosx.getTags(target) || new Set(), spy = false } = params;
const tagsArr = !Array.isArray(tags) ? [tags] : tags;
// object props
const meta = mosx_1.Mosx.meta(target);
// check if object is visible for listner
if (!spy && meta.hidden && !tagsArr.find((tag) => objTags.has(tag))) {
return;
}
// filtered visible props
const props = meta.props.filter((prop) => spy || !prop.hidden || tagsArr.find((tag) => objTags.has(tag)));
// create snapshot object
const result = {};
props.forEach(({ key }) => {
result[key] = (0, exports.snapshot)(target[key], params);
});
return result;
};
const mapSnapshot = (target, params) => {
const result = {};
for (const [key, object] of target) {
result[key] = (0, exports.snapshot)(object, params);
}
return result;
};
const arraySnapshot = (target, params) => {
return target.map((item) => (0, exports.snapshot)(item, params));
};
const setSnapshot = (target, params) => {
const result = new Set();
for (const [key, object] of target) {
result.add((0, exports.snapshot)(object, params));
}
return result;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc25hcHNob3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQW1EO0FBR25ELGlDQUE2QjtBQVl0QixNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQVcsRUFBRSxNQUF1QixFQUFPLEVBQUU7SUFDcEUsSUFBSSxNQUFNLFlBQVksb0JBQWEsRUFBRTtRQUNuQyxPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7S0FDbkM7U0FBTSxJQUFJLE1BQU0sWUFBWSxvQkFBYSxFQUFFO1FBQzFDLE9BQU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtLQUNuQztTQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNoQyxPQUFPLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7S0FDckM7U0FBTSxJQUFJLE1BQU0sWUFBWSxXQUFJLEVBQUU7UUFDakMsT0FBTyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0tBQ3BDO1NBQU07UUFDTCxPQUFPLE1BQU0sQ0FBQTtLQUNkO0FBQ0gsQ0FBQyxDQUFBO0FBWlksUUFBQSxRQUFRLFlBWXBCO0FBRU0sTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE1BQVcsRUFBRSxNQUF1QixFQUFPLEVBQUU7SUFDOUUsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUE7QUFGWSxRQUFBLGtCQUFrQixzQkFFOUI7QUFFRCxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQVcsRUFBRSxNQUF1QixFQUF5QixFQUFFO0lBRW5GLE1BQU0sRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLE9BQU8sR0FBRyxXQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU0sQ0FBQTtJQUN0RixNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUVwRCxlQUFlO0lBQ2YsTUFBTSxJQUFJLEdBQUcsV0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUU5Qix5Q0FBeUM7SUFDekMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQUUsT0FBTTtLQUFFO0lBRS9FLHlCQUF5QjtJQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUUxRyx5QkFBeUI7SUFDekIsTUFBTSxNQUFNLEdBQWMsRUFBRSxDQUFBO0lBQzVCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7UUFDeEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBRSxNQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDdEQsQ0FBQyxDQUFDLENBQUE7SUFFRixPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBcUIsRUFBRSxNQUF1QixFQUFPLEVBQUU7SUFDMUUsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFBO0lBQ3RCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUU7UUFDbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7S0FDdkM7SUFDRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBdUIsRUFBRSxNQUF1QixFQUFTLEVBQUU7SUFDaEYsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFBLGdCQUFRLEVBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUE7QUFDckQsQ0FBQyxDQUFBO0FBRUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFxQixFQUFFLE1BQXVCLEVBQU8sRUFBRTtJQUMxRSxNQUFNLE1BQU0sR0FBUSxJQUFJLEdBQUcsRUFBRSxDQUFBO0lBQzdCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUU7UUFDbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFBLGdCQUFRLEVBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUE7S0FDckM7SUFDRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQSJ9