From a04d52accb99907120d00e1fe1bb41718f6c907b Mon Sep 17 00:00:00 2001 From: Andrew Bradley Date: Sun, 22 Nov 2020 00:32:18 -0500 Subject: [PATCH 1/2] Rename `Register` to `Service`; re-export as `Register` for backwards compatibility --- src/bin.ts | 8 ++++---- src/index.spec.ts | 6 +++--- src/index.ts | 23 +++++++++++++++-------- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/bin.ts b/src/bin.ts index bac650106..b9a0bb591 100644 --- a/src/bin.ts +++ b/src/bin.ts @@ -9,7 +9,7 @@ import { diffLines } from 'diff' import { Script } from 'vm' import { readFileSync, statSync, realpathSync } from 'fs' import { homedir } from 'os' -import { VERSION, TSError, parse, Register, register } from './index' +import { VERSION, TSError, parse, Service, register } from './index' /** * Eval filename for REPL/debug. @@ -284,7 +284,7 @@ function getCwd (dir?: string, scriptMode?: boolean, scriptPath?: string) { /** * Evaluate a script. */ -function evalAndExit (service: Register, state: EvalState, module: Module, code: string, isPrinted: boolean) { +function evalAndExit (service: Service, state: EvalState, module: Module, code: string, isPrinted: boolean) { let result: any ;(global as any).__filename = module.filename @@ -312,7 +312,7 @@ function evalAndExit (service: Register, state: EvalState, module: Module, code: /** * Evaluate the code snippet. */ -function _eval (service: Register, state: EvalState, input: string) { +function _eval (service: Service, state: EvalState, input: string) { const lines = state.lines const isCompletion = !/\n$/.test(input) const undo = appendEval(state, input) @@ -351,7 +351,7 @@ function exec (code: string, filename: string) { /** * Start a CLI REPL. */ -function startRepl (service: Register, state: EvalState, code?: string) { +function startRepl (service: Service, state: EvalState, code?: string) { // Eval incoming code before the REPL starts. if (code) { try { diff --git a/src/index.spec.ts b/src/index.spec.ts index 74a2959a4..e8b1bfe43 100644 --- a/src/index.spec.ts +++ b/src/index.spec.ts @@ -643,7 +643,7 @@ describe('ts-node', function () { }) describe('register', function () { - let registered: tsNodeTypes.Register + let registered: tsNodeTypes.Service let moduleTestPath: string before(() => { registered = register({ @@ -796,7 +796,7 @@ describe('ts-node', function () { }) describe('create', () => { - let service: tsNodeTypes.Register + let service: tsNodeTypes.Service before(() => { service = create({ compilerOptions: { target: 'es5' }, skipProject: true }) }) @@ -823,7 +823,7 @@ describe('ts-node', function () { }) describe('issue #1098', () => { - function testIgnored (ignored: tsNodeTypes.Register['ignored'], allowed: string[], disallowed: string[]) { + function testIgnored (ignored: tsNodeTypes.Service['ignored'], allowed: string[], disallowed: string[]) { for (const ext of allowed) { expect(ignored(join(__dirname, `index${ext}`))).equal(false, `should accept ${ext} files`) } diff --git a/src/index.ts b/src/index.ts index 277378226..d36ad16a5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -37,7 +37,7 @@ export const REGISTER_INSTANCE = Symbol.for('ts-node.register.instance') declare global { namespace NodeJS { interface Process { - [REGISTER_INSTANCE]?: Register + [REGISTER_INSTANCE]?: Service } } } @@ -351,9 +351,9 @@ export class TSError extends BaseError { } /** - * Return type for registering `ts-node`. + * Primary ts-node service, which wraps the TypeScript API and can compile TypeScript to JavaScript */ -export interface Register { +export interface Service { ts: TSCommon config: _ts.ParsedCommandLine options: RegisterOptions @@ -363,6 +363,13 @@ export interface Register { getTypeInfo (code: string, fileName: string, position: number): TypeInfo } +/** + * Re-export of `Service` interface for backwards-compatibility + * @deprecated use `Service` instead + * @see Service + */ +export type Register = Service + /** * Cached fs operation wrapper. */ @@ -393,7 +400,7 @@ export function getExtensions (config: _ts.ParsedCommandLine) { /** * Register TypeScript compiler instance onto node.js */ -export function register (opts: RegisterOptions = {}): Register { +export function register (opts: RegisterOptions = {}): Service { const originalJsHandler = require.extensions['.js'] // tslint:disable-line const service = create(opts) const { tsExtensions, jsExtensions } = getExtensions(service.config) @@ -414,7 +421,7 @@ export function register (opts: RegisterOptions = {}): Register { /** * Create TypeScript compiler instance. */ -export function create (rawOptions: CreateOptions = {}): Register { +export function create (rawOptions: CreateOptions = {}): Service { const dir = rawOptions.dir ?? DEFAULTS.dir const compilerName = rawOptions.compiler ?? DEFAULTS.compiler const cwd = dir ? resolve(dir) : process.cwd() @@ -1003,12 +1010,12 @@ function reorderRequireExtension (ext: string) { function registerExtensions ( preferTsExts: boolean | null | undefined, extensions: string[], - register: Register, + service: Service, originalJsHandler: (m: NodeModule, filename: string) => any ) { // Register new extensions. for (const ext of extensions) { - registerExtension(ext, register, originalJsHandler) + registerExtension(ext, service, originalJsHandler) } if (preferTsExts) { @@ -1024,7 +1031,7 @@ function registerExtensions ( */ function registerExtension ( ext: string, - register: Register, + register: Service, originalHandler: (m: NodeModule, filename: string) => any ) { const old = require.extensions[ext] || originalHandler // tslint:disable-line From cee6007c34a0c8da7ee33a61269e0cc7d577338a Mon Sep 17 00:00:00 2001 From: Andrew Bradley Date: Thu, 3 Dec 2020 00:22:51 -0500 Subject: [PATCH 2/2] rename variable 'register' to 'service' --- src/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/index.ts b/src/index.ts index d36ad16a5..0785e5e8e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1031,15 +1031,15 @@ function registerExtensions ( */ function registerExtension ( ext: string, - register: Service, + service: Service, originalHandler: (m: NodeModule, filename: string) => any ) { const old = require.extensions[ext] || originalHandler // tslint:disable-line require.extensions[ext] = function (m: any, filename) { // tslint:disable-line - if (register.ignored(filename)) return old(m, filename) + if (service.ignored(filename)) return old(m, filename) - if (register.options.experimentalEsmLoader) { + if (service.options.experimentalEsmLoader) { assertScriptCanLoadAsCJS(filename) } @@ -1048,7 +1048,7 @@ function registerExtension ( m._compile = function (code: string, fileName: string) { debug('module._compile', fileName) - return _compile.call(this, register.compile(code, fileName), fileName) + return _compile.call(this, service.compile(code, fileName), fileName) } return old(m, filename)