Skip to content

Commit 4a6f332

Browse files
author
aeb
committed
use moduleconfig module
1 parent 2072c98 commit 4a6f332

File tree

4 files changed

+62
-103
lines changed

4 files changed

+62
-103
lines changed

lib/nodeerrors.js

Lines changed: 22 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,13 @@
11
"use strict";
2-
delete require.cache[__filename]; //do not cache in require cache
32
var getErrorConfig = require("./util/getErrorConfig");
43
var makeErrorFunction = require("./util/makeErrorFunction");
5-
var getErrorConfigFilePath = require("./util/getErrorConfigFilePath");
4+
var moduleConfig = require("moduleconfig");
65
var parse = require("./util/parse");
76
var middleware = require("./middleware");
8-
var cache = require("./util/cache"); //use requires caching to have a singleton
9-
var path = require("path");
107

118
function getNodeErrors() {
12-
var startDir = path.dirname(module.parent.filename);
13-
var errorConfigFilePath;
14-
if (cache.errorConfigFilePaths[startDir]) {
15-
errorConfigFilePath = cache.errorConfigFilePaths[startDir];
16-
} else {
17-
errorConfigFilePath = getErrorConfigFilePath(startDir);
18-
if(!errorConfigFilePath){
19-
throw new Error("nodeerrors, cannot find .errors.js, starting from path " + startDir);
20-
}
21-
cache.errorConfigFilePaths[startDir] = errorConfigFilePath;
22-
}
23-
if (cache.nodeerrors[errorConfigFilePath]) {
24-
return cache.nodeerrors[errorConfigFilePath];
25-
}
26-
27-
if (!cache.prototypesExtended) {
28-
cache.prototypesExtended = true;
9+
if (!moduleConfig.prototypesExtended) {
10+
moduleConfig.prototypesExtended = true;
2911
Error.prototype.innerError = function addInnerError(err) {
3012
this.internal = this.internal || {};
3113
this.internal.innerError = err;
@@ -46,26 +28,27 @@ function getNodeErrors() {
4628
};
4729
}
4830

49-
//Not in cache, create nodeErrors object
50-
var nodeError = {
51-
errorCodes:{},
52-
middleware:middleware
53-
};
54-
nodeError.parse = parse.bind(nodeError);
55-
var errorCodeSpecs = getErrorConfig(errorConfigFilePath);
5631

57-
var functionsToMake = Object.keys(errorCodeSpecs); //get array of friendly names.
58-
for (var i = 0; i < functionsToMake.length; i++) {
59-
//get error code friendly name, for example: "internalError"
60-
var errorCodeName = functionsToMake[i];
61-
//make error function for friendly name
62-
nodeError[errorCodeName] = makeErrorFunction(errorCodeName, errorCodeSpecs[errorCodeName]);
63-
//save the error code in errorCodes
64-
nodeError.errorCodes[errorCodeName] = errorCodeName;
65-
}
32+
return moduleConfig([".errors.js", "config/.errors.js"], function(errorConfigFilePath){
33+
//Not in cache, create nodeErrors object
34+
var nodeError = {
35+
errorCodes:{},
36+
middleware:middleware
37+
};
38+
nodeError.parse = parse.bind(nodeError);
39+
var errorCodeSpecs = getErrorConfig(errorConfigFilePath);
40+
var functionsToMake = Object.keys(errorCodeSpecs); //get array of friendly names.
41+
for (var i = 0; i < functionsToMake.length; i++) {
42+
//get error code friendly name, for example: "internalError"
43+
var errorCodeName = functionsToMake[i];
44+
//make error function for friendly name
45+
nodeError[errorCodeName] = makeErrorFunction(errorCodeName, errorCodeSpecs[errorCodeName]);
46+
//save the error code in errorCodes
47+
nodeError.errorCodes[errorCodeName] = errorCodeName;
48+
}
49+
return nodeError;
50+
});
6651

67-
cache.nodeerrors[errorConfigFilePath] = nodeError;
68-
return nodeError;
6952
}
7053

7154
module.exports = getNodeErrors();

lib/util/cache.js

Lines changed: 0 additions & 4 deletions
This file was deleted.

lib/util/getErrorConfigFilePath.js

Lines changed: 0 additions & 21 deletions
This file was deleted.

package.json

Lines changed: 40 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,42 @@
11
{
2-
"author": "Allan Ebdrup",
3-
"name": "nodeerrors",
4-
"description": "error handling module for node",
5-
"version": "2.0.1",
6-
"repository": {
7-
"type": "git",
8-
"url": "https://github.com/Muscula/nodeerrors"
9-
},
10-
"private": false,
11-
"main": "./lib/nodeerrors.js",
12-
"engines": {
13-
"node": ">=0.6.20",
14-
"npm": ">=1.1.9"
15-
},
16-
"dependencies": {
17-
"underscore": "~1.3.1",
18-
"node-uuid": "~1.4.0"
19-
},
20-
"scripts": {
21-
"test": "node ./bin/runTests.js"
22-
},
23-
"devDependencies": {
24-
"mocha": "",
25-
"chai": "",
26-
"sinon": "",
27-
"sinon-chai": "",
28-
"jshint": "0.x",
29-
"request": ""
30-
},
31-
"readmeFilename": "readme.md",
32-
"gitHead": "985c718ebf69fc91205c6c40d0a46ce49c717f2b",
33-
"directories": {
34-
"test": "test"
35-
},
36-
"keywords": [
37-
"error",
38-
"handling"
39-
],
40-
"license": "APACHE V2.0"
2+
"author":"Allan Ebdrup",
3+
"name":"nodeerrors",
4+
"description":"error handling module for node",
5+
"version":"2.0.2",
6+
"repository":{
7+
"type":"git",
8+
"url":"https://github.com/Muscula/nodeerrors"
9+
},
10+
"private":false,
11+
"main":"./lib/nodeerrors.js",
12+
"engines":{
13+
"node":">=0.6.20",
14+
"npm":">=1.1.9"
15+
},
16+
"dependencies":{
17+
"underscore":"~1.3.1",
18+
"node-uuid":"~1.4.0",
19+
"moduleconfig":""
20+
},
21+
"scripts":{
22+
"test":"node ./bin/runTests.js"
23+
},
24+
"devDependencies":{
25+
"mocha":"",
26+
"chai":"",
27+
"sinon":"",
28+
"sinon-chai":"",
29+
"jshint":"0.x",
30+
"request":""
31+
},
32+
"readmeFilename":"readme.md",
33+
"gitHead":"985c718ebf69fc91205c6c40d0a46ce49c717f2b",
34+
"directories":{
35+
"test":"test"
36+
},
37+
"keywords":[
38+
"error",
39+
"handling"
40+
],
41+
"license":"APACHE V2.0"
4142
}

0 commit comments

Comments
 (0)