44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import { Extensible } from "./interfaces.ts";
|
|
|
|
export type HttpCode = {
|
|
code: number;
|
|
name: string;
|
|
description?: string;
|
|
};
|
|
type Group = "success" | "redirection" | "clientErrors" | "serverErrors";
|
|
type CodeDefinitions = {
|
|
[K in Group]: {
|
|
[K: string]: HttpCode;
|
|
};
|
|
};
|
|
// FIXME: Figure out how to brand CodeDefinitions in a way that isn't
|
|
// tedious.
|
|
|
|
const httpCodes: CodeDefinitions = {
|
|
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 };
|