first commit
This commit is contained in:
110
build/node_modules/github/lib/error.js
generated
vendored
Normal file
110
build/node_modules/github/lib/error.js
generated
vendored
Normal file
@@ -0,0 +1,110 @@
|
||||
/** section: github
|
||||
* class HttpError
|
||||
*
|
||||
* Copyright 2012 Cloud9 IDE, Inc.
|
||||
*
|
||||
* This product includes software developed by
|
||||
* Cloud9 IDE, Inc (http://c9.io).
|
||||
*
|
||||
* Author: Mike de Boer <mike@c9.io>
|
||||
**/
|
||||
|
||||
var Util = require('util')
|
||||
|
||||
exports.HttpError = function (message, code, headers) {
|
||||
Error.call(this, message)
|
||||
this.message = message
|
||||
this.code = code
|
||||
this.status = statusCodes[code]
|
||||
this.headers = headers
|
||||
}
|
||||
Util.inherits(exports.HttpError, Error);
|
||||
|
||||
(function () {
|
||||
/**
|
||||
* HttpError#toString() -> String
|
||||
*
|
||||
* Returns the stringified version of the error (i.e. the message).
|
||||
**/
|
||||
this.toString = function () {
|
||||
return this.message
|
||||
}
|
||||
|
||||
/**
|
||||
* HttpError#toJSON() -> Object
|
||||
*
|
||||
* Returns a JSON object representation of the error.
|
||||
**/
|
||||
this.toJSON = function () {
|
||||
return {
|
||||
code: this.code,
|
||||
status: this.status,
|
||||
message: this.message
|
||||
}
|
||||
}
|
||||
}).call(exports.HttpError.prototype)
|
||||
|
||||
var statusCodes = {
|
||||
400: 'Bad Request',
|
||||
401: 'Unauthorized',
|
||||
402: 'Payment Required',
|
||||
403: 'Forbidden',
|
||||
404: 'Not Found',
|
||||
405: 'Method Not Allowed',
|
||||
406: 'Not Acceptable',
|
||||
407: 'Proxy Authentication Required',
|
||||
408: 'Request Timeout',
|
||||
409: 'Conflict',
|
||||
410: 'Gone',
|
||||
411: 'Length Required',
|
||||
412: 'Precondition Failed',
|
||||
413: 'Request Entity Too Large',
|
||||
414: 'Request-URI Too Long',
|
||||
415: 'Unsupported Media Type',
|
||||
416: 'Requested Range Not Satisfiable',
|
||||
417: 'Expectation Failed',
|
||||
420: 'Enhance Your Calm',
|
||||
422: 'Unprocessable Entity',
|
||||
423: 'Locked',
|
||||
424: 'Failed Dependency',
|
||||
425: 'Unordered Collection',
|
||||
426: 'Upgrade Required',
|
||||
428: 'Precondition Required',
|
||||
429: 'Too Many Requests',
|
||||
431: 'Request Header Fields Too Large',
|
||||
444: 'No Response',
|
||||
449: 'Retry With',
|
||||
499: 'Client Closed Request',
|
||||
500: 'Internal Server Error',
|
||||
501: 'Not Implemented',
|
||||
502: 'Bad Gateway',
|
||||
503: 'Service Unavailable',
|
||||
504: 'Gateway Timeout',
|
||||
505: 'HTTP Version Not Supported',
|
||||
506: 'Variant Also Negotiates',
|
||||
507: 'Insufficient Storage',
|
||||
508: 'Loop Detected',
|
||||
509: 'Bandwidth Limit Exceeded',
|
||||
510: 'Not Extended',
|
||||
511: 'Network Authentication Required'
|
||||
}
|
||||
|
||||
// XXX: Remove?
|
||||
for (var status in statusCodes) {
|
||||
var defaultMsg = statusCodes[status]
|
||||
|
||||
var error = (function (defaultMsg, status) {
|
||||
return function (msg) {
|
||||
this.defaultMessage = defaultMsg
|
||||
exports.HttpError.call(this, msg, status)
|
||||
|
||||
if (status >= 500) { Error.captureStackTrace(this, arguments.callee) } // eslint-disable-line
|
||||
}
|
||||
})(defaultMsg, status)
|
||||
|
||||
Util.inherits(error, exports.HttpError)
|
||||
|
||||
var className = defaultMsg.replace(/\s/g, '')
|
||||
exports[className] = error
|
||||
exports[status] = error
|
||||
}
|
||||
Reference in New Issue
Block a user