UNPKG

@zedux/stores

Version:

The legacy composable store model of Zedux

29 lines (28 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AtomTemplate = void 0; const atoms_1 = require("@zedux/atoms"); const atom_1 = require("./atom"); const AtomInstance_1 = require("./AtomInstance"); class AtomTemplate extends atoms_1.AtomTemplateBase { /** * This method should be overridden when creating custom atom classes that * create a custom atom instance class. Return a new instance of your atom * instance class. */ _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(newValue) { const newAtom = (0, atom_1.atom)(this.key, newValue, this._config); newAtom._isOverride = true; return newAtom; } } exports.AtomTemplate = AtomTemplate;