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.
18 lines (17 loc) • 713 B
TypeScript
import type { IContainer } from '../container/IContainer';
import { InjectionToken } from './InjectionToken';
import { InjectFn } from '../hooks/hook';
import { ArgsFn, ProviderOptions } from '../provider/IProvider';
export declare class FunctionToken<T = any> extends InjectionToken<T> {
private readonly fn;
private readonly _getArgsFn;
private readonly _isLazy;
constructor(fn: InjectFn<T>, { getArgsFn, isLazy }?: {
getArgsFn?: ArgsFn;
isLazy?: boolean;
});
resolve(s: IContainer, { args, lazy }?: ProviderOptions): T;
args(...newArgs: unknown[]): InjectionToken<T>;
argsFn(fn: (s: IContainer) => unknown[]): InjectionToken<T>;
lazy(): InjectionToken<T>;
}