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.
16 lines (15 loc) • 685 B
TypeScript
import { InjectionToken } from './InjectionToken';
import type { IContainer } from '../container/IContainer';
import { Instance } from '../utils/basic';
export type InstancePredicate = (dep: unknown) => boolean;
export declare class GroupInstanceToken extends InjectionToken<Instance[]> {
private predicate;
private isCascade;
constructor(predicate: InstancePredicate);
select<R>(fn: (target: Instance) => R): (s: IContainer) => R[];
args(...deps: unknown[]): this;
argsFn(getArgsFn: (s: IContainer) => unknown[]): InjectionToken<Instance[]>;
lazy(): InjectionToken<Instance[]>;
cascade(isTrue: boolean): this;
resolve(c: IContainer): Instance[];
}