UNPKG

@zedux/atoms

Version:

A Molecular State Engine for React

29 lines (28 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IonTemplate = void 0; const ion_1 = require("../../factories/ion"); const injectAtomGetters_1 = require("../../injectors/injectAtomGetters"); const AtomInstance_1 = require("../instances/AtomInstance"); const AtomTemplateBase_1 = require("./AtomTemplateBase"); class IonTemplate extends AtomTemplateBase_1.AtomTemplateBase { constructor(key, stateFactory, _config) { super(key, (...params) => stateFactory((0, injectAtomGetters_1.injectAtomGetters)(), ...params), _config); this._get = stateFactory; } _createInstance(ecosystem, id, params) { return new AtomInstance_1.AtomInstance(ecosystem, this, id, params); } getInstanceId(ecosystem, params) { const base = this.key; if (!(params === null || params === void 0 ? void 0 : params.length)) return base; return `${base}-${ecosystem._idGenerator.hashParams(params, ecosystem.complexParams)}`; } override(newGet) { const newIon = (0, ion_1.ion)(this.key, newGet || this._get, this._config); newIon._isOverride = true; return newIon; } } exports.IonTemplate = IonTemplate;