zustand-injectors
Version:
A sweet way of lazy load slices
20 lines (19 loc) • 550 B
JavaScript
const a = async (...n) => {
const [, , t] = n, c = await Promise.all(
Object.values(t.asyncSliceInitializers).map(
(i) => i()
)
);
t.setState(
c.reduce((i, s) => Object.assign({}, i, s(...n)), t.getState()),
!0
);
}, o = (n, t = {}) => (c, i, s) => {
const e = s;
return e.asyncSliceInitializers = t, e.injectAsyncSliceInitializer = async (l, r) => {
e.asyncSliceInitializers[l] = r, a(c, i, e);
}, Object.keys(e.asyncSliceInitializers).length && a(c, i, e), n(c, i, e);
}, y = o;
export {
y as injectors
};