release: WRNexusJS 0.2.75
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import type {
|
||||
DevToolbarCategory,
|
||||
DevToolbarIssue,
|
||||
DevToolbarSeverity,
|
||||
DevToolbarSourceLocation,
|
||||
} from "../types.ts";
|
||||
|
||||
export function createServerIssue(input: {
|
||||
ruleId: string;
|
||||
category: DevToolbarCategory;
|
||||
severity: DevToolbarSeverity;
|
||||
title: string;
|
||||
message: string;
|
||||
pathname?: string;
|
||||
source?: DevToolbarSourceLocation;
|
||||
stack?: string;
|
||||
recommendation?: string;
|
||||
}): DevToolbarIssue {
|
||||
const sourceKey = input.source?.file
|
||||
? `${input.source.file}:${input.source.line ?? 0}:${input.source.column ?? 0}`
|
||||
: "";
|
||||
return {
|
||||
id: `wrn-server-${Date.now()}-${Math.random().toString(36).slice(2)}`,
|
||||
ruleId: input.ruleId,
|
||||
category: input.category,
|
||||
severity: input.severity,
|
||||
title: input.title,
|
||||
message: input.message,
|
||||
source: input.source,
|
||||
recommendation: input.recommendation,
|
||||
fingerprint: [input.ruleId, input.pathname ?? "", sourceKey, input.message].join("|"),
|
||||
createdAt: Date.now(),
|
||||
confidence: "high",
|
||||
metadata: { pathname: input.pathname, stack: input.stack },
|
||||
};
|
||||
}
|
||||
|
||||
export function issueFromError(
|
||||
error: unknown,
|
||||
input: {
|
||||
ruleId?: string;
|
||||
category?: DevToolbarCategory;
|
||||
title?: string;
|
||||
pathname?: string;
|
||||
source?: DevToolbarSourceLocation;
|
||||
} = {},
|
||||
): DevToolbarIssue {
|
||||
const normalized = error instanceof Error ? error : new Error(String(error));
|
||||
return createServerIssue({
|
||||
ruleId: input.ruleId ?? "server/unhandled-error",
|
||||
category: input.category ?? "server",
|
||||
severity: "error",
|
||||
title: input.title ?? normalized.name ?? "Server error",
|
||||
message: normalized.message,
|
||||
pathname: input.pathname,
|
||||
source: input.source,
|
||||
stack: normalized.stack,
|
||||
recommendation: "Inspect the stack trace and open the referenced source file.",
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user