UNPKG

500 BJavaScriptView Raw
1const traverse = require('./traverse');
2
3class Reporter {
4 constructor({ moddleRoot, rule }) {
5 this.rule = rule;
6 this.moddleRoot = moddleRoot;
7 this.messages = [];
8 this.report = this.report.bind(this);
9 }
10
11 report(id, message) {
12 this.messages.push({ id, message });
13 }
14}
15
16module.exports = function testRule({ moddleRoot, rule }) {
17 const reporter = new Reporter({ rule, moddleRoot });
18 traverse(moddleRoot, node => rule.check(node, reporter));
19 return reporter.messages;
20};