| 12345678910111213141516 |
- 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;
- };
- }
|