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.

32 lines (31 loc) 1.18 kB
import type { IContainer } from '../container/IContainer'; import { InjectionToken } from '../token/InjectionToken'; export interface IHookContext { instance: object; scope: IContainer; methodName?: string; resolveArgs(...args: unknown[]): unknown[]; invokeMethod(options?: { args?: unknown[]; }): unknown; setProperty(fn: InjectionToken): void; setInitialArgs(...args: unknown[]): this; } export declare class HookContext implements IHookContext { scope: IContainer; methodName?: string | undefined; readonly instance: object; private initialArgs; constructor(instance: object, scope: IContainer, methodName?: string | undefined); resolveArgs(...args: unknown[]): unknown[]; invokeMethod({ args }?: { args?: unknown[]; }): unknown; setProperty(fn: InjectionToken): void; setInitialArgs(...args: unknown[]): this; } export type CreateHookContext = (Target: object, scope: IContainer, methodName?: string) => IHookContext; export declare const createHookContext: CreateHookContext; export declare const createHookContextFactory: ({ args }?: { args?: unknown[]; }) => CreateHookContext;