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.

36 lines (35 loc) 1.3 kB
import type { IContainer } from '../container/IContainer.js'; import { InjectionToken } from '../token/InjectionToken.js'; export interface IHookContext { instance: object; scope: IContainer; methodName?: string; resolveArgs(...args: unknown[]): unknown[]; invokeMethod(options?: { args?: unknown[]; }): unknown; setProperty(fn: InjectionToken): void; getProperty(): unknown; setInitialArgs(...args: unknown[]): this; getInitialArgs(): unknown[]; } 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; getProperty(): unknown; setInitialArgs(...args: unknown[]): this; getInitialArgs(): unknown[]; } export type CreateHookContext = (Target: object, scope: IContainer, methodName?: string) => IHookContext; export declare const createHookContext: CreateHookContext; export declare const createHookContextFactory: ({ args }?: { args?: unknown[]; }) => CreateHookContext;