ClearVision/node_modules/tsyringe/dist/esm2015/factories/predicate-aware-class-factory.js

17 lines
631 B
JavaScript
Raw Normal View History

2022-07-09 16:03:26 -04:00
export default function predicateAwareClassFactory(predicate, trueConstructor, falseConstructor, useCaching = true) {
let instance;
let previousPredicate;
return (dependencyContainer) => {
const currentPredicate = predicate(dependencyContainer);
if (!useCaching || previousPredicate !== currentPredicate) {
if ((previousPredicate = currentPredicate)) {
instance = dependencyContainer.resolve(trueConstructor);
}
else {
instance = dependencyContainer.resolve(falseConstructor);
}
}
return instance;
};
}