添加 event.emit('ENVAR_UPDATED', {envarFile})

This commit is contained in:
Luk 2024-12-07 19:43:20 +08:00
parent 9a7d03552d
commit c27047b348

View File

@ -2,7 +2,6 @@ const fs = require('fs')
const path = require('path') const path = require('path')
const chokidar = require('chokidar') const chokidar = require('chokidar')
const assign_deep = require('assign-deep') const assign_deep = require('assign-deep')
const readlineSync = require('readline-sync')
//const deepmerge = require('deepmerge') //const deepmerge = require('deepmerge')
// https://github.com/jonschlinkert/assign-deep // 类似 Object.assign 直接赋值到第一个对象里。只下载2个包。assign 优选。 // https://github.com/jonschlinkert/assign-deep // 类似 Object.assign 直接赋值到第一个对象里。只下载2个包。assign 优选。
@ -26,51 +25,13 @@ module.exports = {
// 目前的解决方案里,已通过 base2app 参数来确保只在发送给前端时才设置 undefined但为防万一在这里通过 JSON.stringify 确保删除了 undefined // 目前的解决方案里,已通过 base2app 参数来确保只在发送给前端时才设置 undefined但为防万一在这里通过 JSON.stringify 确保删除了 undefined
assign_deep(rawEnvar, JSON.parse(JSON.stringify(newEnvar))) assign_deep(rawEnvar, JSON.parse(JSON.stringify(newEnvar)))
console.log(`envarTool.start_watching: OK reload ${onpath}`) console.log(`envarTool.start_watching: OK reload ${onpath}`)
globalthis.wo?.eventCenter?.emit?.('ENVAR_UPDATED', { envarFile: onpath })
} catch (expt) { } catch (expt) {
console.log(`envarTool.start_watching: Fail reload ${onpath}`) console.log(`envarTool.start_watching: Fail reload ${onpath}`)
} }
}) })
}, },
get_simsimPath ({ envarFiles = [], readable = false, readPrompt = '' }) {
let simsimPath
// 用户自己定义的优先
for (let configFile of envarFiles) {
try {
const envar = require(path.resolve(configFile))
if (envar?.simsimPath) {
try {
require(path.resolve(envar.simsimPath))
simsimPath = envar?.simsimPath
} catch (expt) {
console.log('!!! ' + path.resolve(envar.simsimPath) + ' is invalid.')
}
}
} catch (expt) {
console.log('!!! ' + path.resolve(configFile) + ' is malformed.')
}
}
// 其次检测是否已安装
if (!simsimPath) {
module.paths.forEach((modulesPath) => {
if (fs.existsSync(`${modulesPath}/sesame-basic`)) {
simsimPath = `${modulesPath}/sesame-basic`
}
})
}
// 最后等待用户输入
while (!simsimPath && readable) {
simsimPath = readlineSync.question(readPrompt)
try {
require(path.resolve(simsimPath))
} catch (expt) {
console.log('!!! ' + path.resolve(simsimPath) + ' is invalid.')
simsimPath = ''
}
}
return simsimPath
},
/** envar files commander parameters /** envar files commander parameters
* @param envarFiles: * @param envarFiles:
* - 字符串: 导入文件内容应当是字符串数组或者对象 * - 字符串: 导入文件内容应当是字符串数组或者对象