34 lines
824 B
JavaScript
34 lines
824 B
JavaScript
import fs from 'node:fs'
|
|
import path from 'node:path'
|
|
|
|
const tplRE = /\.tpl$/
|
|
function readFileList(dir, fileList = {}) {
|
|
const files = fs.readdirSync(dir)
|
|
files.forEach((file) => {
|
|
const filepath = path.join(dir, file)
|
|
const stat = fs.statSync(filepath)
|
|
if (stat.isDirectory()) {
|
|
readFileList(filepath, fileList)
|
|
}
|
|
else {
|
|
const extname = path.extname(filepath)
|
|
if (tplRE.test(extname))
|
|
fileList[filepath.replace(tplRE, '')] = fs.readFileSync(filepath, 'utf-8')
|
|
}
|
|
})
|
|
return fileList
|
|
}
|
|
|
|
export function readTemplateList(dir) {
|
|
const templateMap = readFileList(dir)
|
|
const result = []
|
|
Object.keys(templateMap).forEach((key) => {
|
|
const file = path.relative(dir, key)
|
|
result.push({
|
|
file,
|
|
content: templateMap[key],
|
|
})
|
|
})
|
|
return result
|
|
}
|