UNPKG

@fastly/as-fetch

Version:

![npm version](https://img.shields.io/npm/v/@fastly/as-fetch) ![npm downloads per month](https://img.shields.io/npm/dm/@fastly/as-fetch)

230 lines (221 loc) 4.43 kB
// Copyright 2020 Fastly, Inc. /** * An HTTP Status object. */ export class Status { /** * Status code for the HTTP request or response. */ code: u16; /** * Construct a new status instance. * * @param code an unsigned 16 bit integer representing the HTTP Status code. */ constructor(code: u16) { this.code = code; } /** * Get the text associated with the status code. * * Status text(s) come from: * https://developer.mozilla.org/en-US/docs/Web/HTTP/Status * * @returns a string containing the text for the Response status code. */ toString(): string { switch (this.code) { /* 1XX */ case 100: { return "Continue"; } case 101: { return "Switching Protocol"; } case 102: { return "Processing"; } case 103: { return "Early Hints"; } /* 2XX */ case 200: { return "OK"; } case 201: { return "Created"; } case 203: { return "Non-Authoritative Information"; } case 204: { return "No Content"; } case 205: { return "Reset Content"; } case 206: { return "Partial Content"; } case 207: { return "Multi-Status"; } case 208: { return "Already Reported"; } case 226: { return "IM Used"; } /* 3XX */ case 300: { return "Multiple Choice"; } case 301: { return "Moved Permenantly"; } case 302: { return "Found"; } case 303: { return "See Other"; } case 304: { return "Not Modified"; } case 305: { return "Use Proxy"; } case 306: { return "Unused"; } case 307: { return "Temporary Redirect"; } case 308: { return "Permanent Redirect"; } /* 4XX */ case 400: { return "Bad Request"; } case 401: { return "Unauthorized"; } case 402: { return "Payment Required"; } case 403: { return "Forbidden"; } case 404: { return "Not Found"; } case 405: { return "Method Not Allowed"; } case 406: { return "Not Acceptable"; } case 408: { return "Request Timeout"; } case 409: { return "Conflict"; } case 410: { return "Gone"; } case 411: { return "Length Required"; } case 412: { return "Precondition Failed"; } case 413: { return "Payload Too Large"; } case 414: { return "URI Too Long"; } case 415: { return "Unsupported Media Type"; } case 416: { return "Range Not Satisfiable"; } case 417: { return "Expectation Failed"; } case 418: { return "Im a Teapot"; } case 421: { return "Misdirected Request"; } case 422: { return "Unprocessable Entity"; } case 423: { return "Locked"; } case 424: { return "Failed Dependency"; } case 425: { return "Too Early"; } case 426: { return "Upgrade Required"; } case 428: { return "Precondition Required"; } case 429: { return "Too Many Requests"; } case 431: { return "Request Header Fields Too Large"; } case 451: { return "Unavailable For Legal Reasons"; } /* 5XX */ case 500: { return "Internal Server Error"; } case 501: { return "Not Implemented"; } case 502: { return "Bad Gateway"; } case 503: { return "Service Unavailable"; } case 504: { return "Gateway Timeout"; } case 505: { return "HTTP Version Not Supported"; } case 506: { return "Variant Also Negotiates"; } case 507: { return "Insufficient Storage"; } case 508: { return "Loop Detected"; } case 510: { return "Not Extended"; } case 511: { return "Network Authentication Required"; } default: { return ""; } } } }