UNPKG

respond-framework

Version:
49 lines (48 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _reserved = require("./reserved.js"); var _createEvents = require("./createEvents.js"); var _cloneDeep = require("../proxy/helpers/cloneDeep.js"); var _utils = require("../utils.js"); const extractModuleAspects = (mod, state) => { const events = { ...mod.events }; const reducers = { ...mod.reducers }; const descriptors = Object.getOwnPropertyDescriptors(mod); const selectors = mod.selectors?.__esModule ? { ...mod.selectors } : mod.selectors ?? {}; const selectorDescriptors = Object.getOwnPropertyDescriptors(selectors); Object.keys(descriptors).forEach(k => { if (_reserved.moduleApi[k]) return; extract(k, descriptors[k], selectorDescriptors, events, reducers, state); }); return [events, reducers, selectorDescriptors]; }; var _default = exports.default = extractModuleAspects; const extract = (k, descriptor, selectorDescriptors, events, reducers, state) => { const { get, value: v } = descriptor; if (get) { selectorDescriptors[k] = descriptor; } else if (!v) { state[k] = v; } else if (v[_reserved._module]) { return; } else if (v.event === true) { events[k] = v; _createEvents.extractedEvents.set(v, k); } else if (typeof v === 'function') { if (v.length >= 2) reducers[k] = v;else selectorDescriptors[k] = descriptor; } else { state[k] = _utils.isProd ? (0, _cloneDeep.default)(v) : v; // clone during development, so references aren't changed for next replay } };