1 | module.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 |
|
8 |
|
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 |
|
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 | }
|