UNPKG

@zedux/atoms

Version:

A Molecular State Engine for React

14 lines (13 loc) 588 B
import { createInjector } from '../factories/createInjector.js'; import { haveDepsChanged, prefix } from '../utils/index.js'; export const injectMemo = createInjector('injectMemo', (instance, valueFactory, deps) => ({ type: `${prefix}/memo`, deps, result: valueFactory(), }), (prevDescriptor, instance, valueFactory, deps) => { const depsHaveChanged = haveDepsChanged(prevDescriptor.deps, deps); const result = depsHaveChanged ? valueFactory() : prevDescriptor.result; prevDescriptor.deps = deps; prevDescriptor.result = result; return prevDescriptor; });