fix: remaining starred-project issues, plus better Error logging and user verbiage
This commit is contained in:
@@ -24,10 +24,28 @@ export function getMemoryLogs(): string[] {
|
||||
return [..._memoryLogs];
|
||||
}
|
||||
|
||||
/**
|
||||
* Stringify an object with proper handling of circular references and functions
|
||||
*
|
||||
* Don't use for arrays; map with this over the array.
|
||||
*
|
||||
* @param obj - The object to stringify
|
||||
* @returns The stringified object, plus 'message' and 'stack' for Error objects
|
||||
*/
|
||||
export function safeStringify(obj: unknown) {
|
||||
const seen = new WeakSet();
|
||||
|
||||
return JSON.stringify(obj, (_key, value) => {
|
||||
// since 'message' & 'stack' are not enumerable for errors, let's add those
|
||||
let objToStringify = obj;
|
||||
if (obj instanceof Error) {
|
||||
objToStringify = {
|
||||
...obj,
|
||||
message: obj.message,
|
||||
stack: obj.stack,
|
||||
};
|
||||
}
|
||||
|
||||
return JSON.stringify(objToStringify, (_key, value) => {
|
||||
if (typeof value === "object" && value !== null) {
|
||||
if (seen.has(value)) {
|
||||
return "[Circular]";
|
||||
@@ -178,7 +196,8 @@ export const logger = {
|
||||
}
|
||||
|
||||
// Database logging
|
||||
const argsString = args.length > 0 ? " - " + safeStringify(args) : "";
|
||||
const argsString =
|
||||
args.length > 0 ? " - " + args.map(safeStringify).join(", ") : "";
|
||||
logToDatabase(message + argsString, "info");
|
||||
},
|
||||
|
||||
@@ -189,7 +208,8 @@ export const logger = {
|
||||
}
|
||||
|
||||
// Database logging
|
||||
const argsString = args.length > 0 ? " - " + safeStringify(args) : "";
|
||||
const argsString =
|
||||
args.length > 0 ? " - " + args.map(safeStringify).join(", ") : "";
|
||||
logToDatabase(message + argsString, "info");
|
||||
},
|
||||
|
||||
@@ -200,7 +220,8 @@ export const logger = {
|
||||
}
|
||||
|
||||
// Database logging
|
||||
const argsString = args.length > 0 ? " - " + safeStringify(args) : "";
|
||||
const argsString =
|
||||
args.length > 0 ? " - " + args.map(safeStringify).join(", ") : "";
|
||||
logToDatabase(message + argsString, "warn");
|
||||
},
|
||||
|
||||
@@ -211,9 +232,9 @@ export const logger = {
|
||||
}
|
||||
|
||||
// Database logging
|
||||
const messageString = safeStringify(message);
|
||||
const argsString = args.length > 0 ? safeStringify(args) : "";
|
||||
logToDatabase(messageString + argsString, "error");
|
||||
const argsString =
|
||||
args.length > 0 ? " - " + args.map(safeStringify).join(", ") : "";
|
||||
logToDatabase(message + argsString, "error");
|
||||
},
|
||||
|
||||
// New database-focused methods (self-contained)
|
||||
|
||||
Reference in New Issue
Block a user