Skip to content

Commit bc591e9

Browse files
committed
tools: enforce loading required modules first
Refs: nodejs#7786
1 parent 6123075 commit bc591e9

1 file changed

Lines changed: 8 additions & 10 deletions

File tree

tools/eslint-rules/required-modules.js

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/**
2-
* @fileoverview Require usage of specified node modules.
2+
* @fileoverview Require usage of specified node modules before any other
3+
* modules are loaded.
34
* @author Rich Trott
45
*/
56
'use strict';
@@ -63,11 +64,16 @@ module.exports = function(context) {
6364

6465
return {
6566
'CallExpression': function(node) {
66-
if (isRequireCall(node)) {
67+
if (isRequireCall(node) && foundModules.length < requiredModules.length) {
6768
var requiredModuleName = getRequiredModuleName(node);
6869

6970
if (requiredModuleName) {
7071
foundModules.push(requiredModuleName);
72+
} else {
73+
context.report(
74+
node,
75+
'Module loaded before all required modules loaded.'
76+
);
7177
}
7278
}
7379
},
@@ -89,11 +95,3 @@ module.exports = function(context) {
8995
}
9096
};
9197
};
92-
93-
module.exports.schema = {
94-
'type': 'array',
95-
'additionalItems': {
96-
'type': 'string'
97-
},
98-
'uniqueItems': true
99-
};

0 commit comments

Comments
 (0)