UNPKG

@cldn/web-ts

Version:
37 lines 2.93 kB
import { TextResponse } from "./response/TextResponse.js"; /** * A registry for server errors. */ class ServerErrorRegistry { responses; /** * Create a new server error registry initialised with default responses. */ constructor() { this.responses = { [0 /* ServerErrorRegistry.ErrorCodes.BAD_URL */]: new TextResponse("Invalid request URL.", 400), [1 /* ServerErrorRegistry.ErrorCodes.NO_ROUTE */]: new TextResponse("No route matched the request.", 404), [2 /* ServerErrorRegistry.ErrorCodes.INTERNAL */]: new TextResponse("An unexpected internal server error occurred.", 500), [3 /* ServerErrorRegistry.ErrorCodes.PRECONDITION_FAILED */]: new TextResponse("One or more preconditions were not met.", 412), [4 /* ServerErrorRegistry.ErrorCodes.NO_PERMISSION */]: new TextResponse("You do not have the necessary permissions to perform this action.", 403), [5 /* ServerErrorRegistry.ErrorCodes.UNAUTHORISED */]: new TextResponse("Authentication information was either absent or invalid.", 401), }; } /** * Replace server error response by registering a new custom response. * @param code The server error code. * @param response The response to send. */ register(code, response) { this.responses[code] = response; } /** @internal */ _get(code, req) { const r = this.responses[code]; if (typeof r === "function") return r(req ?? void 0); return r; } } export { ServerErrorRegistry }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVyRXJyb3JSZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TZXJ2ZXJFcnJvclJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV4RDs7R0FFRztBQUNILE1BQU0sbUJBQW1CO0lBQ0osU0FBUyxDQUE0RjtJQUV0SDs7T0FFRztJQUNIO1FBQ0ksSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNiLGdEQUF3QyxFQUNwQyxJQUFJLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUM7WUFFakQsaURBQXlDLEVBQ3JDLElBQUksWUFBWSxDQUFDLCtCQUErQixFQUFFLEdBQUcsQ0FBQztZQUUxRCxpREFBeUMsRUFDckMsSUFBSSxZQUFZLENBQUMsK0NBQStDLEVBQUUsR0FBRyxDQUFDO1lBRTFFLDREQUFvRCxFQUNoRCxJQUFJLFlBQVksQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLENBQUM7WUFFcEUsc0RBQThDLEVBQzFDLElBQUksWUFBWSxDQUFDLG1FQUFtRSxFQUFFLEdBQUcsQ0FBQztZQUU5RixxREFBNkMsRUFDekMsSUFBSSxZQUFZLENBQUMsMERBQTBELEVBQUUsR0FBRyxDQUFDO1NBQ3hGLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxJQUFvQyxFQUFFLFFBQTJEO1FBQzdHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnQkFBZ0I7SUFDVCxJQUFJLENBQUMsSUFBb0MsRUFBRSxHQUFzQjtRQUNwRSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksT0FBTyxDQUFDLEtBQUssVUFBVTtZQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztDQUNKO0FBZ0JELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxDQUFDIn0=