UNPKG

@snap/camera-kit

Version:
28 lines 904 B
import { entries } from "../common/entries"; import { memoize } from "../common/memoize"; export class PartialContainer { constructor(injectables) { this.injectables = injectables; } provides(fn) { return new PartialContainer(Object.assign(Object.assign({}, this.injectables), { [fn.token]: fn })); } getFactories(parent) { return Object.fromEntries(entries(this.injectables).map(([token, fn]) => { return [ token, memoize((c) => { return fn(...fn.dependencies.map((t) => { return t === token ? parent.get(t) : c.get(t); })); }), ]; })); } getTokens() { return Object.keys(this.injectables); } } //# sourceMappingURL=PartialContainer.js.map