dotfiles/.vscode/extensions/codezombiech.gitignore-0.2.0/node_modules/github/error.js
Cyryl Płotnicki 280bcab25f VSCode update
2016-09-24 13:12:34 +02:00

117 lines
3 KiB
JavaScript

/** 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) {
Error.call(this, message);
//Error.captureStackTrace(this, arguments.callee);
this.message = message;
this.code = code;
};
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.defaultMessage,
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"
};
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 + ": " + defaultMsg, status);
if (status >= 500)
Error.captureStackTrace(this, arguments.callee);
};
})(defaultMsg, status);
Util.inherits(error, exports.HttpError);
var className = toCamelCase(defaultMsg);
exports[className] = error;
exports[status] = error;
}
function toCamelCase(str) {
return str.toLowerCase().replace(/(?:(^.)|(\s+.))/g, function(match) {
return match.charAt(match.length-1).toUpperCase();
});
}