astroboy
Version:
Astroboy(阿童木)is a Nodejs SFB(Separation of Front and Back ends) framework, built on koa2.
29 lines (28 loc) • 2.3 kB
TypeScript
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;
}