forked from ember-cli/ember-cli-eslint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathember-cli-build.js
50 lines (44 loc) · 1.63 KB
/
ember-cli-build.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/* jshint node: true */
/* global require, module */
var path = require('path');
var jsStringEscape = require('js-string-escape');
var EmberAddon = require('ember-cli/lib/broccoli/ember-addon');
module.exports = function (defaults) {
var app = new EmberAddon({
eslint: {
testGenerator: eslintTestGenerator
}
});
function render(errors) {
if (!errors) {
return '';
}
return errors.map(function (error) {
return error.line + ':' + error.column + ' ' +
' - ' + error.message + ' (' + error.ruleId + ')';
}).join('\n');
}
// Qunit test generator
function eslintTestGenerator(relativePath, errors) {
var pass = !errors || errors.length === 0;
return "import { module, test } from 'qunit';\n" +
"module('ESLint - " + path.dirname(relativePath) + "');\n" +
"test('" + relativePath + " should pass ESLint', function(assert) {\n" +
" assert.ok(" + pass + ", '" + relativePath + " should pass ESLint." +
jsStringEscape("\n" + render(errors)) + "');\n" +
"});\n";
}
// Use `app.import` to add additional libraries to the generated
// output files.
//
// If you need to use different assets in different
// environments, specify an object as the first parameter. That
// object's keys should be the environment name and the values
// should be the asset to use in that environment.
//
// If the library that you are including contains AMD or ES6
// modules that you would like to import into your application
// please specify an object with the list of modules as keys
// along with the exports of each module as its value.
return app.toTree();
};