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.
22 lines (21 loc) • 1.02 kB
TypeScript
import { DependencyKey, IContainer, ResolveOneOptions } from '../container/IContainer';
import { InjectionToken } from './InjectionToken';
import { IRegistration } from '../registration/IRegistration';
import { BindToken } from './BindToken';
import { ArgsFn } from '../provider/IProvider';
export declare class SingleAliasToken<T = any> extends InjectionToken<T> implements BindToken<T> {
readonly token: DependencyKey;
private readonly _getArgsFn;
private readonly _isLazy;
constructor(token: DependencyKey, { getArgsFn, isLazy }?: {
getArgsFn?: ArgsFn;
isLazy?: boolean;
});
select<R>(fn: (target: T) => R): (s: IContainer) => R;
resolve(s: IContainer, { args, lazy }?: ResolveOneOptions): T;
bindTo(r: IRegistration<T>): void;
args(...newArgs: unknown[]): SingleAliasToken<T>;
argsFn(fn: (s: IContainer) => unknown[]): SingleAliasToken<T>;
lazy(): SingleAliasToken<T>;
}
export declare const toSingleAlias: <T>(token: DependencyKey) => SingleAliasToken<T>;