UNPKG

recoil-toolkit

Version:
37 lines 1.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reduxSelector = exports.reduxState = void 0; var recoil_1 = require("recoil"); var _core_1 = require("../_core"); var reduxSelectorsMap = new Map(); var reduxSelectorsMapInv = new Map(); function getSelectorId(selectorFunc) { var cachedSelectorId = reduxSelectorsMapInv.get(selectorFunc); if (!cachedSelectorId) { var id = (0, _core_1.uniqueId)(); reduxSelectorsMapInv.set(selectorFunc, id); reduxSelectorsMap.set(id, selectorFunc); cachedSelectorId = id; } return cachedSelectorId; } exports.reduxState = (0, recoil_1.atom)({ key: '@recoil-toolkit.reduxState', default: undefined, }); var reduxSelectorFamily = (0, recoil_1.selectorFamily)({ key: '@recoil-toolkit.reduxSelectors', get: function (selectorId) { return function (_a) { var get = _a.get; var currentReduxState = get(exports.reduxState); var selectorFunc = reduxSelectorsMap.get(selectorId); return currentReduxState && selectorFunc ? selectorFunc(currentReduxState) : undefined; }; }, }); function reduxSelector(selector) { return reduxSelectorFamily(getSelectorId(selector)); } exports.reduxSelector = reduxSelector; //# sourceMappingURL=atoms.js.map