mirror of
https://github.com/nicotsx/zerobyte.git
synced 2026-04-18 05:47:31 -04:00
29 lines
962 B
TypeScript
29 lines
962 B
TypeScript
import { HttpError } from "http-errors-enhanced";
|
|
import { sanitizeSensitiveData } from "@zerobyte/core/node";
|
|
import { ResticError } from "@zerobyte/core/restic";
|
|
import { toErrorDetails as getErrorDetails, toMessage as getMessage } from "@zerobyte/core/utils";
|
|
|
|
export const handleServiceError = (error: unknown) => {
|
|
if (error instanceof HttpError) {
|
|
return { message: sanitizeSensitiveData(error.message), status: error.statusCode };
|
|
}
|
|
|
|
if (error instanceof ResticError) {
|
|
return {
|
|
message: sanitizeSensitiveData(error.summary),
|
|
details: error.details ? sanitizeSensitiveData(error.details) : undefined,
|
|
status: 500 as const,
|
|
};
|
|
}
|
|
|
|
return { message: sanitizeSensitiveData(toMessage(error)), status: 500 as const };
|
|
};
|
|
|
|
export const toMessage = (err: unknown): string => {
|
|
return sanitizeSensitiveData(getMessage(err));
|
|
};
|
|
|
|
export const toErrorDetails = (err: unknown): string => {
|
|
return sanitizeSensitiveData(getErrorDetails(err));
|
|
};
|