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
TypeScript
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;