dependency-injection-cat
Version:
DI Cat is a truly clean DI-container, which allows you not to pollute your business logic with decorators from DI/IOC libraries!
35 lines (33 loc) • 1.15 kB
TypeScript
export interface IFullBeanConfig {
scope?: "prototype" | "singleton";
isPublic?: boolean;
}
export interface IInternalCatContext {
config: any;
getBean<T>(beanName: string): T;
getBeans(): Record<string, any>;
___postConstruct(): void;
___beforeDestruct(): void;
}
export declare type TBeanName = string;
export declare type TLifecycle = "post-construct" | "before-destruct";
export declare type TLifecycleConfiguration = Record<TLifecycle, TBeanName[]>;
export declare abstract class InternalCatContext implements IInternalCatContext {
private contextName;
private beanConfigurationRecord;
private lifecycleConfiguration;
[beanName: string]: any;
constructor(contextName: string, beanConfigurationRecord: Record<TBeanName, IFullBeanConfig>, lifecycleConfiguration: TLifecycleConfiguration);
___postConstruct(): void;
___beforeDestruct(): void;
private singletonMap;
private notInitializedConfigMarker;
private _config;
get config(): any;
set config(config: any);
getBean<T>(beanName: TBeanName): T;
protected getPrivateBean<T>(beanName: TBeanName): T;
private getBeanConfiguration;
getBeans(): Record<string, any>;
}
export {};