ts-ioc-container
Version:
Typescript IoC container
16 lines (15 loc) • 859 B
TypeScript
import { type DependencyKey, type IContainer } from './container/IContainer';
import { type MapFn } from './utils';
import { type IRegistration, type ScopePredicate } from './registration/IRegistration';
import { type IProvider } from './provider/IProvider';
import { type IInjectFnResolver } from './injector/IInjector';
import { type ProviderPipe } from './provider/ProviderPipe';
export type DepKey<T> = IInjectFnResolver<T> & {
key: DependencyKey;
asKey: (registration: IRegistration<T>) => IRegistration<T>;
register: (fn: (s: IContainer, ...args: unknown[]) => T) => IRegistration<T>;
pipe(...values: Array<MapFn<IProvider<T>> | ProviderPipe>): DepKey<T>;
when(value: ScopePredicate): DepKey<T>;
asAlias: (registration: IRegistration<T>) => IRegistration<T>;
};
export declare const depKey: <T>(key: DependencyKey) => DepKey<T>;