12 lines
392 B
JavaScript
12 lines
392 B
JavaScript
export default function instancePerContainerCachingFactory(factoryFunc) {
|
|
const cache = new WeakMap();
|
|
return (dependencyContainer) => {
|
|
let instance = cache.get(dependencyContainer);
|
|
if (instance == undefined) {
|
|
instance = factoryFunc(dependencyContainer);
|
|
cache.set(dependencyContainer, instance);
|
|
}
|
|
return instance;
|
|
};
|
|
}
|