Skip to content

Commit 7dea9a9

Browse files
authored
Merge pull request #24 from node-red/eslint-func-fixes
Run eslint on all parts of Function node and handle built-ins
2 parents 9b27a60 + c4dce78 commit 7dea9a9

File tree

1 file changed

+32
-17
lines changed

1 file changed

+32
-17
lines changed

lib/rules/function-eslint/function-eslint.js

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,30 @@ var defaultConfig = {
6969
}
7070
}
7171

72+
function lintCode(config, property) {
73+
var code = "const RED = {}; // eslint-disable-line\n"+
74+
"const context = {}; // eslint-disable-line\n"+
75+
"const global = {}; // eslint-disable-line\n"+
76+
"const flow = {}; // eslint-disable-line\n"+
77+
"const env = {}; // eslint-disable-line\n"+
78+
"const __msgid__ = {}; // eslint-disable-line\n"+
79+
"const node = {}; // eslint-disable-line\n"+
80+
"(async function(msg,__send__,__done__){ // eslint-disable-line\n"+
81+
property+
82+
"}); // eslint-disable-line";
83+
return linter.verify(code, config);
84+
}
85+
86+
function reportResults(context, node, results, location) {
87+
results.forEach(function(r) {
88+
context.report({
89+
location: [node.id],
90+
message: "["+location+"] "+r.message,
91+
severity: (r.severity == 1)? "warn" : "error",
92+
additionalInfo: r
93+
})
94+
});
95+
}
7296
module.exports = {
7397
meta: {
7498
type: "suggestion",
@@ -86,23 +110,14 @@ module.exports = {
86110
var config = ruleConfig.config || defaultConfig;
87111
return {
88112
"type:function": function(node) {
89-
// TODO: lint the on-start / on-close code
90-
var code = "(async function(msg,__send__,__done__){"+
91-
"var __msgid__;"+
92-
"var node; // eslint-disable-line\n"+
93-
node.config.func+"\n"+
94-
"}); // eslint-disable-line";
95-
var result = linter.verify(code, config);
96-
result.forEach(function(r) {
97-
// console.log(r);
98-
context.report({
99-
location: [node.id],
100-
message: r.message,
101-
severity: (r.severity == 1)? "warn" : "error",
102-
additionalInfo: r
103-
})
104-
// console.log(r);
105-
});
113+
reportResults(context,node,lintCode(config,node.config.func),"msg");
114+
if (node.config.initialize) {
115+
reportResults(context,node,lintCode(config,node.config.initialize),"start");
116+
}
117+
if (node.config.finalize) {
118+
reportResults(context,node,lintCode(config,node.config.finalize),"stop");
119+
}
120+
106121
}
107122
}
108123
}

0 commit comments

Comments
 (0)