@daisugi/kado
Version:
Kado is a minimal and unobtrusive inversion of control container.
35 lines • 1.1 kB
TypeScript
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