UNPKG

lakutata

Version:

An IoC-based universal application framework.

76 lines (69 loc) 2.49 kB
import '../vendor/TypeDef.2.js'; import { B as BaseObject, L as LifetimeType, I as IBaseObjectConstructor } from '../vendor/TypeDef.3.js'; import { C as ClassDecorator, P as PropertyDecorator } from '../vendor/TypeDef.12.js'; import { S as Schema } from '../vendor/TypeDef.5.js'; import '../vendor/TypeDef.11.js'; /** * Class Decorator * @param lifetime * @param lock * @constructor */ declare function Lifetime<ClassConstructor extends typeof BaseObject>(lifetime: LifetimeType, lock?: boolean): ClassDecorator<ClassConstructor>; /** * Class Decorator * @param lock * @constructor */ declare function Singleton<ClassConstructor extends typeof BaseObject>(lock?: boolean): ClassDecorator<ClassConstructor>; /** * Class Decorator * @param lock * @constructor */ declare function Transient<ClassConstructor extends typeof BaseObject>(lock?: boolean): ClassDecorator<ClassConstructor>; /** * Class Decorator * @param lock * @constructor */ declare function Scoped<ClassConstructor extends typeof BaseObject>(lock?: boolean): ClassDecorator<ClassConstructor>; /** * Class Decorator * @constructor */ declare function Autoload<ClassConstructor extends typeof BaseObject>(): ClassDecorator<ClassConstructor>; /** * Property Decorator * @param schema * @param fn * @constructor */ declare function Configurable<ClassPrototype extends BaseObject, DataType>(schema?: Schema<DataType>, fn?: (this: ClassPrototype, value: DataType) => DataType | Promise<DataType>): PropertyDecorator<ClassPrototype>; type InjectionName = string | symbol | IBaseObjectConstructor<BaseObject>; type InjectionTransformFunction = (injection: any) => any | Promise<any>; /** * * @constructor */ declare function Inject<ClassPrototype extends BaseObject>(): PropertyDecorator<ClassPrototype>; /** * Property Decorator * @param name * @constructor */ declare function Inject<ClassPrototype extends BaseObject>(name: InjectionName): PropertyDecorator<ClassPrototype>; /** * Property Decorator * @param transform * @constructor */ declare function Inject<ClassPrototype extends BaseObject>(transform: InjectionTransformFunction): PropertyDecorator<ClassPrototype>; /** * Property Decorator * @param name * @param transform * @constructor */ declare function Inject<ClassPrototype extends BaseObject>(name: InjectionName, transform: InjectionTransformFunction): PropertyDecorator<ClassPrototype>; export { Autoload, Configurable, Inject, Lifetime, Scoped, Singleton, Transient };