UNPKG

vike

Version:

The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.

40 lines (39 loc) 1.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createErrorWithCleanStackTrace = createErrorWithCleanStackTrace; const isNodeJS_js_1 = require("./isNodeJS.js"); function createErrorWithCleanStackTrace(errorMessage, numberOfStackTraceLinesToRemove) { const err = new Error(errorMessage); if ((0, isNodeJS_js_1.isNodeJS)()) { err.stack = clean(err.stack, numberOfStackTraceLinesToRemove); } return err; } function clean(errStack, numberOfStackTraceLinesToRemove) { if (!errStack) { return errStack; } const stackLines = splitByLine(errStack); let linesRemoved = 0; const stackLine__cleaned = stackLines .filter((line) => { // Remove internal stack traces if (line.includes(' (internal/') || line.includes(' (node:internal')) { return false; } if (linesRemoved < numberOfStackTraceLinesToRemove && isStackTraceLine(line)) { linesRemoved++; return false; } return true; }) .join('\n'); return stackLine__cleaned; } function isStackTraceLine(line) { return line.startsWith(' at '); } function splitByLine(str) { // https://stackoverflow.com/questions/21895233/how-in-node-to-split-string-by-newline-n return str.split(/\r?\n/); }