forked from c9/cloud9
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patherror.js
More file actions
70 lines (58 loc) · 1.83 KB
/
Copy patherror.js
File metadata and controls
70 lines (58 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
var sys = require("sys");
exports.HttpError = function(message, code) {
Error.call(this, message);
//Error.captureStackTrace(this, arguments.callee);
this.message = message;
this.code = code;
};
sys.inherits(exports.HttpError, Error);
(function() {
this.toString = function() {
return this.message;
};
}).call(exports.HttpError.prototype);
var statusCodes = {
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",
500: "Internal Server Error",
501: "Not Implemented",
502: "Bad Gateway",
503: "Service Unavailable",
504: "Gateway Timeout",
505: "HTTP Version Not Supported"
};
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);
sys.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();
});
}