common-errors
Advanced tools
Comparing version
@@ -29,5 +29,13 @@ var util = require('util'); | ||
var classGeneratorFn = new Function('classConstructor', | ||
"return function " + name + "(" + options.args.join(', ') + "){ classConstructor.apply(this, arguments); };" | ||
); | ||
var classGeneratorFn = new Function('classConstructor', [ | ||
"return function ", name, "(", options.args.join(', '), "){", | ||
"if(!(this instanceof ", name, ")) {", | ||
"var instance = Object.create(", name, ".prototype);", | ||
"classConstructor.apply(instance, arguments);", | ||
"return instance;", | ||
"} else {", | ||
"classConstructor.apply(this, arguments);", | ||
"}", | ||
"};", | ||
].join('')); | ||
var Class = classGeneratorFn(classConstructor); | ||
@@ -34,0 +42,0 @@ |
@@ -0,2 +1,4 @@ | ||
var http = require('http'); | ||
var util = require('util'); | ||
var _ = require('lodash'); | ||
@@ -6,2 +8,8 @@ var STATUS_CODE_ATTRIBUTE_NAME = module.exports.STATUS_CODE_ATTRIBUTE_NAME = 'status'; | ||
var HttpStatusError = module.exports = function HttpStatusError(status_code, message) { | ||
if(!(this instanceof HttpStatusError)) { | ||
var instance = Object.create(HttpStatusError.prototype); | ||
HttpStatusError.apply(instance, arguments); | ||
return instance; | ||
} | ||
if(typeof message == 'number' && typeof status_code != 'number') { | ||
@@ -57,29 +65,2 @@ //old interface, so swap. | ||
var message_map = HttpStatusError.message_map = { | ||
400: "Bad Request!", | ||
401: "Authentication Required!", | ||
402: "Payment Required!", | ||
403: "Forbidden!", | ||
404: "Not Found!", | ||
405: "Method not Allowed!", | ||
406: "Response Type Not Acceptable!", | ||
407: "Proxy Authentication Required!", | ||
408: "Request Timeout!", | ||
409: "Conflict!", | ||
410: "Gone!", | ||
411: "Content-Length Required!", | ||
412: "Precondition Failed!", | ||
413: "Request Entity Too Lage!", | ||
414: "Request URI Too Long!", | ||
415: "Unsupported Media Type!", | ||
416: "Requested Range Not Satisfiable!", | ||
417: "Expectation Failed!", | ||
429: "Too Many Requests!", | ||
500: "Internal Server Error!", | ||
501: "Not Implemented!", | ||
502: "Bad Gateway!", | ||
503: "Service Unavailable!", | ||
504: "Gateway Timeout!", | ||
505: "HTTP Version Not Supported!" | ||
}; | ||
var message_map = HttpStatusError.message_map = _.extend({}, http.STATUS_CODES); |
@@ -5,4 +5,4 @@ var generateClass = require('./helpers/class-generator'); | ||
generateMessage: function(){ | ||
return "An attempt was made to perform an operation that is invalid: " + this.message; | ||
return "An attempt was made to perform an operation that is not permitted: " + this.message; | ||
} | ||
}) |
@@ -5,3 +5,3 @@ { | ||
"description": "Common error classes and utility functions", | ||
"version": "0.5.1", | ||
"version": "0.5.2", | ||
"repository": { | ||
@@ -8,0 +8,0 @@ "type": "git", |
@@ -179,3 +179,3 @@ common-errors | ||
// Example | ||
throw new errors.DataError('Too many rows returned from database', err); | ||
throw new errors.data.DataError('Too many rows returned from database', err); | ||
``` | ||
@@ -199,3 +199,3 @@ | ||
// Example | ||
throw new errors.MemcachedError('Expected value not found', err); | ||
throw new errors.data.MemcachedError('Expected value not found', err); | ||
``` | ||
@@ -219,3 +219,3 @@ | ||
// Example | ||
throw new errors.MongoDBError('Retrieved value not in expected format', err); | ||
throw new errors.data.MongoDBError('Retrieved value not in expected format', err); | ||
``` | ||
@@ -239,3 +239,3 @@ | ||
// Example | ||
throw new errors.RedisError('expected value not found in redis', err); | ||
throw new errors.data.RedisError('expected value not found in redis', err); | ||
``` | ||
@@ -259,3 +259,3 @@ | ||
// Example | ||
throw new errors.RollbackError('database transaction was unexpectedly rolled back', err); | ||
throw new errors.data.RollbackError('database transaction was unexpectedly rolled back', err); | ||
``` | ||
@@ -279,3 +279,3 @@ | ||
// Example | ||
throw new errors.SQLError('foreign key constraint violated', err); | ||
throw new errors.data.SQLError('foreign key constraint violated', err); | ||
``` | ||
@@ -299,3 +299,3 @@ | ||
// Example | ||
throw new errors.TransactionError('transaction already complete', err); | ||
throw new errors.data.TransactionError('transaction already complete', err); | ||
``` | ||
@@ -302,0 +302,0 @@ |
@@ -34,3 +34,3 @@ var assert = require('assert'); | ||
assert.equal(res.res.statusCode, 403); | ||
assert.equal(res.text, "An attempt was made to perform an operation that is invalid: don't do that"); | ||
assert.equal(res.text, "An attempt was made to perform an operation that is not permitted: don't do that"); | ||
assert.ok(!console.error.called, "console.error not called"); | ||
@@ -135,3 +135,3 @@ done(); | ||
assert.equal(res.res.statusCode, 500); | ||
assert.equal(res.text, "Internal Server Error!"); | ||
assert.equal(res.text, "Internal Server Error"); | ||
assert.ok(console.error.called); | ||
@@ -148,3 +148,3 @@ assert.ok(/test/.test(console.error.getCall(0).args[0])); | ||
assert.equal(res.res.statusCode, 544); | ||
assert.equal(res.text, "Internal Server Error!"); | ||
assert.equal(res.text, "Internal Server Error"); | ||
assert.ok(console.error.called); | ||
@@ -160,3 +160,3 @@ assert.ok(/test/.test(console.error.getCall(0).args[0])); | ||
assert.equal(res.res.statusCode, 544); | ||
assert.equal(res.text, "Internal Server Error!"); | ||
assert.equal(res.text, "Internal Server Error"); | ||
assert.ok(console.error.called); | ||
@@ -172,3 +172,3 @@ assert.ok(/custom status message/.test(console.error.getCall(0).args[0])); | ||
assert.equal(res.res.statusCode, 544); | ||
assert.equal(res.text, "Internal Server Error!"); | ||
assert.equal(res.text, "Internal Server Error"); | ||
assert.ok(console.error.called); | ||
@@ -175,0 +175,0 @@ assert.ok(/custom status message/.test(console.error.getCall(0).args[0])); |
var support = require('./support'); | ||
support.testError('NotPermittedError', { | ||
message_to_assert: "An attempt was made to perform an operation that is invalid: test message" | ||
message_to_assert: "An attempt was made to perform an operation that is not permitted: test message" | ||
}); |
@@ -11,16 +11,30 @@ var assert = require('assert'); | ||
function performAssertions(Err, error) { | ||
assert.equal(error.name, name), 'Its name is correct.'; | ||
assert.equal(error.message, opts.message_to_assert); | ||
assert.ok(new RegExp(error.name + ": " + error.message + "\n(.*\n)+").test(error.stack), "Stack is good"); | ||
assert.equal(Err.super_.name, opts.extends.name, "It is an instance of" + opts.extends.name); | ||
assert.ok(error instanceof Error, opts.extends, "It is an instanceof " + opts.extends.name); | ||
} | ||
describe(name, function(){ | ||
var Err = errors; | ||
(opts.full_name).split('.').forEach(function(dir){ Err = Err[dir]; }); | ||
it("should work", function(){ | ||
var Err = errors; | ||
(opts.full_name).split('.').forEach(function(dir){ Err = Err[dir]; }); | ||
assert.ok(Err, name + " exists."); | ||
var inner_error = new Error("inner error"); | ||
var error = new Err(opts.message); | ||
assert.equal(error.name, name), 'Its name is correct.'; | ||
assert.equal(error.message, opts.message_to_assert); | ||
assert.ok(new RegExp(error.name + ": " + error.message + "\n(.*\n)+").test(error.stack), "Stack is good"); | ||
assert.equal(Err.super_.name, opts.extends.name, "It is an instance of" + opts.extends.name); | ||
assert.ok(error instanceof Error, opts.extends, "It is an instanceof " + opts.extends.name); | ||
performAssertions(Err, error); | ||
}); | ||
it("should work without new", function(){ | ||
assert.ok(Err, name + " exists."); | ||
var inner_error = new Error("inner error"); | ||
var error = Err(opts.message); | ||
performAssertions(Err, error); | ||
}); | ||
}); | ||
} |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
66043
2.98%64
1.59%977
4.05%2
100%