@zedux/stores
Version:
The legacy composable store model of Zedux
29 lines (28 loc) • 1.09 kB
JavaScript
;
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;