import { Extensible } from "./interfaces"; type HttpCode = { code: number; name: string; description?: string; }; type Group = "success" | "redirection" | "clientErrors" | "serverErrors"; type CodeDefinitions = { [K in Group]: { [K: string]: HttpCode; }; }; const httpCodes: CodeDefinitions & Extensible = { success: { OK: { code: 200, name: "OK", "description": "" }, Created: { code: 201, name: "Created" }, Accepted: { code: 202, name: "Accepted" }, NoContent: { code: 204, name: "No content" }, }, redirection: { // later }, clientErrors: { BadRequest: { code: 400, name: "Bad Request" }, Unauthorized: { code: 401, name: "Unauthorized" }, Forbidden: { code: 403, name: "Forbidden" }, NotFound: { code: 404, name: "Not Found" }, MethodNotAllowed: { code: 405, name: "Method Not Allowed" }, NotAcceptable: { code: 406, name: "Not Acceptable" }, // More later }, serverErrors: { InternalServerError: { code: 500, name: "Internal Server Error" }, NotImplemented: { code: 500, name: "Not implemented" }, // more later }, }; export { httpCodes };