lakutata
Version:
An IoC-based universal application framework.
47 lines (35 loc) • 2.06 kB
TypeScript
import { Schema } from './TypeDef.internal.27.js';
import { IConstructor } from './TypeDef.internal.118.js';
import { BaseObject } from './TypeDef.internal.120.js';
import { Provider, Component, Module } from './TypeDef.internal.96.js';
type JSONSchema = Schema;
type ClassDecorator<Constructor extends IConstructor> = (target: Constructor) => Constructor | void;
type ActionPattern<T extends Record<string, any> = {}> = Record<string, any> & T;
type MethodDecorator<ClassPrototype, Method, Property = string | symbol> = (target: ClassPrototype, propertyKey: Property, descriptor: TypedPropertyDescriptor<Method>) => TypedPropertyDescriptor<Method> | void;
type ParameterDecorator<ClassPrototype> = (target: ClassPrototype, propertyKey: string | symbol, parameterIndex: number) => void;
type PropertyDecorator<ClassPrototype> = (target: ClassPrototype, propertyKey: string | symbol) => void;
interface BaseObjectOptions {
class: typeof BaseObject;
[prop: string]: any;
}
type ObjectOptions<T> = T & BaseObjectOptions;
type ObjectOptionsBuilder<T> = (options: T) => ObjectOptions<T>;
interface BaseProviderOptions {
class: typeof Provider;
[prop: string]: any;
}
type ProviderOptions<T> = T & BaseProviderOptions;
type ProviderOptionsBuilder<T> = (options: T) => ProviderOptions<T>;
interface BaseComponentOptions {
class: typeof Component;
[prop: string]: any;
}
type ComponentOptions<T> = T & BaseComponentOptions;
type ComponentOptionsBuilder<T> = (options: T) => ComponentOptions<T>;
interface BaseModuleOptions {
class: typeof Module;
[prop: string]: any;
}
type ModuleOptions<T> = T & BaseModuleOptions;
type ModuleOptionsBuilder<T> = (options: T) => ModuleOptions<T>;
export type { ActionPattern, BaseComponentOptions, BaseModuleOptions, BaseObjectOptions, BaseProviderOptions, ClassDecorator, ComponentOptions, ComponentOptionsBuilder, JSONSchema, MethodDecorator, ModuleOptionsBuilder, ObjectOptions, ObjectOptionsBuilder, ParameterDecorator, PropertyDecorator, ProviderOptions, ProviderOptionsBuilder };