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.

14 lines (13 loc) 944 B
import { IInjector, InjectOptions, Injector } from './IInjector'; import type { IContainer } from '../container/IContainer'; import { type constructor } from '../utils/basic'; import { InjectionToken } from '../token/InjectionToken'; import { ProviderOptions } from '../provider/IProvider'; import { InjectFn } from '../hooks/hook'; export declare class MetadataInjector extends Injector implements IInjector { protected createInstance<T>(scope: IContainer, Target: constructor<T>, { args: deps }?: InjectOptions): T; } export declare const inject: <T>(fn: InjectionToken<T> | InjectFn<T> | symbol | string | constructor<T>) => ParameterDecorator; export declare const args: (index: number) => InjectFn; export declare const argsFn: <T>(fn: (...args: unknown[]) => T) => InjectFn<T>; export declare const resolveArgs: (Target: constructor<unknown>, methodName?: string) => (scope: IContainer, { args, lazy }: ProviderOptions) => unknown[];