From 9c4b462bb80b09fdaee3564447e6e5df190e7cbc Mon Sep 17 00:00:00 2001 From: calebboyd Date: Thu, 3 Jun 2021 12:16:40 -0500 Subject: [PATCH] feat(register): try-ts-ext register option --- package.json | 1 + register/try-ts-ext.js | 3 +++ src/index.ts | 13 ++++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 register/try-ts-ext.js diff --git a/package.json b/package.json index 76dbbe56f..7cb0a54b3 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "./register/files": "./register/files.js", "./register/transpile-only": "./register/transpile-only.js", "./register/type-check": "./register/type-check.js", + "./register/try-ts-ext": "./register/try-ts-ext.js", "./esm": "./esm.mjs", "./esm.mjs": "./esm.mjs", "./esm/transpile-only": "./esm/transpile-only.mjs", diff --git a/register/try-ts-ext.js b/register/try-ts-ext.js new file mode 100644 index 000000000..e2d59618b --- /dev/null +++ b/register/try-ts-ext.js @@ -0,0 +1,3 @@ +require('../dist').register({ + tryTsExt: true, +}); diff --git a/src/index.ts b/src/index.ts index e9b42eac2..29c845f10 100644 --- a/src/index.ts +++ b/src/index.ts @@ -84,6 +84,7 @@ export interface ProcessEnv { TS_NODE_SKIP_PROJECT?: string; TS_NODE_SKIP_IGNORE?: string; TS_NODE_PREFER_TS_EXTS?: string; + TS_NODE_TRY_TS_EXT?: string; TS_NODE_IGNORE_DIAGNOSTICS?: string; TS_NODE_TRANSPILE_ONLY?: string; TS_NODE_TYPE_CHECK?: string; @@ -280,6 +281,13 @@ export interface RegisterOptions extends CreateOptions { * @default false */ preferTsExts?: boolean; + + /** + * Attempt to resolve the typescript file when the js file cannot be found. + * + * @default false + */ + tryTsExt?: boolean } /** @@ -327,6 +335,7 @@ export const DEFAULTS: RegisterOptions = { skipProject: yn(env.TS_NODE_SKIP_PROJECT), skipIgnore: yn(env.TS_NODE_SKIP_IGNORE), preferTsExts: yn(env.TS_NODE_PREFER_TS_EXTS), + tryTsExt: yn(env.TS_NODE_ESM_COMPAT), ignoreDiagnostics: split(env.TS_NODE_IGNORE_DIAGNOSTICS), transpileOnly: yn(env.TS_NODE_TRANSPILE_ONLY), typeCheck: yn(env.TS_NODE_TYPE_CHECK), @@ -441,7 +450,9 @@ export function register(opts: RegisterOptions = {}): Service { originalJsHandler ); - patchResolveFileName(); + if (service.options.tryTsExt) { + patchResolveFileName(); + } // Require specified modules before start-up. (Module as any)._preloadModules(service.options.require);