UNPKG

iptv-checker

Version:

Node.js CLI tool for checking links in IPTV playlists

66 lines (63 loc) 2.14 kB
const codes = { 400: 'HTTP_BAD_REQUEST', 401: 'HTTP_UNAUTHORIZED', 402: 'HTTP_PAYMENT_REQUIRED', 403: 'HTTP_FORBIDDEN', 404: 'HTTP_NOT_FOUND', 405: 'HTTP_METHOD_NOT_ALLOWED', 406: 'HTTP_NOT_ACCEPTABLE', 407: 'HTTP_PROXY_AUTHENTICATION_REQUIRED', 408: 'HTTP_REQUEST_TIMEOUT', 409: 'HTTP_CONFLICT', 410: 'HTTP_GONE', 411: 'HTTP_LENGTH_REQUIRED', 412: 'HTTP_PRECONDITION_FAILED', 413: 'HTTP_REQUEST_TOO_LONG', 414: 'HTTP_REQUEST_URI_TOO_LONG', 415: 'HTTP_UNSUPPORTED_MEDIA_TYPE', 416: 'HTTP_REQUESTED_RANGE_NOT_SATISFIABLE', 417: 'HTTP_EXPECTATION_FAILED', 418: 'HTTP_IM_A_TEAPOT', 419: 'HTTP_INSUFFICIENT_SPACE_ON_RESOURCE', 420: 'HTTP_METHOD_FAILURE', 421: 'HTTP_MISDIRECTED_REQUEST', 422: 'HTTP_UNPROCESSABLE_ENTITY', 423: 'HTTP_LOCKED', 424: 'HTTP_FAILED_DEPENDENCY', 428: 'HTTP_PRECONDITION_REQUIRED', 429: 'HTTP_TOO_MANY_REQUESTS', 431: 'HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE', 451: 'HTTP_UNAVAILABLE_FOR_LEGAL_REASONS', 500: 'HTTP_INTERNAL_SERVER_ERROR', 501: 'HTTP_NOT_IMPLEMENTED', 502: 'HTTP_BAD_GATEWAY', 503: 'HTTP_SERVICE_UNAVAILABLE', 504: 'HTTP_GATEWAY_TIMEOUT', 505: 'HTTP_HTTP_VERSION_NOT_SUPPORTED', 507: 'HTTP_INSUFFICIENT_STORAGE', 511: 'HTTP_NETWORK_AUTHENTICATION_REQUIRED' } export class HttpErrorParser { parse(err) { if (err.response) { return codes[err.response.status] } else if (err.message && err.message.startsWith('timeout')) { return 'HTTP_REQUEST_TIMEOUT' } else if (err.message && err.message.includes('ECONNREFUSED')) { return 'HTTP_INTERNAL_SERVER_ERROR' } else if (err.message && err.message.startsWith('maxContentLength')) { return 'HTTP_MAX_CONTENT_LENGTH_EXCEEDED' } else if (err.code === 'EPROTO') { return 'HTTP_PROTOCOL_ERROR' } else if (err.code === 'ENETUNREACH') { return 'HTTP_NETWORK_UNREACHABLE' } else if (err.code === 'ENOTFOUND') { return 'HTTP_NOT_FOUND' } else if (err.code === 'ECONNRESET') { return 'HTTP_ECONNRESET' } else if (err.code.startsWith('HPE')) { return 'HTTP_PARSE_ERROR' } return 'HTTP_UNDEFINED' } }