predicate-aware-class-factory.js 682 B

1234567891011121314151617
  1. export default function predicateAwareClassFactory(predicate, trueConstructor, falseConstructor, useCaching) {
  2. if (useCaching === void 0) { useCaching = true; }
  3. var instance;
  4. var previousPredicate;
  5. return function (dependencyContainer) {
  6. var currentPredicate = predicate(dependencyContainer);
  7. if (!useCaching || previousPredicate !== currentPredicate) {
  8. if ((previousPredicate = currentPredicate)) {
  9. instance = dependencyContainer.resolve(trueConstructor);
  10. }
  11. else {
  12. instance = dependencyContainer.resolve(falseConstructor);
  13. }
  14. }
  15. return instance;
  16. };
  17. }