lin-mizar
Version:
The core library of Lin CMS
113 lines (112 loc) • 2.75 kB
TypeScript
/**
* Config类的实现
* 帮助应用从文件中读取配置,目前仅支持从js文件中读取配置,加入json,yml
*
* ```js
* const config = new Config();
* config.getConfigFromFile("path/file");
* ```
*
* 当然也支持从object对象中获取配置
* ```js
* config.getConfigFromObj({...});
* ```
*
* 获取配置项
* ```js
* config.getItem("key");
* ```
*/
export declare class Config {
/**
* 存储配置的容器
*/
private store;
/**
* 默认环境变量的前缀为LIN
*/
private _prefix;
private envSuffix;
/**
* 当前工作目录
*/
private baseDir;
/**
* 初始化工作目录
* @param baseDir 工作目录
*/
init(baseDir?: string): void;
/**
* 获取单个的配置项
* ```js
* const val = config.getItem("key");
* ```
*
* 支持传入默认值,如果不存在该配置项,则返回传入的默认值
*
* ```js
* const val = config.getItem("key","default");
* // 如果config中存在key的配置项,则返回其配置项
* // 否则返回 "default"
* ```
*
* @param key 配置项的路径
* @param defaultVal 可选参数,默认值
*/
getItem(key: string, defaultVal?: any): any;
/**
* 检查是否存在某个配置项
*
* ```js
* const exit = config.hasItem("key");
* // 如果存在 exit 为true
* // 不存在,则exit 为false
* ```
* @param key 配置项的路径
*/
hasItem(key: string): boolean;
/**
* 通过硬编码的方式设置配置项
*
* ```js
* config.setItem("name","pedro");
* // 设置 name 配置项的值为 pedro
* // 如果config中已存在这个配置项,则覆盖原有的
* ```
* @param key 配置项的键
* @param val 配置项的值
*/
setItem(key: string, val: any): void;
/**
* 从js文件中导入配置
*
* ```js
* config.getConfigFromFile("path/file");
* ```
* @param filepath js文件的路径,相对当前工作目录的路径
*/
getConfigFromFile(filepath: string): void;
/**
* 从object对象中导入配置
*
* ```js
* config.getConfigFromObj({...});
* ```
* @param obj 配置对象 ,如 {}
*/
getConfigFromObj(obj: any): void;
/**
* 判断是何种环境变量,默认为 debug
*/
getEnv(): string;
/**
* 判断是否为debug环境
*/
isDebug(): boolean;
/**
* 从环境变量里面读取配置,只读取以 @prefix 开头的变量名
*/
getConfigFromEnv(): void;
get prefix(): string;
set prefix(value: string);
}