generated from nhcarrigan/template
1195b657a0
Working through open issues — fixes, balance changes, and features. ## Closed - Closes #161 - Closes #181 - Closes #191 - Closes #199 - Closes #201 - Closes #202 - Closes #203 - Closes #204 - Closes #205 - Closes #206 - Closes #208 - Closes #211 - Closes #212 - Closes #213 - Closes #214 - Closes #216 - Closes #219 - Closes #220 - Closes #221 - Closes #222 - Closes #224 - Closes #225 - Closes #226 - Closes #228 - Closes #229 - Closes #230 - Closes #231 - Closes #232 - Closes #233 - Closes #234 - Closes #235 - Closes #236 ✨ This PR was created with help from Hikari~ 🌸 Reviewed-on: #238 Co-authored-by: Hikari <hikari@nhcarrigan.com> Co-committed-by: Hikari <hikari@nhcarrigan.com>
28 lines
972 B
TypeScript
28 lines
972 B
TypeScript
/**
|
|
* @file Frontend error logging utility that forwards errors to the backend telemetry service.
|
|
* @copyright nhcarrigan
|
|
* @license Naomi's Public License
|
|
* @author Naomi Carrigan
|
|
*/
|
|
/* eslint-disable no-console -- Errors are forwarded to backend via the overridden console.error */
|
|
import { ValidationError } from "../api/client.js";
|
|
|
|
/**
|
|
* Logs an error to the backend telemetry service.
|
|
* ValidationErrors (4xx API rejections) are downgraded to console.warn so they
|
|
* are not forwarded to the error-email pipeline — they are expected server responses.
|
|
* @param logArguments - The values to log, forwarded directly to console.error or console.warn.
|
|
*/
|
|
const logError = (...logArguments: Array<unknown>): void => {
|
|
const isValidation = logArguments.some((argument) => {
|
|
return argument instanceof ValidationError;
|
|
});
|
|
if (isValidation) {
|
|
console.warn(...logArguments);
|
|
return;
|
|
}
|
|
console.error(...logArguments);
|
|
};
|
|
|
|
export { logError };
|