@blackglory/http-status
Version:
A class-based HTTP status library
75 lines • 4.32 kB
JavaScript
import * as Informational from './http-informational.js';
import * as Successful from './http-successful.js';
import * as Redirection from './http-redirection.js';
import * as ClientError from './http-client-error.js';
import * as ServerError from './http-server-error.js';
export class UnknownHTTPStatusError extends Error {
constructor(code) {
super(`The HTTP status code ${code} is unknown`);
this.name = this.constructor.name;
}
}
export function fromCode(code, message) {
switch (code) {
case 100: return new Informational.Continue();
case 101: return new Informational.SwitchingProtocol();
case 102: return new Informational.Processing();
case 103: return new Informational.EarlyHints();
case 200: return new Successful.OK();
case 201: return new Successful.Created();
case 202: return new Successful.Accepted();
case 203: return new Successful.NonAuthoritativeInformation();
case 204: return new Successful.NoContent();
case 205: return new Successful.ResetContent();
case 206: return new Successful.PartialContent();
case 207: return new Successful.MultiStatus();
case 208: return new Successful.AlreadyReported();
case 226: return new Successful.IMUsed();
case 300: return new Redirection.MultipleChoice();
case 301: return new Redirection.MovedPermanently();
case 302: return new Redirection.Found();
case 303: return new Redirection.SeeOther();
case 304: return new Redirection.NotModified();
case 307: return new Redirection.TemporaryRedirect();
case 308: return new Redirection.PermanentRedirect();
case 400: return new ClientError.BadRequest(message);
case 401: return new ClientError.Unauthorized(message);
case 403: return new ClientError.Forbidden(message);
case 404: return new ClientError.NotFound(message);
case 405: return new ClientError.MethodNotAllowed(message);
case 406: return new ClientError.NotAcceptable(message);
case 407: return new ClientError.ProxyAuthenticationRequired(message);
case 408: return new ClientError.RequestTimeout(message);
case 409: return new ClientError.Conflict(message);
case 410: return new ClientError.Gone(message);
case 411: return new ClientError.LengthRequired(message);
case 412: return new ClientError.PreconditionFailed(message);
case 413: return new ClientError.PayloadTooLarge(message);
case 414: return new ClientError.URITooLong(message);
case 415: return new ClientError.UnsupportedMediaType(message);
case 416: return new ClientError.RangeNotSatisfiable(message);
case 417: return new ClientError.ExpectationFailed(message);
case 421: return new ClientError.MisdirectedRequest(message);
case 422: return new ClientError.UnprocessableEntity(message);
case 423: return new ClientError.Locked(message);
case 424: return new ClientError.FailedDependency(message);
case 426: return new ClientError.UpgradeRequired(message);
case 428: return new ClientError.PreconditionRequired(message);
case 429: return new ClientError.TooManyRequests(message);
case 431: return new ClientError.RequestHeaderFieldsTooLarge(message);
case 451: return new ClientError.UnavailableForLegalReasons(message);
case 500: return new ServerError.InternalServerError(message);
case 501: return new ServerError.NotImplemented(message);
case 502: return new ServerError.BadGateway(message);
case 503: return new ServerError.ServiceUnavailable(message);
case 504: return new ServerError.GatewayTimeout(message);
case 505: return new ServerError.HTTPVersionNotSupported(message);
case 506: return new ServerError.VariantAlsoNegotiates(message);
case 507: return new ServerError.InsufficientStorage(message);
case 508: return new ServerError.LoopDetected(message);
case 510: return new ServerError.NotExtended(message);
case 511: return new ServerError.NetworkAuthenticationRequired(message);
default: throw new UnknownHTTPStatusError(code);
}
}
//# sourceMappingURL=utils.js.map