@zedux/atoms
Version:
A Molecular State Engine for React
27 lines (26 loc) • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.wipe = exports.setInternals = exports.getInternals = exports.getEcosystem = exports.internalStore = void 0;
const core_1 = require("@zedux/core");
const EvaluationStack_1 = require("../classes/EvaluationStack");
exports.internalStore = (0, core_1.createStore)(null, {});
const getEcosystem = (id) => exports.internalStore.getState()[id];
exports.getEcosystem = getEcosystem;
const getInternals = () => ({ stack: EvaluationStack_1.stack, store: exports.internalStore });
exports.getInternals = getInternals;
/**
* Used in child windows. Makes different instances of Zedux reuse the parent
* window's internal store and evaluation stack.
*/
const setInternals = (internals) => {
exports.internalStore = internals.store;
(0, EvaluationStack_1.setStack)(internals.stack);
};
exports.setInternals = setInternals;
const wipe = () => {
const ecosystems = Object.values(exports.internalStore.getState().ecosystems);
ecosystems.forEach(es => {
es.destroy(true);
});
};
exports.wipe = wipe;