astroboy
Version:
Astroboy(阿童木)is a Nodejs SFB(Separation of Front and Back ends) framework, built on koa2.
131 lines (130 loc) • 3.4 kB
TypeScript
import { IInnerApplication, PureObject, IDir, PriorityDefine as IPriority, IDefaultLoaders, NormalizedMiddleware, ICoreLoaderOptions } from '../definitions/core';
import { Loader } from './Loader';
/**
* ## Core Loader
* - decide how to build application.
*
* @author Big Mogician
* @export
* @class CoreLoader
* @extends {Loader<F, A>}
* @template F
* @template A
*/
export declare class CoreLoader<F extends PureObject, A extends IInnerApplication<F>> extends Loader<F, A> {
protected options: Partial<ICoreLoaderOptions<F, A>>;
protected patterns: IDefaultLoaders;
protected pluginConfig: PureObject;
protected astroboy: any;
protected loaders: PureObject;
protected coreDirs: IDir[];
protected loaderQueue: IPriority[];
protected NODE_ENV: string;
readonly defaultPatterns: IDefaultLoaders;
constructor(options?: Partial<ICoreLoaderOptions<F, A>>);
/**
* ### `init` hook
*
* @virtual
* @author Big Mogician
* @protected
* @memberof CoreLoader
*/
protected init(): void;
/**
* ### `load` hook
*
* @virtual
* @author Big Mogician
* @memberof CoreLoader
*/
load(): void;
/**
* ### 加载核心目录,包括 app、framework,但不包括 plugin
*
* @author Big Mogician
* @protected
* @param {string} baseDir
* @memberof CoreLoader
*/
protected loadCoreDirs(baseDir: string): void;
/**
* ### 获取插件配置
*
* @author Big Mogician
* @protected
* @memberof CoreLoader
*/
protected loadPluginConfig(): void;
/**
* ### 获取遍历目录
*
* @author Big Mogician
* @protected
* @memberof CoreLoader
*/
protected loadFullDirs(): void;
/**
* ### 获取需要遍历的插件目录
*
* @author Big Mogician
* @protected
* @param {string} baseDir
* @returns
* @memberof CoreLoader
*/
protected getPluginDirs(baseDir: string): IDir[];
/**
* ### 获取需要遍历的插件配置
*
* @author Big Mogician
* @protected
* @param {string} baseDir
* @returns
* @memberof CoreLoader
*/
protected getPluginConfig(baseDir: string): PureObject<any>;
/**
* ### 获取加载器执行队列
*
* @author Big Mogician
* @protected
* @memberof CoreLoader
*/
protected loadLoaderQueue(): void;
/**
* ### 获取加载器
*
* @author Big Mogician
* @protected
* @memberof CoreLoader
*/
protected loadLoaders(): void;
/**
* ### 执行加载器
*
* @author Big Mogician
* @protected
* @memberof CoreLoader
*/
protected runLoaders(): void;
/**
* ### Use Middlewares
*
* @author Big Mogician
* @protected
* @memberof CoreLoader
*/
protected useMiddlewares(): void;
/**
* ### Wrap Middlewares
*
* @author Big Mogician
* @protected
* @param {NormalizedMiddleware} middleware
* @param {IPriority} options
* @returns
* @memberof CoreLoader
*/
protected wrapMiddleware(middleware: NormalizedMiddleware, options: IPriority): NormalizedMiddleware<import("../definitions/core").IBaseContext<PureObject<any>, import("../definitions/core").IBaseApplication<PureObject<any>>>>;
}