Files
iconfont-download/单文件拆分/index.ts
2023-09-05 16:25:29 +08:00

41 lines
1.6 KiB
TypeScript

import { resolve, join } from 'path'
import FileUtil from './src/utils/FileUtil'
const siconUrl = resolve('E:/repo/test/ssly-admin/admin/public/static_res')
const staticIconUrl = resolve('E:/repo/test/ssly-admin/admin/public/static_res/sicon')
const init = async () => {
await FileUtil.deleteFileOrDirectory(staticIconUrl)
await FileUtil.readDirectory(siconUrl, async (filepath: string) => {
if (filepath.endsWith('.ts')) {
const filename =
filepath
.substring(filepath.lastIndexOf('\\') + 1)
.split('.')
.shift() || ''
try {
let fstr = await FileUtil.readFile(filepath)
fstr = fstr.split(`export const ${filename}Name`)[0]
fstr = fstr.split('=')[1]
const ctx = JSON.parse(fstr.replaceAll("'", '"'))
const keys = [] as any[]
Object.keys(ctx).forEach((key) => {
let _res = JSON.stringify(ctx[key])
if (typeof ctx[key] === 'string') {
_res = _res.substring(1, _res.length - 1)
}
key = key.replaceAll(':','-')
keys.push(key)
FileUtil.writeFile(join(staticIconUrl, `./${filename}/${key}.json`), _res)
})
FileUtil.writeFile(join(staticIconUrl, `./${filename}/_keys.json`), JSON.stringify(keys))
} catch {
console.log('处理失败', filename)
}
}
})
}
init()