mirror of
https://github.com/LLM-Red-Team/glm-free-api.git
synced 2025-03-14 17:47:29 +08:00
84 lines
2.4 KiB
TypeScript
84 lines
2.4 KiB
TypeScript
import path from 'path';
|
|
|
|
import fs from 'fs-extra';
|
|
import yaml from 'yaml';
|
|
import _ from 'lodash';
|
|
|
|
import environment from '../environment.ts';
|
|
|
|
const CONFIG_PATH = path.join(path.resolve(), 'configs/', environment.env, "/system.yml");
|
|
|
|
/**
|
|
* 系统配置
|
|
*/
|
|
export class SystemConfig {
|
|
|
|
/** 是否开启请求日志 */
|
|
requestLog: boolean;
|
|
/** 临时目录路径 */
|
|
tmpDir: string;
|
|
/** 日志目录路径 */
|
|
logDir: string;
|
|
/** 日志写入间隔(毫秒) */
|
|
logWriteInterval: number;
|
|
/** 日志文件有效期(毫秒) */
|
|
logFileExpires: number;
|
|
/** 公共目录路径 */
|
|
publicDir: string;
|
|
/** 临时文件有效期(毫秒) */
|
|
tmpFileExpires: number;
|
|
/** 请求体配置 */
|
|
requestBody: any;
|
|
/** 是否调试模式 */
|
|
debug: boolean;
|
|
|
|
constructor(options?: any) {
|
|
const { requestLog, tmpDir, logDir, logWriteInterval, logFileExpires, publicDir, tmpFileExpires, requestBody, debug } = options || {};
|
|
this.requestLog = _.defaultTo(requestLog, false);
|
|
this.tmpDir = _.defaultTo(tmpDir, './tmp');
|
|
this.logDir = _.defaultTo(logDir, './logs');
|
|
this.logWriteInterval = _.defaultTo(logWriteInterval, 200);
|
|
this.logFileExpires = _.defaultTo(logFileExpires, 2626560000);
|
|
this.publicDir = _.defaultTo(publicDir, './public');
|
|
this.tmpFileExpires = _.defaultTo(tmpFileExpires, 86400000);
|
|
this.requestBody = Object.assign(requestBody || {}, {
|
|
enableTypes: ['json', 'form', 'text', 'xml'],
|
|
encoding: 'utf-8',
|
|
formLimit: '100mb',
|
|
jsonLimit: '100mb',
|
|
textLimit: '100mb',
|
|
xmlLimit: '100mb',
|
|
formidable: {
|
|
maxFileSize: '100mb'
|
|
},
|
|
multipart: true,
|
|
parsedMethods: ['POST', 'PUT', 'PATCH']
|
|
});
|
|
this.debug = _.defaultTo(debug, true);
|
|
}
|
|
|
|
get rootDirPath() {
|
|
return path.resolve();
|
|
}
|
|
|
|
get tmpDirPath() {
|
|
return path.resolve(this.tmpDir);
|
|
}
|
|
|
|
get logDirPath() {
|
|
return path.resolve(this.logDir);
|
|
}
|
|
|
|
get publicDirPath() {
|
|
return path.resolve(this.publicDir);
|
|
}
|
|
|
|
static load() {
|
|
if (!fs.pathExistsSync(CONFIG_PATH)) return new SystemConfig();
|
|
const data = yaml.parse(fs.readFileSync(CONFIG_PATH).toString());
|
|
return new SystemConfig(data);
|
|
}
|
|
|
|
}
|
|
|
|
export default SystemConfig.load(); |