diff --git a/src/index.spec.ts b/src/index.spec.ts index e0905cadc..d56de6834 100644 --- a/src/index.spec.ts +++ b/src/index.spec.ts @@ -288,6 +288,15 @@ describe('ts-node', function () { }) }) + it('should import ts before js when TS_NODE_PREFER_TS_EXTS env is present', function (done) { + exec(`${BIN_EXEC} tests/import-order/compiled`, { env: { ...process.env, TS_NODE_PREFER_TS_EXTS: 'true' } }, function (err, stdout) { + expect(err).to.equal(null) + expect(stdout).to.equal('Hello, TypeScript!\n') + + return done() + }) + }) + it('should ignore .d.ts files', function (done) { exec(`${BIN_EXEC} tests/import-order/importer`, function (err, stdout) { expect(err).to.equal(null) diff --git a/src/index.ts b/src/index.ts index 610969870..48d2c72ee 100644 --- a/src/index.ts +++ b/src/index.ts @@ -417,7 +417,7 @@ export function register (opts: Options = {}): Register { const register: Register = { cwd, compile, getTypeInfo, extensions, ts } // Register the extensions. - registerExtensions(opts, extensions, ignore, register, originalJsHandler) + registerExtensions(options.preferTsExts, extensions, ignore, register, originalJsHandler) return register } @@ -446,7 +446,7 @@ function reorderRequireExtension (ext: string) { * Register the extensions to support when importing files. */ function registerExtensions ( - opts: Options, + preferTsExts: boolean | null | undefined, extensions: string[], ignore: RegExp[], register: Register, @@ -457,7 +457,7 @@ function registerExtensions ( registerExtension(ext, ignore, register, originalJsHandler) } - if (opts.preferTsExts) { + if (preferTsExts) { // tslint:disable-next-line const preferredExtensions = new Set([...extensions, ...Object.keys(require.extensions)])