Oberflaeche, Fehlermeldungen und Kommentare schrieben durchgehend ae, oe, ue und ss. Dafuer gab es keinen Grund - die Anwendung ist deutschsprachig und laeuft durchgehend in UTF-8. Betroffen waren 55 Dateien, darunter alle sichtbaren Texte: Guthaben-Zaehler, Import, Nutzerverwaltung, Passwortwechsel und die Zwei-Faktor-Einrichtung. Der Name einer Migration bleibt im README-Beispiel bewusst bei ASCII, weil daraus ein Verzeichnisname wird.
19 lines
713 B
TypeScript
19 lines
713 B
TypeScript
export class AppError extends Error {
|
|
constructor(
|
|
readonly statusCode: number,
|
|
readonly code: string,
|
|
message: string,
|
|
) {
|
|
super(message);
|
|
this.name = 'AppError';
|
|
}
|
|
}
|
|
|
|
export const badRequest = (code: string, message: string) => new AppError(400, code, message);
|
|
export const unauthorized = (message = 'Nicht angemeldet') =>
|
|
new AppError(401, 'UNAUTHORIZED', message);
|
|
export const forbidden = (message = 'Keine Berechtigung für diese Aktion') =>
|
|
new AppError(403, 'FORBIDDEN', message);
|
|
export const notFound = (what: string) => new AppError(404, 'NOT_FOUND', `${what} nicht gefunden`);
|
|
export const conflict = (code: string, message: string) => new AppError(409, code, message);
|