From da8b5e242973208818d466f7164f819ae23029ed Mon Sep 17 00:00:00 2001 From: idranme Date: Wed, 4 Sep 2024 13:12:39 +0800 Subject: [PATCH] chore --- src/common/config.ts | 21 ++------------------- src/common/utils/misc.ts | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/common/config.ts b/src/common/config.ts index f9586ef..c57d2a9 100644 --- a/src/common/config.ts +++ b/src/common/config.ts @@ -1,25 +1,8 @@ import fs from 'node:fs' -import { Config, OB11Config } from './types' import path from 'node:path' +import { Config, OB11Config } from './types' import { selfInfo, DATA_DIR } from './globalVars' - -// 在保证老对象已有的属性不变化的情况下将新对象的属性复制到老对象 -function mergeNewProperties(newObj: any, oldObj: any) { - Object.keys(newObj).forEach((key) => { - // 如果老对象不存在当前属性,则直接复制 - if (!oldObj.hasOwnProperty(key)) { - oldObj[key] = newObj[key] - } else { - // 如果老对象和新对象的当前属性都是对象,则递归合并 - if (typeof oldObj[key] === 'object' && typeof newObj[key] === 'object') { - mergeNewProperties(newObj[key], oldObj[key]) - } else if (typeof oldObj[key] === 'object' || typeof newObj[key] === 'object') { - // 属性冲突,有一方不是对象,直接覆盖 - oldObj[key] = newObj[key] - } - } - }) -} +import { mergeNewProperties } from './utils/misc' export class ConfigUtil { private readonly configPath: string diff --git a/src/common/utils/misc.ts b/src/common/utils/misc.ts index 80c8a50..0b1e496 100644 --- a/src/common/utils/misc.ts +++ b/src/common/utils/misc.ts @@ -13,4 +13,22 @@ export function calcQQLevel(level: QQLevel) { export function getBuildVersion(): number { const version: string = globalThis.LiteLoader.versions.qqnt return +version.split('-')[1] +} + +/** 在保证老对象已有的属性不变化的情况下将新对象的属性复制到老对象 */ +export function mergeNewProperties(newObj: any, oldObj: any) { + Object.keys(newObj).forEach((key) => { + // 如果老对象不存在当前属性,则直接复制 + if (!oldObj.hasOwnProperty(key)) { + oldObj[key] = newObj[key] + } else { + // 如果老对象和新对象的当前属性都是对象,则递归合并 + if (typeof oldObj[key] === 'object' && typeof newObj[key] === 'object') { + mergeNewProperties(newObj[key], oldObj[key]) + } else if (typeof oldObj[key] === 'object' || typeof newObj[key] === 'object') { + // 属性冲突,有一方不是对象,直接覆盖 + oldObj[key] = newObj[key] + } + } + }) } \ No newline at end of file