UNPKG

lakutata

Version:

An IoC-based universal application framework.

75 lines (65 loc) 2.52 kB
import { DTO, Module, Component, Provider } from './TypeDef.internal.96.js'; import { BaseObject } from './TypeDef.internal.120.js'; import { IBaseObjectConstructor } from './TypeDef.internal.118.js'; declare const OBJECT_ID: unique symbol; declare class LoadObjectOptions<ClassConstructor extends typeof BaseObject = typeof BaseObject> extends DTO { [OBJECT_ID]?: string | symbol; class: ClassConstructor; } declare class LoadNamedObjectOptions extends DTO { [id: string]: LoadObjectOptions; } declare class LoadAnonymousObjectOptions<ClassConstructor extends typeof BaseObject = typeof BaseObject> extends DTO { class: ClassConstructor; } type AnonymousObject = LoadAnonymousObjectOptions | typeof BaseObject | string; declare class ModuleLoadObjectsOptions extends DTO { named?: LoadNamedObjectOptions; anonymous?: AnonymousObject[]; } declare class OverridableObjectOptions<ClassConstructor extends typeof BaseObject = typeof BaseObject> extends DTO { class?: ClassConstructor; } declare class OverridableNamedObjectOptions<ClassConstructor extends IBaseObjectConstructor<BaseObject> = IBaseObjectConstructor<BaseObject>> extends DTO { [id: string]: OverridableObjectOptions<ClassConstructor>; } type BootstrapAsyncFunction<T = any, U = any> = (target: T) => Promise<U>; type BootstrapOption = string | symbol | IBaseObjectConstructor | BootstrapAsyncFunction<Module, void>; declare class ModuleOptions extends DTO { /** * Load components option */ components?: OverridableNamedObjectOptions<IBaseObjectConstructor<Component>>; /** * Load providers option */ providers?: OverridableNamedObjectOptions<IBaseObjectConstructor<Provider>>; /** * Load objects option */ objects?: ModuleLoadObjectsOptions; /** * Bootstrap option */ bootstrap?: BootstrapOption[]; } declare class ApplicationOptions extends ModuleOptions { /** * AppId */ readonly id: string; /** * AppName */ readonly name: string; /** * Application timezone */ readonly timezone?: string | 'auto'; /** * runtime environment (development or production, default value is development) */ readonly mode?: 'development' | 'production'; } export { ApplicationOptions, LoadAnonymousObjectOptions, LoadNamedObjectOptions, LoadObjectOptions, ModuleLoadObjectsOptions, ModuleOptions, OverridableNamedObjectOptions, OverridableObjectOptions }; export type { BootstrapOption };