ts-node-lite
Version:
TypeScript execution environment for node.js, with source map support
57 lines • 1.92 kB
JavaScript
;
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 >= 20) {
const config = require('@tsconfig/node20/tsconfig.json');
if (configCompatible(config))
return config;
}
if (nodeMajor >= 18) {
const config = require('@tsconfig/node18/tsconfig.json');
if (configCompatible(config))
return config;
}
if (nodeMajor >= 16) {
const config = require('@tsconfig/node16/tsconfig.json');
if (configCompatible(config))
return config;
}
{
const config = require('@tsconfig/node14/tsconfig.json');
if (configCompatible(config))
return config;
}
// Old TypeScript compilers may be incompatible with *all* @tsconfig/node* configs,
// so fallback to nothing
return {};
// Verify that tsconfig target and lib options are compatible with TypeScript compiler
function configCompatible(config) {
const results = ts.parseJsonConfigFileContent({
compilerOptions: config.compilerOptions,
files: ['foo.ts'],
}, parseConfigHost, '');
return results.errors.length === 0;
}
}
exports.getDefaultTsconfigJsonForNodeVersion = getDefaultTsconfigJsonForNodeVersion;
const parseConfigHost = {
useCaseSensitiveFileNames: false,
readDirectory(rootDir, extensions, excludes, includes, depth) {
return [];
},
fileExists(path) {
return false;
},
readFile(path) {
return '';
},
};
//# sourceMappingURL=tsconfigs.js.map