36 lines
1.4 KiB
JavaScript
36 lines
1.4 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.getDefaultTsconfigJsonForNodeVersion = void 0;
|
|
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
|
|
*/
|
|
function getDefaultTsconfigJsonForNodeVersion(ts) {
|
|
const tsInternal = ts;
|
|
if (nodeMajor >= 16) {
|
|
const config = require('@tsconfig/node16/tsconfig.json');
|
|
if (configCompatible(config))
|
|
return config;
|
|
}
|
|
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) {
|
|
return (typeof ts.ScriptTarget[config.compilerOptions.target.toUpperCase()] === 'number' &&
|
|
tsInternal.libs &&
|
|
config.compilerOptions.lib.every((lib) => tsInternal.libs.includes(lib)));
|
|
}
|
|
}
|
|
exports.getDefaultTsconfigJsonForNodeVersion = getDefaultTsconfigJsonForNodeVersion;
|
|
//# sourceMappingURL=tsconfigs.js.map
|