@joist/di
Version:
Dependency Injection for Vanilla JS classes
20 lines (19 loc) • 673 B
TypeScript
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;