bpms_site/.svn/pristine/1f/1faa38ab70ca21a5af5c8d84bedc248ea6336362.svn-base
2025-11-02 16:38:49 +03:30

58 lines
1.5 KiB
Plaintext

import { parse } from "next/dist/compiled/stacktrace-parser";
export function getFilesystemFrame(frame) {
const f = {
...frame
};
if (typeof f.file === "string") {
if (// Posix:
f.file.startsWith("/") || // Win32:
/^[a-z]:\\/i.test(f.file) || // Win32 UNC:
f.file.startsWith("\\\\")) {
f.file = "file://" + f.file;
}
}
return f;
}
const symbolError = Symbol("NextjsError");
export function getErrorSource(error) {
return error[symbolError] || null;
}
export function decorateServerError(error, type) {
Object.defineProperty(error, symbolError, {
writable: false,
enumerable: false,
configurable: false,
value: type
});
}
export function getServerError(error, type) {
let n;
try {
throw new Error(error.message);
} catch (e) {
n = e;
}
n.name = error.name;
try {
n.stack = n.toString() + "\n" + parse(error.stack).map(getFilesystemFrame).map((f)=>{
let str = " at " + f.methodName;
if (f.file) {
let loc = f.file;
if (f.lineNumber) {
loc += ":" + f.lineNumber;
if (f.column) {
loc += ":" + f.column;
}
}
str += " (" + loc + ")";
}
return str;
}).join("\n");
} catch (e) {
n.stack = error.stack;
}
decorateServerError(n, type);
return n;
}
//# sourceMappingURL=nodeStackFrames.js.map