diff options
| author | Joel Kronqvist <joel.h.kronqvist@gmail.com> | 2022-03-05 19:02:27 +0200 | 
|---|---|---|
| committer | Joel Kronqvist <joel.h.kronqvist@gmail.com> | 2022-03-05 19:02:27 +0200 | 
| commit | 5d309ff52cd399a6b71968a6b9a70c8ac0b98981 (patch) | |
| tree | 360f7eb50f956e2367ef38fa1fc6ac7ac5258042 /node_modules/@babel/code-frame/lib | |
| parent | b500a50f1b97d93c98b36ed9a980f8188d648147 (diff) | |
| download | LYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.tar.gz LYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.zip  | |
Added node_modules for the updating to work properly.
Diffstat (limited to 'node_modules/@babel/code-frame/lib')
| -rw-r--r-- | node_modules/@babel/code-frame/lib/index.js | 163 | 
1 files changed, 163 insertions, 0 deletions
diff --git a/node_modules/@babel/code-frame/lib/index.js b/node_modules/@babel/code-frame/lib/index.js new file mode 100644 index 0000000..cba3f83 --- /dev/null +++ b/node_modules/@babel/code-frame/lib/index.js @@ -0,0 +1,163 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.codeFrameColumns = codeFrameColumns; +exports.default = _default; + +var _highlight = require("@babel/highlight"); + +let deprecationWarningShown = false; + +function getDefs(chalk) { +  return { +    gutter: chalk.grey, +    marker: chalk.red.bold, +    message: chalk.red.bold +  }; +} + +const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; + +function getMarkerLines(loc, source, opts) { +  const startLoc = Object.assign({ +    column: 0, +    line: -1 +  }, loc.start); +  const endLoc = Object.assign({}, startLoc, loc.end); +  const { +    linesAbove = 2, +    linesBelow = 3 +  } = opts || {}; +  const startLine = startLoc.line; +  const startColumn = startLoc.column; +  const endLine = endLoc.line; +  const endColumn = endLoc.column; +  let start = Math.max(startLine - (linesAbove + 1), 0); +  let end = Math.min(source.length, endLine + linesBelow); + +  if (startLine === -1) { +    start = 0; +  } + +  if (endLine === -1) { +    end = source.length; +  } + +  const lineDiff = endLine - startLine; +  const markerLines = {}; + +  if (lineDiff) { +    for (let i = 0; i <= lineDiff; i++) { +      const lineNumber = i + startLine; + +      if (!startColumn) { +        markerLines[lineNumber] = true; +      } else if (i === 0) { +        const sourceLength = source[lineNumber - 1].length; +        markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; +      } else if (i === lineDiff) { +        markerLines[lineNumber] = [0, endColumn]; +      } else { +        const sourceLength = source[lineNumber - i].length; +        markerLines[lineNumber] = [0, sourceLength]; +      } +    } +  } else { +    if (startColumn === endColumn) { +      if (startColumn) { +        markerLines[startLine] = [startColumn, 0]; +      } else { +        markerLines[startLine] = true; +      } +    } else { +      markerLines[startLine] = [startColumn, endColumn - startColumn]; +    } +  } + +  return { +    start, +    end, +    markerLines +  }; +} + +function codeFrameColumns(rawLines, loc, opts = {}) { +  const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); +  const chalk = (0, _highlight.getChalk)(opts); +  const defs = getDefs(chalk); + +  const maybeHighlight = (chalkFn, string) => { +    return highlighted ? chalkFn(string) : string; +  }; + +  const lines = rawLines.split(NEWLINE); +  const { +    start, +    end, +    markerLines +  } = getMarkerLines(loc, lines, opts); +  const hasColumns = loc.start && typeof loc.start.column === "number"; +  const numberMaxWidth = String(end).length; +  const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; +  let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => { +    const number = start + 1 + index; +    const paddedNumber = ` ${number}`.slice(-numberMaxWidth); +    const gutter = ` ${paddedNumber} |`; +    const hasMarker = markerLines[number]; +    const lastMarkerLine = !markerLines[number + 1]; + +    if (hasMarker) { +      let markerLine = ""; + +      if (Array.isArray(hasMarker)) { +        const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); +        const numberOfMarkers = hasMarker[1] || 1; +        markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); + +        if (lastMarkerLine && opts.message) { +          markerLine += " " + maybeHighlight(defs.message, opts.message); +        } +      } + +      return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); +    } else { +      return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`; +    } +  }).join("\n"); + +  if (opts.message && !hasColumns) { +    frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; +  } + +  if (highlighted) { +    return chalk.reset(frame); +  } else { +    return frame; +  } +} + +function _default(rawLines, lineNumber, colNumber, opts = {}) { +  if (!deprecationWarningShown) { +    deprecationWarningShown = true; +    const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; + +    if (process.emitWarning) { +      process.emitWarning(message, "DeprecationWarning"); +    } else { +      const deprecationError = new Error(message); +      deprecationError.name = "DeprecationWarning"; +      console.warn(new Error(message)); +    } +  } + +  colNumber = Math.max(colNumber, 0); +  const location = { +    start: { +      column: colNumber, +      line: lineNumber +    } +  }; +  return codeFrameColumns(rawLines, location, opts); +}
\ No newline at end of file  | 
