UNPKG

mosx

Version:

Multiview observable state management engine

63 lines 5.29 kB
"use strict"; 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