UNPKG

1.66 kBJavaScriptView Raw
1(function() {
2 var path, resolve;
3
4 path = require('path');
5
6 resolve = require('resolve').sync;
7
8 module.exports = {
9 require: function(moduleName) {
10 var rulePath;
11 try {
12 rulePath = resolve(moduleName, {
13 basedir: process.cwd()
14 });
15 return require(rulePath);
16 } catch (undefined) {}
17 try {
18 return require(moduleName);
19 } catch (undefined) {}
20 try {
21 return require(path.resolve(process.cwd(), moduleName));
22 } catch (undefined) {}
23 return require(moduleName);
24 },
25 loadFromConfig: function(coffeelint, config) {
26 var data, results, ruleName;
27 results = [];
28 for (ruleName in config) {
29 data = config[ruleName];
30 if ((data != null ? data.module : void 0) != null) {
31 results.push(this.loadRule(coffeelint, data.module, ruleName));
32 }
33 }
34 return results;
35 },
36 loadRule: function(coffeelint, moduleName, ruleName) {
37 var e, error, i, len, results, rule, ruleModule;
38 if (ruleName == null) {
39 ruleName = void 0;
40 }
41 try {
42 ruleModule = this.require(moduleName);
43 if (typeof ruleModule === 'function') {
44 return coffeelint.registerRule(ruleModule, ruleName);
45 } else {
46 results = [];
47 for (i = 0, len = ruleModule.length; i < len; i++) {
48 rule = ruleModule[i];
49 results.push(coffeelint.registerRule(rule));
50 }
51 return results;
52 }
53 } catch (error) {
54 e = error;
55 console.error("Error loading " + moduleName);
56 throw e;
57 }
58 }
59 };
60
61}).call(this);