Skip to content
This repository was archived by the owner on Nov 11, 2017. It is now read-only.

Commit d35e3bd

Browse files
authored
Merge pull request #163 from Turbo87/eslint
Replace JSHint/JSCS with ESLint
2 parents 52b0a8a + 674a4df commit d35e3bd

29 files changed

+32
-58
lines changed

lib/config/build-config.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
'use strict';
22

3-
// To create fast production builds (without minification, JSCS, or JSHint)
3+
// To create fast production builds (without minification and ESLint)
44
// run the following:
55
//
6-
// DISABLE_JSHINT=true DISABLE_JSCS=true DISABLE_MIN=true ember serve --environment=production
6+
// DISABLE_ESLINT=true DISABLE_MIN=true ember serve --environment=production
77

88
var env = process.env.EMBER_ENV || 'development';
99
var isDevelopment = env === 'development';
1010

11-
var disableJSHint = !!process.env.DISABLE_JSHINT || false;
12-
var disableJSCS = !!process.env.DISABLE_JSCS || false;
11+
var disableESLint = !!process.env.DISABLE_ESLINT || false;
1312
var disableMin = !!process.env.DISABLE_MIN || false;
1413
var enableDocs = !!process.env.ENABLE_DOCS || false;
1514

@@ -28,8 +27,7 @@ if (!isDevelopment && !disableMin) {
2827

2928
module.exports = {
3029
isDevelopment: isDevelopment,
31-
disableJSHint: disableJSHint,
32-
disableJSCS: disableJSCS,
30+
disableESLint: disableESLint,
3331
disableMin: disableMin,
3432
enableDocs: enableDocs,
3533
enableTreeDebugging: enableTreeDebugging,

lib/ember-build.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,8 @@ var EmberBuild = CoreObject.extend({
233233
currentPackage.trees = es6Package(packages, packageName, {
234234
htmlbars: this.htmlbars,
235235
glimmer: this.glimmer,
236-
vendoredPackages: vendoredPackages
236+
vendoredPackages: vendoredPackages,
237+
eslintRulePaths: this.eslintRulePaths,
237238
});
238239

239240
if (currentPackage['vendorRequirements']) {

lib/get-es6-package.js

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,19 @@ module.exports = getES6Package;
55

66
var Funnel = require('broccoli-funnel');
77
var mergeTrees = require('broccoli-merge-trees');
8-
var jshintTree = require('broccoli-jshint');
9-
var jscsTree = require('./jscs-tree');
8+
var ESLintTree = require('broccoli-lint-eslint');
109

1110
var config = require('./config/build-config');
1211
var packageDependencyTree = require('./get-package-dependency-tree');
1312
var htmlbarsTemplatePrecompiler = require('./utils/htmlbars-template-precompiler');
1413
var glimmerTemplatePrecompiler = require('./utils/glimmer-template-precompiler');
1514

16-
var disableJSHint = config.disableJSHint;
17-
var disableJSCS = config.disableJSCS;
15+
var disableESLint = config.disableESLint;
1816

1917
function getES6Package(packages, packageName, opts) {
2018
var pkg = packages[packageName];
2119
var options = opts || {};
2220
var jsRegExp = /js$/;
23-
var configPath = options.configPath || '';
2421

2522
var libTree;
2623

@@ -39,7 +36,8 @@ function getES6Package(packages, packageName, opts) {
3936
#TODO: moar detail!!!
4037
*/
4138
packageDependencyTree(packages, packageName, {
42-
vendoredPackages: options.vendoredPackages
39+
vendoredPackages: options.vendoredPackages,
40+
eslintRulePaths: options.eslintRulePaths,
4341
});
4442
var vendorTrees = pkg.vendorTrees;
4543

@@ -92,11 +90,13 @@ function getES6Package(packages, packageName, opts) {
9290
},
9391
});
9492

95-
var libJSCSTree = jscsTree(libTree, {
96-
configPath: configPath
97-
});
9893

99-
var libJSHintTree = jshintTree(libTree);
94+
var eslintOptions = {
95+
testGenerator: 'qunit',
96+
options: { rulePaths: options.eslintRulePaths },
97+
};
98+
99+
var libESLintTree = new ESLintTree(libTree, eslintOptions);
100100

101101
if (pkg.hasTemplates) {
102102
/*
@@ -121,24 +121,16 @@ function getES6Package(packages, packageName, opts) {
121121
destDir: '/' + packageName + '/tests'
122122
});
123123

124-
var testJSCSTree = jscsTree(testTree, {
125-
configPath: configPath
126-
});
127-
var testJSHintTree = jshintTree(testTree);
124+
var testESLintTree = new ESLintTree(testTree, eslintOptions);
128125

129126
/*
130127
Merge jshint into testTree in order to ensure that if you have a jshint
131128
failure you'll see them fail in your browser tests
132129
*/
133130
var testTrees = [];
134-
if (!disableJSHint) {
135-
testTrees.push(libJSHintTree);
136-
testTrees.push(testJSHintTree);
137-
}
138-
139-
if (!disableJSCS) {
140-
testTrees.push(libJSCSTree);
141-
testTrees.push(testJSCSTree);
131+
if (!disableESLint) {
132+
testTrees.push(libESLintTree);
133+
testTrees.push(testESLintTree);
142134
}
143135
testTrees.push(testTree);
144136

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,8 @@
3939
"broccoli-concat": "^2.0.0",
4040
"broccoli-file-creator": "^1.0.0",
4141
"broccoli-funnel": "^1.0.1",
42-
"broccoli-jscs": "^1.4.1",
43-
"broccoli-jshint": "^1.1.0",
4442
"broccoli-kitchen-sink-helpers": "^0.2.6",
43+
"broccoli-lint-eslint": "^3.2.0",
4544
"broccoli-merge-trees": "^1.1.1",
4645
"broccoli-persistent-filter": "^1.0.8",
4746
"broccoli-source": "^1.1.0",

tests/config/build-config-test.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ describe('build config', function() {
88
it('returns correct default configuration object', function() {
99
expect(buildConfig).to.deep.equal({
1010
isDevelopment: true,
11-
disableJSHint: false,
12-
disableJSCS: false,
11+
disableESLint: false,
1312
disableMin: false,
1413
enableDocs: false,
1514
enableTreeDebugging: false,

tests/expected/packages/ember-metal-tests-tree/ember-metal.jscs-test.js

Whitespace-only changes.

tests/expected/packages/ember-metal-tests-tree/ember-metal.jshint.js

Whitespace-only changes.

tests/expected/packages/ember-metal-tests-tree/ember-metal/alias.jscs-test.js

Whitespace-only changes.

tests/expected/packages/ember-metal-tests-tree/ember-metal/alias.jshint.js

Whitespace-only changes.

tests/expected/packages/ember-metal-tests-tree/ember-metal/array.jscs-test.js

Whitespace-only changes.

0 commit comments

Comments
 (0)