2021-02-03 20:20:00 +08:00
|
|
|
const fs = require('fs').promises
|
2021-06-02 12:58:18 +08:00
|
|
|
const { walk } = require('.')
|
2021-02-03 20:20:00 +08:00
|
|
|
|
2021-06-02 12:58:18 +08:00
|
|
|
exports.replaceDefine = async (dirs, defines) => {
|
|
|
|
const defineKeys = Object.keys(defines)
|
2021-02-03 20:20:00 +08:00
|
|
|
const patterns = {}
|
2021-02-03 21:38:43 +08:00
|
|
|
defineKeys.forEach((key) => {
|
2021-02-03 20:20:00 +08:00
|
|
|
patterns[key] = new RegExp(key, 'g')
|
|
|
|
})
|
2021-06-02 12:58:18 +08:00
|
|
|
for (const dir of dirs) {
|
2021-02-03 20:20:00 +08:00
|
|
|
for await (const p of walk(dir)) {
|
|
|
|
const code = await fs.readFile(p, 'utf-8')
|
2021-02-03 21:38:43 +08:00
|
|
|
for (const key of defineKeys) {
|
2021-02-03 20:20:00 +08:00
|
|
|
const pattern = patterns[key]
|
|
|
|
if (pattern.test(code)) {
|
2021-06-02 12:58:18 +08:00
|
|
|
const outCode = code.replace(pattern, defines[key])
|
2021-02-03 20:20:00 +08:00
|
|
|
await fs.writeFile(p, outCode)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|