UNPKG

1.08 kBJavaScriptView Raw
1module.exports = (api, { tsLint = false, convertJsToTs = true } = {}) => {
2 const jsRE = /\.js$/
3 const excludeRE = /^tests\/e2e\/|(\.config|rc)\.js$/
4 const convertLintFlags = require('../lib/convertLintFlags')
5 api.postProcessFiles(files => {
6 if (convertJsToTs) {
7 // delete all js files that have a ts file of the same name
8 // and simply rename other js files to ts
9 for (const file in files) {
10 if (jsRE.test(file) && !excludeRE.test(file)) {
11 const tsFile = file.replace(jsRE, '.ts')
12 if (!files[tsFile]) {
13 let content = files[file]
14 if (tsLint) {
15 content = convertLintFlags(content)
16 }
17 files[tsFile] = content
18 }
19 delete files[file]
20 }
21 }
22 } else {
23 // rename only main file to main.ts
24 const tsFile = api.entryFile.replace(jsRE, '.ts')
25 let content = files[api.entryFile]
26 if (tsLint) {
27 content = convertLintFlags(content)
28 }
29 files[tsFile] = content
30 delete files[api.entryFile]
31 }
32 })
33}