UNPKG

ts-ioc-container

Version:

Fast, lightweight TypeScript dependency injection container with a clean API, scoped lifecycles, decorators, tokens, hooks, lazy injection, customizable providers, and no global container objects.

34 lines (33 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GroupInstanceToken = void 0; const InjectionToken_1 = require("./InjectionToken"); const MethodNotImplementedError_1 = require("../errors/MethodNotImplementedError"); class GroupInstanceToken extends InjectionToken_1.InjectionToken { predicate; isCascade = true; constructor(predicate) { super(); this.predicate = predicate; } select(fn) { return (s) => this.resolve(s).map(fn); } args(...deps) { throw new MethodNotImplementedError_1.MethodNotImplementedError('not implemented'); } argsFn(getArgsFn) { throw new MethodNotImplementedError_1.MethodNotImplementedError('not implemented'); } lazy() { throw new MethodNotImplementedError_1.MethodNotImplementedError('not implemented'); } cascade(isTrue) { this.isCascade = isTrue; return this; } resolve(c) { return c.getInstances(this.isCascade).filter(this.predicate); } } exports.GroupInstanceToken = GroupInstanceToken;