@zedux/atoms
Version:
A Molecular State Engine for React
17 lines (16 loc) • 714 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.injectMemo = void 0;
const createInjector_1 = require("../factories/createInjector");
const index_1 = require("../utils/index");
exports.injectMemo = (0, createInjector_1.createInjector)('injectMemo', (instance, valueFactory, deps) => ({
type: `${index_1.prefix}/memo`,
deps,
result: valueFactory(),
}), (prevDescriptor, instance, valueFactory, deps) => {
const depsHaveChanged = (0, index_1.haveDepsChanged)(prevDescriptor.deps, deps);
const result = depsHaveChanged ? valueFactory() : prevDescriptor.result;
prevDescriptor.deps = deps;
prevDescriptor.result = result;
return prevDescriptor;
});