UNPKG

respond-framework

Version:
72 lines (68 loc) 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _reserved = require("./reserved.js"); var _token = require("./selectors/token.js"); var _curr = require("./selectors/curr.js"); const createSelectors = ({ respond, proto, state }, descriptors, propDescriptors) => { const { reducers } = proto; descriptors = respond.isTop ? { curr, ...descriptors } : { curr, ...builtins, ...descriptors }; // builtins inherit state from topState reducers Object.keys(descriptors).forEach(k => { if (reducers[k]) return; // reducer takes precedence if both exist const descriptor = descriptors[k]; const { get, value: v = get } = descriptor; const kind = v.length === 0 ? 'get' : 'value'; Object.defineProperty(proto, k, { [kind]: v, configurable: true }); }); Object.keys(propDescriptors).forEach(k => { const descriptor = propDescriptors[k]; const { get, value: v = get } = descriptor; const kind = v.length === 0 ? 'get' : 'value'; const v2 = v.length === 0 ? function () { return v.call(this[_reserved._parent]); } : function (...args) { return v.call(this[_reserved._parent], ...args); }; Object.defineProperty(proto, k, { [kind]: v2, configurable: true }); if (reducers[k]) respond.overriden.set(reducers[k], true); // disable potential child reducer mock (aka "defaultProp") if (state.hasOwnProperty(k)) delete state[k]; // delete possible initialState respond.dependsOnAllAncestors = true; }); }; var _default = exports.default = createSelectors; const curr = { get: _curr.default }; const builtins = Object.getOwnPropertyDescriptors({ token: _token.default, userId: _token.userId, adminUserId: _token.adminUserId, adminUser: _token.adminUser });