UNPKG

@joist/di

Version:

Dependency Injection for Vanilla JS classes

26 lines (25 loc) 777 B
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; }