UNPKG

42 kBSource Map (JSON)View Raw
1{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n\nimport { join, resolve, dirname, parse as parsePath, relative } from 'path';\nimport { inspect } from 'util';\nimport Module = require('module');\nlet arg: typeof import('arg');\nimport { parse, createRequire, hasOwnProperty, versionGteLt } from './util';\nimport {\n EVAL_FILENAME,\n EvalState,\n createRepl,\n ReplService,\n setupContext,\n STDIN_FILENAME,\n EvalAwarePartialHost,\n EVAL_NAME,\n STDIN_NAME,\n REPL_FILENAME,\n} from './repl';\nimport {\n VERSION,\n TSError,\n register,\n createEsmHooks,\n createFromPreloadedConfig,\n DEFAULTS,\n ExperimentalSpecifierResolution,\n} from './index';\nimport type { TSInternal } from './ts-compiler-types';\nimport { addBuiltinLibsToObject } from '../dist-raw/node-internal-modules-cjs-helpers';\nimport { callInChild } from './child/spawn-child';\nimport { findAndReadConfig } from './configuration';\n\n/**\n * Main `bin` functionality.\n *\n * This file is split into a chain of functions (phases), each one adding to a shared state object.\n * This is done so that the next function can either be invoked in-process or, if necessary, invoked in a child process.\n *\n * The functions are intentionally given uncreative names and left in the same order as the original code, to make a\n * smaller git diff.\n */\nexport function main(\n argv: string[] = process.argv.slice(2),\n entrypointArgs: Record<string, any> = {}\n) {\n const args = parseArgv(argv, entrypointArgs);\n const state: BootstrapState = {\n shouldUseChildProcess: false,\n isInChildProcess: false,\n isCli: true,\n tsNodeScript: __filename,\n parseArgvResult: args,\n };\n return bootstrap(state);\n}\n\n/**\n * @internal\n * Describes state of CLI bootstrapping.\n * Can be marshalled when necessary to resume bootstrapping in a child process.\n */\nexport interface BootstrapState {\n isInChildProcess: boolean;\n shouldUseChildProcess: boolean;\n /**\n * True if bootstrapping the ts-node CLI process or the direct child necessitated by `--esm`.\n * false if bootstrapping a subsequently `fork()`ed child.\n */\n isCli: boolean;\n tsNodeScript: string;\n parseArgvResult: ReturnType<typeof parseArgv>;\n phase2Result?: ReturnType<typeof phase2>;\n phase3Result?: ReturnType<typeof phase3>;\n}\n\n/** @internal */\nexport function bootstrap(state: BootstrapState) {\n if (!state.phase2Result) {\n state.phase2Result = phase2(state);\n if (state.shouldUseChildProcess && !state.isInChildProcess) {\n // Note: When transitioning into the child-process after `phase2`,\n // the updated working directory needs to be preserved.\n return callInChild(state);\n }\n }\n if (!state.phase3Result) {\n state.phase3Result = phase3(state);\n if (state.shouldUseChildProcess && !state.isInChildProcess) {\n // Note: When transitioning into the child-process after `phase2`,\n // the updated working directory needs to be preserved.\n return callInChild(state);\n }\n }\n return phase4(state);\n}\n\nfunction parseArgv(argv: string[], entrypointArgs: Record<string, any>) {\n arg ??= require('arg');\n // HACK: technically, this function is not marked @internal so it's possible\n // that libraries in the wild are doing `require('ts-node/dist/bin').main({'--transpile-only': true})`\n // We can mark this function @internal in next major release.\n // For now, rewrite args to avoid a breaking change.\n entrypointArgs = { ...entrypointArgs };\n for (const key of Object.keys(entrypointArgs)) {\n entrypointArgs[\n key.replace(\n /([a-z])-([a-z])/g,\n (_$0, $1, $2: string) => `${$1}${$2.toUpperCase()}`\n )\n ] = entrypointArgs[key];\n }\n\n const args = {\n ...entrypointArgs,\n ...arg(\n {\n // Node.js-like options.\n '--eval': String,\n '--interactive': Boolean,\n '--print': Boolean,\n '--require': [String],\n\n // CLI options.\n '--help': Boolean,\n '--cwdMode': Boolean,\n '--scriptMode': Boolean,\n '--version': arg.COUNT,\n '--showConfig': Boolean,\n '--esm': Boolean,\n\n // Project options.\n '--cwd': String,\n '--files': Boolean,\n '--compiler': String,\n '--compilerOptions': parse,\n '--project': String,\n '--ignoreDiagnostics': [String],\n '--ignore': [String],\n '--transpileOnly': Boolean,\n '--transpiler': String,\n '--swc': Boolean,\n '--typeCheck': Boolean,\n '--compilerHost': Boolean,\n '--pretty': Boolean,\n '--skipProject': Boolean,\n '--skipIgnore': Boolean,\n '--preferTsExts': Boolean,\n '--logError': Boolean,\n '--emit': Boolean,\n '--scope': Boolean,\n '--scopeDir': String,\n '--noExperimentalReplAwait': Boolean,\n '--experimentalSpecifierResolution': String,\n\n // Aliases.\n '-e': '--eval',\n '-i': '--interactive',\n '-p': '--print',\n '-r': '--require',\n '-h': '--help',\n '-s': '--script-mode',\n '-v': '--version',\n '-T': '--transpileOnly',\n '-H': '--compilerHost',\n '-I': '--ignore',\n '-P': '--project',\n '-C': '--compiler',\n '-D': '--ignoreDiagnostics',\n '-O': '--compilerOptions',\n '--dir': '--cwd',\n\n // Support both tsc-style camelCase and node-style hypen-case for *all* flags\n '--cwd-mode': '--cwdMode',\n '--script-mode': '--scriptMode',\n '--show-config': '--showConfig',\n '--compiler-options': '--compilerOptions',\n '--ignore-diagnostics': '--ignoreDiagnostics',\n '--transpile-only': '--transpileOnly',\n '--type-check': '--typeCheck',\n '--compiler-host': '--compilerHost',\n '--skip-project': '--skipProject',\n '--skip-ignore': '--skipIgnore',\n '--prefer-ts-exts': '--preferTsExts',\n '--log-error': '--logError',\n '--scope-dir': '--scopeDir',\n '--no-experimental-repl-await': '--noExperimentalReplAwait',\n '--experimental-specifier-resolution':\n '--experimentalSpecifierResolution',\n },\n {\n argv,\n stopAtPositional: true,\n }\n ),\n };\n\n // Only setting defaults for CLI-specific flags\n // Anything passed to `register()` can be `undefined`; `create()` will apply\n // defaults.\n const {\n '--cwd': cwdArg,\n '--help': help = false,\n '--scriptMode': scriptMode,\n '--cwdMode': cwdMode,\n '--version': version = 0,\n '--showConfig': showConfig,\n '--require': argsRequire = [],\n '--eval': code = undefined,\n '--print': print = false,\n '--interactive': interactive = false,\n '--files': files,\n '--compiler': compiler,\n '--compilerOptions': compilerOptions,\n '--project': project,\n '--ignoreDiagnostics': ignoreDiagnostics,\n '--ignore': ignore,\n '--transpileOnly': transpileOnly,\n '--typeCheck': typeCheck,\n '--transpiler': transpiler,\n '--swc': swc,\n '--compilerHost': compilerHost,\n '--pretty': pretty,\n '--skipProject': skipProject,\n '--skipIgnore': skipIgnore,\n '--preferTsExts': preferTsExts,\n '--logError': logError,\n '--emit': emit,\n '--scope': scope = undefined,\n '--scopeDir': scopeDir = undefined,\n '--noExperimentalReplAwait': noExperimentalReplAwait,\n '--experimentalSpecifierResolution': experimentalSpecifierResolution,\n '--esm': esm,\n _: restArgs,\n } = args;\n return {\n // Note: argv and restArgs may be overwritten by child process\n argv: process.argv,\n restArgs,\n\n cwdArg,\n help,\n scriptMode,\n cwdMode,\n version,\n showConfig,\n argsRequire,\n code,\n print,\n interactive,\n files,\n compiler,\n compilerOptions,\n project,\n ignoreDiagnostics,\n ignore,\n transpileOnly,\n typeCheck,\n transpiler,\n swc,\n compilerHost,\n pretty,\n skipProject,\n skipIgnore,\n preferTsExts,\n logError,\n emit,\n scope,\n scopeDir,\n noExperimentalReplAwait,\n experimentalSpecifierResolution,\n esm,\n };\n}\n\nfunction phase2(payload: BootstrapState) {\n const { help, version, cwdArg, esm } = payload.parseArgvResult;\n\n if (help) {\n console.log(`\nUsage: ts-node [options] [ -e script | script.ts ] [arguments]\n\nOptions:\n\n -e, --eval [code] Evaluate code\n -p, --print Print result of \\`--eval\\`\n -r, --require [path] Require a node module before execution\n -i, --interactive Opens the REPL even if stdin does not appear to be a terminal\n\n --esm Bootstrap with the ESM loader, enabling full ESM support\n --swc Use the faster swc transpiler\n\n -h, --help Print CLI usage\n -v, --version Print module version information. -vvv to print additional information\n --showConfig Print resolved configuration and exit\n\n -T, --transpileOnly Use TypeScript's faster \\`transpileModule\\` or a third-party transpiler\n -H, --compilerHost Use TypeScript's compiler host API\n -I, --ignore [pattern] Override the path patterns to skip compilation\n -P, --project [path] Path to TypeScript JSON project file\n -C, --compiler [name] Specify a custom TypeScript compiler\n --transpiler [name] Specify a third-party, non-typechecking transpiler\n -D, --ignoreDiagnostics [code] Ignore TypeScript warnings by diagnostic code\n -O, --compilerOptions [opts] JSON object to merge with compiler options\n\n --cwd Behave as if invoked within this working directory.\n --files Load \\`files\\`, \\`include\\` and \\`exclude\\` from \\`tsconfig.json\\` on startup\n --pretty Use pretty diagnostic formatter (usually enabled by default)\n --cwdMode Use current directory instead of <script.ts> for config resolution\n --skipProject Skip reading \\`tsconfig.json\\`\n --skipIgnore Skip \\`--ignore\\` checks\n --emit Emit output files into \\`.ts-node\\` directory\n --scope Scope compiler to files within \\`scopeDir\\`. Anything outside this directory is ignored.\n --scopeDir Directory for \\`--scope\\`\n --preferTsExts Prefer importing TypeScript files over JavaScript files\n --logError Logs TypeScript errors to stderr instead of throwing exceptions\n --noExperimentalReplAwait Disable top-level await in REPL. Equivalent to node's --no-experimental-repl-await\n --experimentalSpecifierResolution [node|explicit]\n Equivalent to node's --experimental-specifier-resolution\n`);\n\n process.exit(0);\n }\n\n // Output project information.\n if (version === 1) {\n console.log(`v${VERSION}`);\n process.exit(0);\n }\n\n const cwd = cwdArg ? resolve(cwdArg) : process.cwd();\n\n // If ESM is explicitly enabled through the flag, stage3 should be run in a child process\n // with the ESM loaders configured.\n if (esm) payload.shouldUseChildProcess = true;\n\n return {\n cwd,\n };\n}\n\nfunction phase3(payload: BootstrapState) {\n const {\n emit,\n files,\n pretty,\n transpileOnly,\n transpiler,\n noExperimentalReplAwait,\n typeCheck,\n swc,\n compilerHost,\n ignore,\n preferTsExts,\n logError,\n scriptMode,\n cwdMode,\n project,\n skipProject,\n skipIgnore,\n compiler,\n ignoreDiagnostics,\n compilerOptions,\n argsRequire,\n scope,\n scopeDir,\n esm,\n experimentalSpecifierResolution,\n } = payload.parseArgvResult;\n const { cwd } = payload.phase2Result!;\n\n // NOTE: When we transition to a child process for ESM, the entry-point script determined\n // here might not be the one used later in `phase4`. This can happen when we execute the\n // original entry-point but then the process forks itself using e.g. `child_process.fork`.\n // We will always use the original TS project in forked processes anyway, so it is\n // expected and acceptable to retrieve the entry-point information here in `phase2`.\n // See: https://github.com/TypeStrong/ts-node/issues/1812.\n const { entryPointPath } = getEntryPointInfo(payload);\n\n const preloadedConfig = findAndReadConfig({\n cwd,\n emit,\n files,\n pretty,\n transpileOnly: transpileOnly ?? transpiler != null ? true : undefined,\n experimentalReplAwait: noExperimentalReplAwait ? false : undefined,\n typeCheck,\n transpiler,\n swc,\n compilerHost,\n ignore,\n logError,\n projectSearchDir: getProjectSearchDir(\n cwd,\n scriptMode,\n cwdMode,\n entryPointPath\n ),\n project,\n skipProject,\n skipIgnore,\n compiler,\n ignoreDiagnostics,\n compilerOptions,\n require: argsRequire,\n scope,\n scopeDir,\n preferTsExts,\n esm,\n experimentalSpecifierResolution:\n experimentalSpecifierResolution as ExperimentalSpecifierResolution,\n });\n\n // If ESM is enabled through the parsed tsconfig, stage4 should be run in a child\n // process with the ESM loaders configured.\n if (preloadedConfig.options.esm) payload.shouldUseChildProcess = true;\n\n return { preloadedConfig };\n}\n\n/**\n * Determines the entry-point information from the argv and phase2 result. This\n * method will be invoked in two places:\n *\n * 1. In phase 3 to be able to find a project from the potential entry-point script.\n * 2. In phase 4 to determine the actual entry-point script.\n *\n * Note that we need to explicitly re-resolve the entry-point information in the final\n * stage because the previous stage information could be modified when the bootstrap\n * invocation transitioned into a child process for ESM.\n *\n * Stages before (phase 4) can and will be cached by the child process through the Brotli\n * configuration and entry-point information is only reliable in the final phase. More\n * details can be found in here: https://github.com/TypeStrong/ts-node/issues/1812.\n */\nfunction getEntryPointInfo(state: BootstrapState) {\n const { code, interactive, restArgs } = state.parseArgvResult!;\n const { cwd } = state.phase2Result!;\n const { isCli } = state;\n\n // Figure out which we are executing: piped stdin, --eval, REPL, and/or entrypoint\n // This is complicated because node's behavior is complicated\n // `node -e code -i ./script.js` ignores -e\n const executeEval = code != null && !(interactive && restArgs.length);\n const executeEntrypoint = !executeEval && restArgs.length > 0;\n const executeRepl =\n !executeEntrypoint &&\n (interactive || (process.stdin.isTTY && !executeEval));\n const executeStdin = !executeEval && !executeRepl && !executeEntrypoint;\n\n /**\n * Unresolved. May point to a symlink, not realpath. May be missing file extension\n * NOTE: resolution relative to cwd option (not `process.cwd()`) is legacy backwards-compat; should be changed in next major: https://github.com/TypeStrong/ts-node/issues/1834\n */\n const entryPointPath = executeEntrypoint\n ? isCli\n ? resolve(cwd, restArgs[0])\n : resolve(restArgs[0])\n : undefined;\n\n return {\n executeEval,\n executeEntrypoint,\n executeRepl,\n executeStdin,\n entryPointPath,\n };\n}\n\nfunction phase4(payload: BootstrapState) {\n const { isInChildProcess, tsNodeScript } = payload;\n const { version, showConfig, restArgs, code, print, argv } =\n payload.parseArgvResult;\n const { cwd } = payload.phase2Result!;\n const { preloadedConfig } = payload.phase3Result!;\n\n const {\n entryPointPath,\n executeEntrypoint,\n executeEval,\n executeRepl,\n executeStdin,\n } = getEntryPointInfo(payload);\n\n /**\n * <repl>, [stdin], and [eval] are all essentially virtual files that do not exist on disc and are backed by a REPL\n * service to handle eval-ing of code.\n */\n interface VirtualFileState {\n state: EvalState;\n repl: ReplService;\n module?: Module;\n }\n let evalStuff: VirtualFileState | undefined;\n let replStuff: VirtualFileState | undefined;\n let stdinStuff: VirtualFileState | undefined;\n let evalAwarePartialHost: EvalAwarePartialHost | undefined = undefined;\n if (executeEval) {\n const state = new EvalState(join(cwd, EVAL_FILENAME));\n evalStuff = {\n state,\n repl: createRepl({\n state,\n composeWithEvalAwarePartialHost: evalAwarePartialHost,\n ignoreDiagnosticsThatAreAnnoyingInInteractiveRepl: false,\n }),\n };\n ({ evalAwarePartialHost } = evalStuff.repl);\n // Create a local module instance based on `cwd`.\n const module = (evalStuff.module = new Module(EVAL_NAME));\n module.filename = evalStuff.state.path;\n module.paths = (Module as any)._nodeModulePaths(cwd);\n }\n if (executeStdin) {\n const state = new EvalState(join(cwd, STDIN_FILENAME));\n stdinStuff = {\n state,\n repl: createRepl({\n state,\n composeWithEvalAwarePartialHost: evalAwarePartialHost,\n ignoreDiagnosticsThatAreAnnoyingInInteractiveRepl: false,\n }),\n };\n ({ evalAwarePartialHost } = stdinStuff.repl);\n // Create a local module instance based on `cwd`.\n const module = (stdinStuff.module = new Module(STDIN_NAME));\n module.filename = stdinStuff.state.path;\n module.paths = (Module as any)._nodeModulePaths(cwd);\n }\n if (executeRepl) {\n const state = new EvalState(join(cwd, REPL_FILENAME));\n replStuff = {\n state,\n repl: createRepl({\n state,\n composeWithEvalAwarePartialHost: evalAwarePartialHost,\n }),\n };\n ({ evalAwarePartialHost } = replStuff.repl);\n }\n\n // Register the TypeScript compiler instance.\n const service = createFromPreloadedConfig({\n // Since this struct may have been marshalled across thread or process boundaries, we must restore\n // un-marshall-able values.\n ...preloadedConfig,\n options: {\n ...preloadedConfig.options,\n readFile: evalAwarePartialHost?.readFile ?? undefined,\n fileExists: evalAwarePartialHost?.fileExists ?? undefined,\n tsTrace: DEFAULTS.tsTrace,\n },\n });\n register(service);\n if (isInChildProcess)\n (\n require('./child/child-loader') as typeof import('./child/child-loader')\n ).lateBindHooks(createEsmHooks(service));\n\n // Bind REPL service to ts-node compiler service (chicken-and-egg problem)\n replStuff?.repl.setService(service);\n evalStuff?.repl.setService(service);\n stdinStuff?.repl.setService(service);\n\n // Output project information.\n if (version === 2) {\n console.log(`ts-node v${VERSION}`);\n console.log(`node ${process.version}`);\n console.log(`compiler v${service.ts.version}`);\n process.exit(0);\n }\n if (version >= 3) {\n console.log(`ts-node v${VERSION} ${dirname(__dirname)}`);\n console.log(`node ${process.version}`);\n console.log(\n `compiler v${service.ts.version} ${service.compilerPath ?? ''}`\n );\n process.exit(0);\n }\n\n if (showConfig) {\n const ts = service.ts as any as TSInternal;\n if (typeof ts.convertToTSConfig !== 'function') {\n console.error(\n 'Error: --showConfig requires a typescript versions >=3.2 that support --showConfig'\n );\n process.exit(1);\n }\n let moduleTypes = undefined;\n if (service.options.moduleTypes) {\n // Assumption: this codepath requires CLI invocation, so moduleTypes must have come from a tsconfig, not API.\n const showRelativeTo = dirname(service.configFilePath!);\n moduleTypes = {} as Record<string, string>;\n for (const [key, value] of Object.entries(service.options.moduleTypes)) {\n moduleTypes[\n relative(\n showRelativeTo,\n resolve(service.options.optionBasePaths?.moduleTypes!, key)\n )\n ] = value;\n }\n }\n const json = {\n ['ts-node']: {\n ...service.options,\n require: service.options.require?.length\n ? service.options.require\n : undefined,\n moduleTypes,\n optionBasePaths: undefined,\n compilerOptions: undefined,\n project: service.configFilePath ?? service.options.project,\n },\n ...ts.convertToTSConfig(\n service.config,\n service.configFilePath ?? join(cwd, 'ts-node-implicit-tsconfig.json'),\n service.ts.sys\n ),\n };\n console.log(\n // Assumes that all configuration options which can possibly be specified via the CLI are JSON-compatible.\n // If, in the future, we must log functions, for example readFile and fileExists, then we can implement a JSON\n // replacer function.\n JSON.stringify(json, null, 2)\n );\n process.exit(0);\n }\n\n // Prepend `ts-node` arguments to CLI for child processes.\n process.execArgv.push(\n tsNodeScript,\n ...argv.slice(2, argv.length - restArgs.length)\n );\n\n // TODO this comes from BootstrapState\n process.argv = [process.argv[1]]\n .concat(executeEntrypoint ? ([entryPointPath] as string[]) : [])\n .concat(restArgs.slice(executeEntrypoint ? 1 : 0));\n\n // Execute the main contents (either eval, script or piped).\n if (executeEntrypoint) {\n if (\n payload.isInChildProcess &&\n versionGteLt(process.versions.node, '18.6.0')\n ) {\n // HACK workaround node regression\n require('../dist-raw/runmain-hack.js').run(entryPointPath);\n } else {\n Module.runMain();\n }\n } else {\n // Note: eval and repl may both run, but never with stdin.\n // If stdin runs, eval and repl will not.\n if (executeEval) {\n addBuiltinLibsToObject(global);\n evalAndExitOnTsError(\n evalStuff!.repl,\n evalStuff!.module!,\n code!,\n print,\n 'eval'\n );\n }\n\n if (executeRepl) {\n replStuff!.repl.start();\n }\n\n if (executeStdin) {\n let buffer = code || '';\n process.stdin.on('data', (chunk: Buffer) => (buffer += chunk));\n process.stdin.on('end', () => {\n evalAndExitOnTsError(\n stdinStuff!.repl,\n stdinStuff!.module!,\n buffer,\n // `echo 123 | node -p` still prints 123\n print,\n 'stdin'\n );\n });\n }\n }\n}\n\n/**\n * Get project search path from args.\n */\nfunction getProjectSearchDir(\n cwd?: string,\n scriptMode?: boolean,\n cwdMode?: boolean,\n scriptPath?: string\n) {\n // Validate `--script-mode` / `--cwd-mode` / `--cwd` usage is correct.\n if (scriptMode && cwdMode) {\n throw new TypeError('--cwd-mode cannot be combined with --script-mode');\n }\n if (scriptMode && !scriptPath) {\n throw new TypeError(\n '--script-mode must be used with a script name, e.g. `ts-node --script-mode <script.ts>`'\n );\n }\n const doScriptMode =\n scriptMode === true ? true : cwdMode === true ? false : !!scriptPath;\n if (doScriptMode) {\n // Use node's own resolution behavior to ensure we follow symlinks.\n // scriptPath may omit file extension or point to a directory with or without package.json.\n // This happens before we are registered, so we tell node's resolver to consider ts, tsx, and jsx files.\n // In extremely rare cases, is is technically possible to resolve the wrong directory,\n // because we do not yet know preferTsExts, jsx, nor allowJs.\n // See also, justification why this will not happen in real-world situations:\n // https://github.com/TypeStrong/ts-node/pull/1009#issuecomment-613017081\n const exts = ['.js', '.jsx', '.ts', '.tsx'];\n const extsTemporarilyInstalled: string[] = [];\n for (const ext of exts) {\n if (!hasOwnProperty(require.extensions, ext)) {\n extsTemporarilyInstalled.push(ext);\n require.extensions[ext] = function () {};\n }\n }\n try {\n return dirname(requireResolveNonCached(scriptPath!));\n } finally {\n for (const ext of extsTemporarilyInstalled) {\n delete require.extensions[ext];\n }\n }\n }\n\n return cwd;\n}\n\nconst guaranteedNonexistentDirectoryPrefix = resolve(__dirname, 'doesnotexist');\nlet guaranteedNonexistentDirectorySuffix = 0;\n\n/**\n * require.resolve an absolute path, tricking node into *not* caching the results.\n * Necessary so that we do not pollute require.resolve cache prior to installing require.extensions\n *\n * Is a terrible hack, because node does not expose the necessary cache invalidation APIs\n * https://stackoverflow.com/questions/59865584/how-to-invalidate-cached-require-resolve-results\n */\nfunction requireResolveNonCached(absoluteModuleSpecifier: string) {\n // node <= 12.1.x fallback: The trick below triggers a node bug on old versions.\n // On these old versions, pollute the require cache instead. This is a deliberate\n // ts-node limitation that will *rarely* manifest, and will not matter once node 12\n // is end-of-life'd on 2022-04-30\n const isSupportedNodeVersion = versionGteLt(process.versions.node, '12.2.0');\n if (!isSupportedNodeVersion) return require.resolve(absoluteModuleSpecifier);\n\n const { dir, base } = parsePath(absoluteModuleSpecifier);\n const relativeModuleSpecifier = `./${base}`;\n\n const req = createRequire(\n join(dir, 'imaginaryUncacheableRequireResolveScript')\n );\n return req.resolve(relativeModuleSpecifier, {\n paths: [\n `${guaranteedNonexistentDirectoryPrefix}${guaranteedNonexistentDirectorySuffix++}`,\n ...(req.resolve.paths(relativeModuleSpecifier) || []),\n ],\n });\n}\n\n/**\n * Evaluate an [eval] or [stdin] script\n */\nfunction evalAndExitOnTsError(\n replService: ReplService,\n module: Module,\n code: string,\n isPrinted: boolean,\n filenameAndDirname: 'eval' | 'stdin'\n) {\n let result: any;\n setupContext(global, module, filenameAndDirname);\n\n try {\n result = replService.evalCode(code);\n } catch (error) {\n if (error instanceof TSError) {\n console.error(error);\n process.exit(1);\n }\n\n throw error;\n }\n\n if (isPrinted) {\n console.log(\n typeof result === 'string'\n ? result\n : inspect(result, { colors: process.stdout.isTTY })\n );\n }\n}\n\nif (require.main === module) {\n main();\n}\n"]}
\No newline at end of file