UNPKG

inceptum

Version:

hipages take on the foundational library for enterprise-grade apps written in NodeJS

88 lines (87 loc) 3.94 kB
import { LifecycleState } from '../Lifecycle'; import { SingletonDefinition } from './SingletonDefinition'; import { ObjectDefinition } from './ObjectDefinition'; export declare class BaseSingletonState extends LifecycleState { static INSTANTIATING: BaseSingletonState; static INSTANTIATED: BaseSingletonState; static PROPERTIES_SET: BaseSingletonState; } export declare enum ParamType { Value = 0, Reference = 1, Type = 2, TypeArray = 3, Config = 4, Group = 5, DefinitionGroup = 6, } export declare class ParamDefinition { static withValue(val: any): ParamDefinition; static withConfigKey(key: string, defaultValue?: any): ParamDefinition; static withGroupName(groupName: string): ParamDefinition; static withDefinitionGroupName(groupName: string): ParamDefinition; static withRefName(refName: string): ParamDefinition; static withClassName(className: string): ParamDefinition; static withClassNameArr(className: string): ParamDefinition; className: string; refName: string; type: ParamType; val: any; key: string; group: string; objectDefinitions: Array<ObjectDefinition<any>>; defaultValue: any; constructor(type: ParamType); } export declare class CallDefinition { paramName: string; args: ParamDefinition[]; constructor(paramName: string, paramDefinition: ParamDefinition); } export declare abstract class ConfigurableSingletonDefinition<T> extends SingletonDefinition<T> { private constructorArgDefinitions; private propertiesToSetDefinitions; private startFunctionName; private shutdownFunctionName; constructor(clazz: any, name?: any, logger?: any); getConstructorArgDefinitions(): ParamDefinition[]; getPropertiesToSetDefinitions(): CallDefinition[]; getStartFunctionName(): string; getShutdownFunctionName(): string; constructorParamByValue(value: any): this; constructorParamByConfig(key: string, defaultValue?: any): this; constructorParamByRef(name: any): this; constructorParamByType(clazz: any): this; constructorParamByTypeArray(clazz: any): this; setPropertyByValue(paramName: any, value: any): this; setPropertyByConfig(paramName: any, key: any, defaultValue?: any): this; setPropertyByGroup(paramName: any, groupName: any): this; setPropertyByDefinitionGroup(paramName: any, groupName: any): this; setPropertyByRef(paramName: any, name: any): this; setPropertyByType(paramName: any, className: any): this; setPropertyByTypeArray(paramName: any, className: any): this; startFunction(startFunctionName: any): this; stopFunction(shutdownFunctionName: any): this; protected copyInternalProperties(copyTo: any): void; } export declare class BaseSingletonDefinition<T> extends ConfigurableSingletonDefinition<T> { instancePromise: Promise<T>; constructor(clazz: any, name?: any, logger?: any); getInstance(): Promise<T>; protected hasPropertiesCircularDependency(trace?: Array<string>): boolean; checkConstructorCircularDependency(trace?: Array<string>): void; protected getAllConstructorObjectDefinitions(): Array<ObjectDefinition<any>>; protected getAllPropertiesObjectDefinitions(): Array<ObjectDefinition<any>>; protected getAllPropertyObjectDefinitions(): Array<ObjectDefinition<any>>; protected resolveParamObjectDefinition(paramDefinition: ParamDefinition): Array<ObjectDefinition<any>>; private instantiate(); private setAllProperties(); private getSetPropertyPromise(propertyToSet); getParamDefinitionValue(paramDefinition: ParamDefinition): Promise<any>; protected doStart(): Promise<void>; protected doStop(): Promise<void>; getCopyInstance(): ObjectDefinition<T>; } export declare class BaseSingletonDefinitionTestUtil extends BaseSingletonDefinition<any> { exposeGetAllConstructorObjectDefinitions(): Array<ObjectDefinition<any>>; }