UNPKG

@launchtray/tsyringe-async

Version:

Lightweight dependency injection container for JavaScript/TypeScript, with asynchronous resolution

23 lines (22 loc) 942 B
import { __awaiter, __generator } from "tslib"; export default function predicateAwareClassFactory(predicate, trueConstructor, falseConstructor, useCaching) { var _this = this; if (useCaching === void 0) { useCaching = true; } var instance; var previousPredicate; return function (dependencyContainer) { return __awaiter(_this, void 0, void 0, function () { var currentPredicate; return __generator(this, function (_a) { currentPredicate = predicate(dependencyContainer); if (!useCaching || previousPredicate !== currentPredicate) { if ((previousPredicate = currentPredicate)) { instance = dependencyContainer.resolve(trueConstructor); } else { instance = dependencyContainer.resolve(falseConstructor); } } return [2, instance]; }); }); }; }