|
@@ -52,3 +52,52 @@ export function makeDirSync(pathContent: string) {
|
|
}
|
|
}
|
|
|
|
|
|
makeDirSync(getTempPath());
|
|
makeDirSync(getTempPath());
|
|
|
|
+
|
|
|
|
+// 系统配置
|
|
|
|
+interface ConfitSetType {
|
|
|
|
+ downloadProcessCount: number;
|
|
|
|
+}
|
|
|
|
+type PartConfitSetType = Partial<ConfitSetType>;
|
|
|
|
+type ConfitSetTypeEnum = keyof ConfitSetType;
|
|
|
|
+
|
|
|
|
+const configSets = [
|
|
|
|
+ {
|
|
|
|
+ field: 'downloadProcessCount',
|
|
|
|
+ validate(val: any) {
|
|
|
|
+ return [1, 2, 3, 4, 5, 6].includes(val);
|
|
|
|
+ },
|
|
|
|
+ default: 2,
|
|
|
|
+ },
|
|
|
|
+];
|
|
|
|
+
|
|
|
|
+function getConfig(datas: PartConfitSetType) {
|
|
|
|
+ const configData = {} as ConfitSetType;
|
|
|
|
+ configSets.forEach((config) => {
|
|
|
|
+ const field = config.field as ConfitSetTypeEnum;
|
|
|
|
+ if (config.validate(datas[field])) {
|
|
|
|
+ configData[field] = datas[field] as ConfitSetType[ConfitSetTypeEnum];
|
|
|
|
+ } else {
|
|
|
|
+ configData[field] = config.default;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ return configData;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+export function getConfigData(data: PartConfitSetType) {
|
|
|
|
+ let configData = getConfig(data);
|
|
|
|
+ if (process.env.NODE_ENV === 'development') return configData;
|
|
|
|
+
|
|
|
|
+ const configPath = path.join(getRootDir(), 'config.json');
|
|
|
|
+ if (fs.existsSync(configPath)) {
|
|
|
|
+ try {
|
|
|
|
+ const configFileData = JSON.parse(
|
|
|
|
+ fs.readFileSync(configPath, 'utf8')
|
|
|
|
+ ) as PartConfitSetType;
|
|
|
|
+ configData = getConfig(configFileData);
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.log(error);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return configData;
|
|
|
|
+}
|