UNPKG

astroboy

Version:

Astroboy(阿童木)is a Nodejs SFB(Separation of Front and Back ends) framework, built on koa2.

29 lines (28 loc) 2.3 kB
import { IAstroboyFrameworkDefine } from '../../definitions'; import { IAstroboyCtxExtends, IArgumentsExtractor, IServiceProtected, ReturnAnyType, IBaseFrameworkDefine } from '../../definitions/extends/context'; /** * ## Astroboy Base Class * - `ctx` Context 请求上下文对象 * - `app` Koa Application 实例对象 * - `config` 应用配置对象 * * @author Big Mogician * @export * @class BaseClass * @implements {IAstroboyCtxExtends<DEFINE>} * @template DEFINE Framework Definition, default is `IAstroboyFrameworkDefine` */ export declare class BaseClass<DEFINE extends Partial<IBaseFrameworkDefine> = IAstroboyFrameworkDefine> implements IAstroboyCtxExtends<DEFINE> { protected app: DEFINE['app']; protected config: DEFINE['config']; protected ctx: DEFINE['ctx']; constructor(ctx: DEFINE['ctx']); getConfig(): DEFINE['config']; getConfig<K extends keyof DEFINE['config']>(key: K): DEFINE['config'][K]; getLib<PkgName extends keyof DEFINE['libs'], LibName extends keyof DEFINE['libs'][PkgName], LibMethods = DEFINE['libs'][PkgName][LibName]>(pkgName: PkgName, libName: LibName): LibMethods; getServiceClass<PkgName extends keyof DEFINE['services'], ServiceName extends keyof DEFINE['services'][PkgName], ServiceClass = DEFINE['services'][PkgName][ServiceName]>(pkgName: PkgName, serviceName: ServiceName): ServiceClass; getService<PkgName extends keyof DEFINE['services'], ServiceName extends keyof DEFINE['services'][PkgName], ServiceInstance = InstanceType<DEFINE['services'][PkgName][ServiceName]>>(pkgName: PkgName, serviceName: ServiceName): ServiceInstance; callService(service: string, method: string, ...args: any[]): Promise<any>; callService(method: string, ...args: any[]): Promise<any>; invokeServiceMethod<PkgName extends keyof DEFINE['services'], ServiceName extends keyof DEFINE['services'][PkgName], MethodName extends Exclude<keyof InstanceType<DEFINE['services'][PkgName][ServiceName]>, keyof IServiceProtected>, MethodArgs extends IArgumentsExtractor<InstanceType<DEFINE['services'][PkgName][ServiceName]>[MethodName]>, Result extends ReturnAnyType<InstanceType<DEFINE['services'][PkgName][ServiceName]>[MethodName]>>(pkgName: PkgName, serviceName: ServiceName, methodName: MethodName, ...args: MethodArgs): Result; }