/
tsconfigs.ts
33 lines (31 loc) · 1.02 KB
/
tsconfigs.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { TSCommon } from '.'
const nodeMajor = parseInt(process.versions.node.split('.')[0], 10)
/**
* return parsed JSON of the bundled @tsconfig/bases config appropriate for the
* running version of nodejs
* @internal
*/
export function getDefaultTsconfigJsonForNodeVersion (ts: TSCommon): any {
if (nodeMajor >= 14) {
const config = require('@tsconfig/node14/tsconfig.json')
if (configCompatible(config)) return config
}
if (nodeMajor >= 12) {
const config = require('@tsconfig/node12/tsconfig.json')
if (configCompatible(config)) return config
}
return require('@tsconfig/node10/tsconfig.json')
// Verify that tsconfig target and lib options are compatible with TypeScript compiler
function configCompatible (config: {
compilerOptions: {
lib: string[],
target: string
}
}) {
return (
typeof (ts.ScriptTarget as any)[config.compilerOptions.target.toUpperCase()] === 'number' &&
ts.libs &&
config.compilerOptions.lib.every(lib => ts.libs!.includes(lib))
)
}
}