UNPKG

@blackglory/http-status

Version:
75 lines 4.32 kB
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