Spaces:
Paused
Paused
| 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(); |