@codespeaks/tinydi
Version:
A simple and intuitive DI container, designed for simplicity, making dependency management seamless and easy to use.
21 lines • 644 B
TypeScript
type ClassRef<T = unknown> = new (...args: any[]) => T;
type Lifecycle = 'singleton' | 'transient';
interface Registration<T> {
classRef: ClassRef<T>;
lifecycle: Lifecycle;
instance?: T;
factory?: () => T;
}
declare class TinyDI {
private container;
add<T>(classRef: ClassRef<T>, factory?: () => T): {
inject: (...depRefs: ClassRef[]) => T;
getSelf: () => T;
};
get<T>(classRef: ClassRef<T>): T;
inject<T>(registration: Registration<T>, ...depRefs: ClassRef[]): T;
private injectWrapper;
}
export declare const createContainer: () => TinyDI;
export {};
//# sourceMappingURL=index.d.ts.map