first commit

This commit is contained in:
Stefan Hacker
2026-04-03 09:38:48 +02:00
commit 37ad745546
47450 changed files with 3120798 additions and 0 deletions
View File
+3
View File
@@ -0,0 +1,3 @@
export { default as instanceCachingFactory } from "./instance-caching-factory";
export { default as instancePerContainerCachingFactory } from "./instance-per-container-caching-factory";
export { default as predicateAwareClassFactory } from "./predicate-aware-class-factory";
@@ -0,0 +1,9 @@
export default function instanceCachingFactory(factoryFunc) {
var instance;
return function (dependencyContainer) {
if (instance == undefined) {
instance = factoryFunc(dependencyContainer);
}
return instance;
};
}
@@ -0,0 +1,11 @@
export default function instancePerContainerCachingFactory(factoryFunc) {
var cache = new WeakMap();
return function (dependencyContainer) {
var instance = cache.get(dependencyContainer);
if (instance == undefined) {
instance = factoryFunc(dependencyContainer);
cache.set(dependencyContainer, instance);
}
return instance;
};
}
@@ -0,0 +1,17 @@
export default function predicateAwareClassFactory(predicate, trueConstructor, falseConstructor, useCaching) {
if (useCaching === void 0) { useCaching = true; }
var instance;
var previousPredicate;
return function (dependencyContainer) {
var currentPredicate = predicate(dependencyContainer);
if (!useCaching || previousPredicate !== currentPredicate) {
if ((previousPredicate = currentPredicate)) {
instance = dependencyContainer.resolve(trueConstructor);
}
else {
instance = dependencyContainer.resolve(falseConstructor);
}
}
return instance;
};
}