Gitako/scripts/resolve-languages-map.js
2021-08-01 16:09:15 +08:00

32 lines
979 B
JavaScript

const path = require('path')
const fs = require('fs').promises
const typescript = require('typescript')
const { emitDirPath, checkEmitDir } = require('./check-emit-dir')
const files = [path.resolve(__dirname, '..', 'vscode-icons/src/iconsManifest/languages.ts')]
const options = {
module: typescript.ModuleKind.CommonJS,
target: typescript.ScriptTarget.ES2015,
strict: true,
suppressOutputPathCheck: false,
}
async function main() {
await checkEmitDir()
const compilerHost = typescript.createCompilerHost(options)
compilerHost.writeFile = async (fileName, data, writeByteOrderMark, onError, sourceFiles) => {
if (sourceFiles.some(file => files.includes(file.fileName))) {
await fs.writeFile(path.resolve(emitDirPath, path.basename(fileName)), data)
console.log(`Emitted`, fileName)
} else {
console.log(`Skipped`, fileName)
}
}
const program = typescript.createProgram(files, options, compilerHost)
program.emit()
}
main()