Sha256: ea3ea3b885b8841a93537aa672b68417ebe2ef1130996e9c7f2f4811a469cebf
Contents?: true
Size: 1.76 KB
Versions: 26
Compression:
Stored size: 1.76 KB
Contents
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getUserCodeFrame = getUserCodeFrame; // We try to load node dependencies let chalk = null; let readFileSync = null; let codeFrameColumns = null; try { const nodeRequire = module && module.require; readFileSync = nodeRequire.call(module, 'fs').readFileSync; codeFrameColumns = nodeRequire.call(module, '@babel/code-frame').codeFrameColumns; chalk = nodeRequire.call(module, 'chalk'); } catch { // We're in a browser environment } // frame has the form "at myMethod (location/to/my/file.js:10:2)" function getCodeFrame(frame) { const locationStart = frame.indexOf('(') + 1; const locationEnd = frame.indexOf(')'); const frameLocation = frame.slice(locationStart, locationEnd); const frameLocationElements = frameLocation.split(':'); const [filename, line, column] = [frameLocationElements[0], parseInt(frameLocationElements[1], 10), parseInt(frameLocationElements[2], 10)]; let rawFileContents = ''; try { rawFileContents = readFileSync(filename, 'utf-8'); } catch { return ''; } const codeFrame = codeFrameColumns(rawFileContents, { start: { line, column } }, { highlightCode: true, linesBelow: 0 }); return `${chalk.dim(frameLocation)}\n${codeFrame}\n`; } function getUserCodeFrame() { // If we couldn't load dependencies, we can't generate the user trace /* istanbul ignore next */ if (!readFileSync || !codeFrameColumns) { return ''; } const err = new Error(); const firstClientCodeFrame = err.stack.split('\n').slice(1) // Remove first line which has the form "Error: TypeError" .find(frame => !frame.includes('node_modules/')); // Ignore frames from 3rd party libraries return getCodeFrame(firstClientCodeFrame); }
Version data entries
26 entries across 26 versions & 1 rubygems