pdd
Version:
PDD Framework
127 lines (126 loc) • 3.26 kB
TypeScript
import { Container } from './container';
import type { UtilityClass, UtilityObject } from './type/utils';
import type { APP_CONFIG, IServiceProvider } from './type/types';
/**
* Application 核心应用
* @extends Container
* @author SunnyXu <xy@ztes.com>
*/
export declare class Application extends Container {
private static VERSION;
private adapters;
private providers;
/**
* lifecycle
* 生命周期
* @private
*/
private static lifecycle;
/**
* getterProviders Providers 获取器
*/
getterProviders(): IServiceProvider[];
/**
* getProviders
* 获取
* @protected
*/
private static getProviders;
/**
* setterProviders Providers
* 设置器
* @param providers
*/
setterProviders(providers: IServiceProvider[]): void;
/**
* setProviders
* 设置
* @param providers
*/
static setProviders(providers: IServiceProvider[]): void;
/**
* registerProvider
* @description 注册服务提供者
* @param Provider
*/
static registerProvider(Provider: any): void;
/**
* registerProviders
* 批量注册
* @param providers
*/
static registerProviders(providers: IServiceProvider[]): void;
/**
* config
* 配置
* @param {Object} config
* @param {String} name
*/
static setConfig(name: string, config: UtilityObject): void;
/**
* getConfig
* 获取
* @param name
* @param {Object} def 默认值
*/
static getConfig(name: string, def?: any): UtilityObject;
/**
* setAppConfig
* 设置App配置
* @param config
*/
static setAppConfig(config: APP_CONFIG): void;
/**
* getAppConfig
* 获取App配置
* @param name
* @description 遵守getAppConfig中参数值和返回值的约定
*/
static getAppConfig<T extends keyof APP_CONFIG>(name: T): APP_CONFIG[T];
/**
* bindAdapter
* @description zh-CN 绑定适配器
* @param Adapter
* @param payload
*/
static bindAdapter(Adapter: UtilityClass, payload?: UtilityObject): void;
/**
* setAdapter
* 新增
* @param adapter
* @param instance
* @protected
*/
setterAdapter(adapter: UtilityClass, instance: UtilityObject): void;
/**
* static getAdapter
* 获取适配器
* @param adapter 必须是个类
* @return instance
*/
static getAdapter(adapter: UtilityClass): any;
/**
* static getAdapter
* 适配器 获取器
* @param adapter
*/
getterAdapter(adapter: UtilityClass): any;
/**
* getService
* 获取服务实例
* @param serviceName
*/
static getService<T>(serviceName: string): T;
/**
* Application instance
* 获取应用实例
* @description 应该使用Proxy进行拦截,目前先放行
*/
static getInstance(): Application;
/**
* App run
* 框架应用运行
* @param {CallableFunction} callback
*/
static run(callback?: CallableFunction): void;
}