txtdot/src/errors/main.ts

56 lines
1.3 KiB
TypeScript
Raw Normal View History

import getConfig from '../config/main';
2023-09-21 15:32:08 +03:00
export abstract class TxtDotError extends Error {
2023-08-21 17:35:25 +03:00
code: number;
name: string;
2023-08-21 17:35:25 +03:00
description: string;
constructor(code: number, name: string, description: string) {
2023-08-21 17:35:25 +03:00
super(description);
this.code = code;
this.name = name;
2023-08-21 17:35:25 +03:00
this.description = description;
}
}
export class EngineParseError extends TxtDotError {
constructor(message: string) {
super(422, 'EngineParseError', `Parse error: ${message}`);
2023-08-21 17:35:25 +03:00
}
}
export class NoHandlerFoundError extends TxtDotError {
constructor(message: string) {
super(404, 'NoHandlerFoundError', `No handler found for: ${message}`);
}
}
2023-08-21 17:35:25 +03:00
export class LocalResourceError extends TxtDotError {
constructor() {
super(403, 'LocalResourceError', 'Proxying local resources is forbidden.');
2023-08-21 17:35:25 +03:00
}
}
2023-08-21 16:03:28 +03:00
2024-03-07 14:49:54 +03:00
export class UnsupportedMimetypeError extends TxtDotError {
constructor(expected: string, got?: string) {
super(
415,
'UnsupportedMimetypeError',
`Unsupported mimetype, expected ${expected}, got ${got}`
);
}
}
2023-09-21 12:18:12 +03:00
export class NotHtmlMimetypeError extends TxtDotError {
constructor() {
super(
421,
'NotHtmlMimetypeError',
'Received non-HTML content, ' +
2024-03-07 14:49:54 +03:00
(getConfig().proxy.enabled
? 'use proxy instead of parser.'
: 'proxying is disabled by the instance admin.')
2023-09-21 12:18:12 +03:00
);
2023-08-16 13:20:24 +03:00
}
}