UNPKG

35.6 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { relative, basename, extname, resolve, dirname, join } from 'path'\nimport { readFileSync, writeFileSync } from 'fs'\nimport { EOL, tmpdir, homedir } from 'os'\nimport sourceMapSupport = require('source-map-support')\nimport chalk from 'chalk'\nimport mkdirp = require('mkdirp')\nimport crypto = require('crypto')\nimport yn = require('yn')\nimport arrify = require('arrify')\nimport { BaseError } from 'make-error'\nimport * as TS from 'typescript'\n\nconst pkg = require('../package.json')\nconst shouldDebug = yn(process.env.TS_NODE_DEBUG)\nconst debug = shouldDebug ? console.log.bind(console, 'ts-node') : () => undefined\nconst debugFn = shouldDebug ?\n <T, U> (key: string, fn: (arg: T) => U) => {\n return (x: T) => {\n debug(key, x)\n return fn(x)\n }\n } :\n <T, U> (_: string, fn: (arg: T) => U) => fn\n\n/**\n * Common TypeScript interfaces between versions.\n */\nexport interface TSCommon {\n version: typeof TS.version\n sys: typeof TS.sys\n ScriptSnapshot: typeof TS.ScriptSnapshot\n displayPartsToString: typeof TS.displayPartsToString\n createLanguageService: typeof TS.createLanguageService\n getDefaultLibFilePath: typeof TS.getDefaultLibFilePath\n getPreEmitDiagnostics: typeof TS.getPreEmitDiagnostics\n flattenDiagnosticMessageText: typeof TS.flattenDiagnosticMessageText\n transpileModule: typeof TS.transpileModule\n ModuleKind: typeof TS.ModuleKind\n ScriptTarget: typeof TS.ScriptTarget\n findConfigFile: typeof TS.findConfigFile\n readConfigFile: typeof TS.readConfigFile\n parseJsonConfigFileContent: typeof TS.parseJsonConfigFileContent\n}\n\n/**\n * Export the current version.\n */\nexport const VERSION = pkg.version\n\n/**\n * Registration options.\n */\nexport interface Options {\n typeCheck?: boolean | null\n transpileOnly?: boolean | null\n cache?: boolean | null\n cacheDirectory?: string\n compiler?: string\n ignore?: string | string[]\n project?: string\n skipIgnore?: boolean | null\n skipProject?: boolean | null\n compilerOptions?: object\n ignoreDiagnostics?: number | string | Array<number | string>\n readFile?: (path: string) => string | undefined\n fileExists?: (path: string) => boolean\n transformers?: TS.CustomTransformers\n}\n\n/**\n * Track the project information.\n */\ninterface MemoryCache {\n contents: { [path: string]: string }\n versions: { [path: string]: number | undefined }\n outputs: { [path: string]: string }\n}\n\n/**\n * Information retrieved from type info check.\n */\nexport interface TypeInfo {\n name: string\n comment: string\n}\n\n/**\n * Default register options.\n */\nexport const DEFAULTS: Options = {\n cache: yn(process.env['TS_NODE_CACHE'], { default: true }),\n cacheDirectory: process.env['TS_NODE_CACHE_DIRECTORY'],\n compiler: process.env['TS_NODE_COMPILER'],\n compilerOptions: parse(process.env['TS_NODE_COMPILER_OPTIONS']),\n ignore: split(process.env['TS_NODE_IGNORE']),\n project: process.env['TS_NODE_PROJECT'],\n skipIgnore: yn(process.env['TS_NODE_SKIP_IGNORE']),\n skipProject: yn(process.env['TS_NODE_SKIP_PROJECT']),\n ignoreDiagnostics: split(process.env['TS_NODE_IGNORE_DIAGNOSTICS']),\n typeCheck: yn(process.env['TS_NODE_TYPE_CHECK']),\n transpileOnly: yn(process.env['TS_NODE_TRANSPILE_ONLY'])\n}\n\n/**\n * Default TypeScript compiler options required by `ts-node`.\n */\nconst DEFAULT_COMPILER_OPTIONS = {\n sourceMap: true,\n inlineSourceMap: false,\n inlineSources: true,\n declaration: false,\n noEmit: false,\n outDir: '$$ts-node$$'\n}\n\n/**\n * Split a string array of values.\n */\nexport function split (value: string | undefined) {\n return typeof value === 'string' ? value.split(/ *, */g) : undefined\n}\n\n/**\n * Parse a string as JSON.\n */\nexport function parse (value: string | undefined): object | undefined {\n return typeof value === 'string' ? JSON.parse(value) : undefined\n}\n\n/**\n * Replace backslashes with forward slashes.\n */\nexport function normalizeSlashes (value: string): string {\n return value.replace(/\\\\/g, '/')\n}\n\n/**\n * TypeScript diagnostics error.\n */\nexport class TSError extends BaseError {\n name = 'TSError'\n\n constructor (public diagnostics: TSDiagnostic[]) {\n super(\n `⨯ Unable to compile TypeScript\\n${diagnostics.map(x => x.message).join('\\n')}`\n )\n }\n}\n\n/**\n * Return type for registering `ts-node`.\n */\nexport interface Register {\n cwd: string\n extensions: string[]\n cachedir: string\n ts: TSCommon\n compile (code: string, fileName: string, lineOffset?: number): string\n getTypeInfo (code: string, fileName: string, position: number): TypeInfo\n}\n\n/**\n * Return a default temp directory based on home directory of user.\n */\nfunction getTmpDir (): string {\n const hash = crypto.createHash('sha256').update(homedir(), 'utf8').digest('hex')\n\n return join(tmpdir(), `ts-node-${hash}`)\n}\n\n/**\n * Register TypeScript compiler.\n */\nexport function register (opts: Options = {}): Register {\n const options = Object.assign({}, DEFAULTS, opts)\n const cacheDirectory = options.cacheDirectory || getTmpDir()\n const originalJsHandler = require.extensions['.js']\n\n const ignoreDiagnostics = arrify(options.ignoreDiagnostics).concat([\n 6059, // \"'rootDir' is expected to contain all source files.\"\n 18002, // \"The 'files' list in config file is empty.\"\n 18003 // \"No inputs were found in config file.\"\n ]).map(Number)\n\n const memoryCache: MemoryCache = {\n contents: Object.create(null),\n versions: Object.create(null),\n outputs: Object.create(null)\n }\n\n const ignore = options.skipIgnore ? [] : arrify(\n options.ignore || '/node_modules/'\n ).map(str => new RegExp(str))\n\n // Install source map support and read from memory cache.\n sourceMapSupport.install({\n environment: 'node',\n retrieveFile (path: string) {\n return memoryCache.outputs[path]\n }\n })\n\n // Require the TypeScript compiler and configuration.\n const cwd = process.cwd()\n const compiler = options.compiler || 'typescript'\n const typeCheck = options.typeCheck === true || options.transpileOnly !== true\n const ts: typeof TS = require(compiler)\n const transformers = options.transformers || undefined\n const readFile = options.readFile || ts.sys.readFile\n const fileExists = options.fileExists || ts.sys.fileExists\n const config = readConfig(cwd, ts, options.compilerOptions, fileExists, readFile, options.project, options.skipProject)\n const configDiagnostics = filterDiagnostics(config.errors, ignoreDiagnostics)\n const extensions = ['.ts', '.tsx']\n\n const cachedir = join(\n resolve(cwd, cacheDirectory),\n getCompilerDigest({ version: ts.version, typeCheck, ignoreDiagnostics, config, compiler })\n )\n\n // Render the configuration errors and exit the script.\n if (configDiagnostics.length) {\n throw new TSError(formatDiagnostics(configDiagnostics, cwd, ts, 0))\n }\n\n // Enable `allowJs` when flag is set.\n if (config.options.allowJs) {\n extensions.push('.js')\n extensions.push('.jsx')\n }\n\n // Add all files into the file hash.\n for (const fileName of config.fileNames) {\n memoryCache.versions[fileName] = 1\n }\n\n /**\n * Get the extension for a transpiled file.\n */\n const getExtension = config.options.jsx === ts.JsxEmit.Preserve ?\n ((path: string) => /\\.[tj]sx$/.test(path) ? '.jsx' : '.js') :\n ((_: string) => '.js')\n\n /**\n * Create the basic required function using transpile mode.\n */\n let getOutput = function (code: string, fileName: string, lineOffset = 0): SourceOutput {\n const result = ts.transpileModule(code, {\n fileName,\n transformers,\n compilerOptions: config.options,\n reportDiagnostics: true\n })\n\n const diagnosticList = result.diagnostics ?\n filterDiagnostics(result.diagnostics, ignoreDiagnostics) :\n []\n\n if (diagnosticList.length) {\n throw new TSError(formatDiagnostics(diagnosticList, cwd, ts, lineOffset))\n }\n\n return [result.outputText, result.sourceMapText as string]\n }\n\n let getTypeInfo = function (_code: string, _fileName: string, _position: number): TypeInfo {\n throw new TypeError(`Type information is unavailable without \"--type-check\"`)\n }\n\n // Use full language services when the fast option is disabled.\n if (typeCheck) {\n // Set the file contents into cache.\n const updateMemoryCache = function (code: string, fileName: string) {\n if (memoryCache.contents[fileName] !== code) {\n memoryCache.contents[fileName] = code\n memoryCache.versions[fileName] = (memoryCache.versions[fileName] || 0) + 1\n }\n }\n\n // Create the compiler host for type checking.\n const serviceHost = {\n getScriptFileNames: () => Object.keys(memoryCache.versions),\n getScriptVersion: (fileName: string) => {\n const version = memoryCache.versions[fileName]\n\n // We need to return `undefined` and not a string here because TypeScript will use\n // `getScriptVersion` and compare against their own version - which can be `undefined`.\n // If we don't return `undefined` it results in `undefined === \"undefined\"` and run\n // `createProgram` again (which is very slow). Using a `string` assertion here to avoid\n // TypeScript errors from the function signature (expects `(x: string) => string`).\n return version === undefined ? undefined as any as string : String(version)\n },\n getScriptSnapshot (fileName: string) {\n if (!memoryCache.contents[fileName]) {\n const contents = readFile(fileName)\n if (!contents) return\n memoryCache.contents[fileName] = contents\n }\n\n return ts.ScriptSnapshot.fromString(memoryCache.contents[fileName])\n },\n fileExists: debugFn('fileExists', fileExists),\n readFile: debugFn('getFile', readFile),\n readDirectory: debugFn('readDirectory', ts.sys.readDirectory),\n getDirectories: debugFn('getDirectories', ts.sys.getDirectories),\n directoryExists: debugFn('directoryExists', ts.sys.directoryExists),\n getNewLine: () => EOL,\n getCurrentDirectory: () => cwd,\n getCompilationSettings: () => config.options,\n getDefaultLibFileName: () => ts.getDefaultLibFilePath(config.options),\n getCustomTransformers: () => transformers\n }\n\n const service = ts.createLanguageService(serviceHost)\n\n getOutput = function (code: string, fileName: string, lineOffset: number = 0) {\n // Must set memory cache before attempting to read file.\n updateMemoryCache(code, fileName)\n\n const output = service.getEmitOutput(fileName)\n\n // Get the relevant diagnostics - this is 3x faster than `getPreEmitDiagnostics`.\n const diagnostics = service.getCompilerOptionsDiagnostics()\n .concat(service.getSyntacticDiagnostics(fileName))\n .concat(service.getSemanticDiagnostics(fileName))\n\n const diagnosticList = filterDiagnostics(diagnostics, ignoreDiagnostics)\n\n if (diagnosticList.length) {\n throw new TSError(formatDiagnostics(diagnosticList, cwd, ts, lineOffset))\n }\n\n if (output.emitSkipped) {\n throw new TypeError(`${relative(cwd, fileName)}: Emit skipped`)\n }\n\n // Throw an error when requiring `.d.ts` files.\n if (output.outputFiles.length === 0) {\n throw new TypeError(\n 'Unable to require `.d.ts` file.\\n' +\n 'This is usually the result of a faulty configuration or import. ' +\n 'Make sure there is a `.js`, `.json` or another executable extension and ' +\n 'loader (attached before `ts-node`) available alongside ' +\n `\\`${basename(fileName)}\\`.`\n )\n }\n\n return [output.outputFiles[1].text, output.outputFiles[0].text]\n }\n\n getTypeInfo = function (code: string, fileName: string, position: number) {\n updateMemoryCache(code, fileName)\n\n const info = service.getQuickInfoAtPosition(fileName, position)\n const name = ts.displayPartsToString(info ? info.displayParts : [])\n const comment = ts.displayPartsToString(info ? info.documentation : [])\n\n return { name, comment }\n }\n }\n\n const compile = readThrough(cachedir, options.cache === true, memoryCache, getOutput, getExtension)\n const register: Register = { cwd, compile, getTypeInfo, extensions, cachedir, ts }\n\n // Register the extensions.\n extensions.forEach(extension => {\n registerExtension(extension, ignore, register, originalJsHandler)\n })\n\n return register\n}\n\n/**\n * Check if the filename should be ignored.\n */\nfunction shouldIgnore (filename: string, ignore: RegExp[]) {\n const relname = normalizeSlashes(filename)\n\n return ignore.some(x => x.test(relname))\n}\n\n/**\n * Register the extension for node.\n */\nfunction registerExtension (\n ext: string,\n ignore: RegExp[],\n register: Register,\n originalHandler: (m: NodeModule, filename: string) => any\n) {\n const old = require.extensions[ext] || originalHandler\n\n require.extensions[ext] = function (m: any, filename) {\n if (shouldIgnore(filename, ignore)) {\n return old(m, filename)\n }\n\n const _compile = m._compile\n\n m._compile = function (code: string, fileName: string) {\n debug('module._compile', fileName)\n\n return _compile.call(this, register.compile(code, fileName), fileName)\n }\n\n return old(m, filename)\n }\n}\n\n/**\n * Do post-processing on config options to support `ts-node`.\n */\nfunction fixConfig (ts: TSCommon, config: any) {\n // Delete options that *should not* be passed through.\n delete config.options.out\n delete config.options.outFile\n delete config.options.declarationDir\n\n // Target ES5 output by default (instead of ES3).\n if (config.options.target === undefined) {\n config.options.target = ts.ScriptTarget.ES5\n }\n\n // Target CommonJS modules by default (instead of magically switching to ES6 when the target is ES6).\n if (config.options.module === undefined) {\n config.options.module = ts.ModuleKind.CommonJS\n }\n\n return config\n}\n\n/**\n * Load TypeScript configuration.\n */\nfunction readConfig (\n cwd: string,\n ts: TSCommon,\n compilerOptions: any,\n fileExists: (path: string) => boolean,\n readFile: (path: string) => string | undefined,\n project?: string | null,\n noProject?: boolean | null\n) {\n let config = { compilerOptions: {} as any }\n let basePath = cwd\n let configFileName: string | undefined = undefined\n\n // Read project configuration when available.\n if (!noProject) {\n configFileName = project ? resolve(cwd, project) : ts.findConfigFile(cwd, fileExists)\n\n if (configFileName) {\n const result = ts.readConfigFile(configFileName, readFile)\n\n if (result.error) {\n throw new TSError([formatDiagnostic(result.error, cwd, ts, 0)])\n }\n\n config = result.config\n basePath = normalizeSlashes(dirname(configFileName))\n }\n }\n\n // Override default configuration options `ts-node` requires.\n config.compilerOptions = Object.assign({}, config.compilerOptions, compilerOptions, DEFAULT_COMPILER_OPTIONS)\n\n return fixConfig(ts, ts.parseJsonConfigFileContent(config, ts.sys, basePath, undefined, configFileName))\n}\n\n/**\n * Internal source output.\n */\ntype SourceOutput = [string, string]\n\n/**\n * Wrap the function with caching.\n */\nfunction readThrough (\n cachedir: string,\n shouldCache: boolean,\n memoryCache: MemoryCache,\n compile: (code: string, fileName: string, lineOffset?: number) => SourceOutput,\n getExtension: (fileName: string) => string\n) {\n if (shouldCache === false) {\n return function (code: string, fileName: string, lineOffset?: number) {\n debug('readThrough', fileName)\n\n const [value, sourceMap] = compile(code, fileName, lineOffset)\n const output = updateOutput(value, fileName, sourceMap, getExtension)\n\n memoryCache.outputs[fileName] = output\n\n return output\n }\n }\n\n // Make sure the cache directory exists before continuing.\n mkdirp.sync(cachedir)\n\n return function (code: string, fileName: string, lineOffset?: number) {\n debug('readThrough', fileName)\n\n const cachePath = join(cachedir, getCacheName(code, fileName))\n const extension = getExtension(fileName)\n const outputPath = `${cachePath}${extension}`\n\n try {\n const output = readFileSync(outputPath, 'utf8')\n if (isValidCacheContent(output)) {\n memoryCache.outputs[fileName] = output\n return output\n }\n } catch (err) {/* Ignore. */}\n\n const [value, sourceMap] = compile(code, fileName, lineOffset)\n const output = updateOutput(value, fileName, sourceMap, getExtension)\n\n memoryCache.outputs[fileName] = output\n writeFileSync(outputPath, output)\n\n return output\n }\n}\n\n/**\n * Update the output remapping the source map.\n */\nfunction updateOutput (outputText: string, fileName: string, sourceMap: string, getExtension: (fileName: string) => string) {\n const base64Map = new Buffer(updateSourceMap(sourceMap, fileName), 'utf8').toString('base64')\n const sourceMapContent = `data:application/json;charset=utf-8;base64,${base64Map}`\n const sourceMapLength = `${basename(fileName)}.map`.length + (getExtension(fileName).length - extname(fileName).length)\n\n return outputText.slice(0, -sourceMapLength) + sourceMapContent\n}\n\n/**\n * Update the source map contents for improved output.\n */\nfunction updateSourceMap (sourceMapText: string, fileName: string) {\n const sourceMap = JSON.parse(sourceMapText)\n sourceMap.file = fileName\n sourceMap.sources = [fileName]\n delete sourceMap.sourceRoot\n return JSON.stringify(sourceMap)\n}\n\n/**\n * Get the file name for the cache entry.\n */\nfunction getCacheName (sourceCode: string, fileName: string) {\n return crypto.createHash('sha256')\n .update(extname(fileName), 'utf8')\n .update('\\x001\\x00', 'utf8') // Store \"cache version\" in hash.\n .update(sourceCode, 'utf8')\n .digest('hex')\n}\n\n/**\n * Ensure the given cached content is valid by sniffing for a base64 encoded '}'\n * at the end of the content, which should exist if there is a valid sourceMap present.\n */\nfunction isValidCacheContent (contents: string) {\n return /(?:9|0=|Q==)$/.test(contents.slice(-3))\n}\n\n/**\n * Create a hash of the current configuration.\n */\nfunction getCompilerDigest (obj: object) {\n return crypto.createHash('sha256').update(JSON.stringify(obj), 'utf8').digest('hex')\n}\n\n/**\n * Filter diagnostics.\n */\nfunction filterDiagnostics (diagnostics: TS.Diagnostic[], ignore: number[]) {\n return diagnostics.filter(x => ignore.indexOf(x.code) === -1)\n}\n\n/**\n * Format an array of diagnostics.\n */\nexport function formatDiagnostics (diagnostics: TS.Diagnostic[], cwd: string, ts: TSCommon, lineOffset: number) {\n return diagnostics.map(x => formatDiagnostic(x, cwd, ts, lineOffset))\n}\n\n/**\n * Internal diagnostic representation.\n */\nexport interface TSDiagnostic {\n message: string\n code: number\n}\n\n/**\n * Format a diagnostic object into a string.\n */\nexport function formatDiagnostic (\n diagnostic: TS.Diagnostic,\n cwd: string,\n ts: TSCommon,\n lineOffset: number\n): TSDiagnostic {\n const messageText = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n')\n const { code } = diagnostic\n\n if (diagnostic.file) {\n const path = relative(cwd, diagnostic.file.fileName)\n\n if (diagnostic.start) {\n const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start)\n const message = `${path} (${line + 1 + lineOffset},${character + 1}): ${messageText} (${code})`\n\n return { message, code }\n }\n\n return { message: `${path}: ${messageText} (${code})`, code }\n }\n\n return { message: `${messageText} (${code})`, code }\n}\n\n/**\n * Stringify the `TSError` instance.\n */\nexport function printError (error: TSError) {\n const title = `${chalk.red('⨯')} Unable to compile TypeScript`\n\n return `${chalk.bold(title)}\\n${error.diagnostics.map(x => x.message).join('\\n')}`\n}\n"]}
\No newline at end of file