UNPKG

@daisugi/kado

Version:

Kado is a minimal and unobtrusive inversion of control container.

35 lines 1.1 kB
interface Class { new (...args: any[]): unknown; } export type KadoToken = string | symbol | number; export type KadoScope = 'Transient' | 'Singleton'; export interface KadoManifestItem { token?: KadoToken; useClass?: Class; useValue?: any; useFnByContainer?(container: KadoContainer): any; useFn?(...args: any[]): any; params?: KadoParam[]; scope?: KadoScope; meta?: Record<string, any>; } export type KadoParam = KadoToken | KadoManifestItem; export type KadoContainer = Container; export declare class Container { #private; constructor(); resolve<T>(token: KadoToken): Promise<T>; register(manifestItems: KadoManifestItem[]): void; list(): KadoManifestItem[]; get(token: KadoToken): KadoManifestItem; } export declare class Kado { static scope: Record<KadoScope, KadoScope>; container: KadoContainer; constructor(); static value(value: unknown): KadoManifestItem; static map(params: KadoParam[]): KadoManifestItem; static flatMap(params: KadoParam[]): KadoManifestItem; } export {}; //# sourceMappingURL=kado.d.ts.map