UNPKG

@joist/di

Version:

Dependency Injection for Vanilla JS classes

20 lines (19 loc) 673 B
import { type Injector } from "./injector.js"; import type { InjectionToken } from "./provider.js"; export type LifecycleCallback = (i: Injector) => void; export type LifecycleCondition<T> = (ctx: { injector: Injector; instance: T; }) => { enabled?: boolean; }; export interface LifecycleMethod<T> { callback: LifecycleCallback; condition?: LifecycleCondition<T>; } export interface InjectableMetadata<T> { onCreated?: LifecycleMethod<T>[]; onInjected?: LifecycleMethod<T>[]; } export declare function readMetadata<T>(target: InjectionToken<T>): InjectableMetadata<T> | null; export declare function readInjector<T>(target: T): Injector | null;