@joist/di
Version:
Dependency Injection for Vanilla JS classes
26 lines (25 loc) • 777 B
TypeScript
import { type InjectionToken, type Provider, type ProviderDef } from "./provider.js";
export interface InjectorOpts {
name?: string;
providers?: Iterable<Provider<any>>;
parent?: Injector;
}
export declare const INJECTOR: unique symbol;
export declare class ProviderMap extends Map<InjectionToken<any>, ProviderDef<any>> {
}
export declare class Injector {
#private;
name?: string;
parent?: Injector;
providers: ProviderMap;
constructor(opts?: InjectorOpts);
injectAll<T>(token: InjectionToken<T>, opts?: {
ignoreParent?: boolean;
singleton?: boolean;
}, collection?: T[]): T[];
inject<T>(token: InjectionToken<T>, opts?: {
ignoreParent?: boolean;
singleton?: boolean;
}): T;
clear(): void;
}