Skip to content
This repository was archived by the owner on Nov 11, 2017. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions lib/config/build-config.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
'use strict';

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

var env = process.env.EMBER_ENV || 'development';
var isDevelopment = env === 'development';

var disableJSHint = !!process.env.DISABLE_JSHINT || false;
var disableJSCS = !!process.env.DISABLE_JSCS || false;
var disableESLint = !!process.env.DISABLE_ESLINT || false;
var disableMin = !!process.env.DISABLE_MIN || false;
var enableDocs = !!process.env.ENABLE_DOCS || false;

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

module.exports = {
isDevelopment: isDevelopment,
disableJSHint: disableJSHint,
disableJSCS: disableJSCS,
disableESLint: disableESLint,
disableMin: disableMin,
enableDocs: enableDocs,
enableTreeDebugging: enableTreeDebugging,
Expand Down
3 changes: 2 additions & 1 deletion lib/ember-build.js
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,8 @@ var EmberBuild = CoreObject.extend({
currentPackage.trees = es6Package(packages, packageName, {
htmlbars: this.htmlbars,
glimmer: this.glimmer,
vendoredPackages: vendoredPackages
vendoredPackages: vendoredPackages,
eslintRulePaths: this.eslintRulePaths,
});

if (currentPackage['vendorRequirements']) {
Expand Down
36 changes: 14 additions & 22 deletions lib/get-es6-package.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,19 @@ module.exports = getES6Package;

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

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

var disableJSHint = config.disableJSHint;
var disableJSCS = config.disableJSCS;
var disableESLint = config.disableESLint;

function getES6Package(packages, packageName, opts) {
var pkg = packages[packageName];
var options = opts || {};
var jsRegExp = /js$/;
var configPath = options.configPath || '';

var libTree;

Expand All @@ -39,7 +36,8 @@ function getES6Package(packages, packageName, opts) {
#TODO: moar detail!!!
*/
packageDependencyTree(packages, packageName, {
vendoredPackages: options.vendoredPackages
vendoredPackages: options.vendoredPackages,
eslintRulePaths: options.eslintRulePaths,
});
var vendorTrees = pkg.vendorTrees;

Expand Down Expand Up @@ -92,11 +90,13 @@ function getES6Package(packages, packageName, opts) {
},
});

var libJSCSTree = jscsTree(libTree, {
configPath: configPath
});

var libJSHintTree = jshintTree(libTree);
var eslintOptions = {
testGenerator: 'qunit',
options: { rulePaths: options.eslintRulePaths },
};

var libESLintTree = new ESLintTree(libTree, eslintOptions);

if (pkg.hasTemplates) {
/*
Expand All @@ -121,24 +121,16 @@ function getES6Package(packages, packageName, opts) {
destDir: '/' + packageName + '/tests'
});

var testJSCSTree = jscsTree(testTree, {
configPath: configPath
});
var testJSHintTree = jshintTree(testTree);
var testESLintTree = new ESLintTree(testTree, eslintOptions);

/*
Merge jshint into testTree in order to ensure that if you have a jshint
failure you'll see them fail in your browser tests
*/
var testTrees = [];
if (!disableJSHint) {
testTrees.push(libJSHintTree);
testTrees.push(testJSHintTree);
}

if (!disableJSCS) {
testTrees.push(libJSCSTree);
testTrees.push(testJSCSTree);
if (!disableESLint) {
testTrees.push(libESLintTree);
testTrees.push(testESLintTree);
}
testTrees.push(testTree);

Expand Down
3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,8 @@
"broccoli-concat": "^2.0.0",
"broccoli-file-creator": "^1.0.0",
"broccoli-funnel": "^1.0.1",
"broccoli-jscs": "^1.4.1",
"broccoli-jshint": "^1.1.0",
"broccoli-kitchen-sink-helpers": "^0.2.6",
"broccoli-lint-eslint": "^3.2.0",
"broccoli-merge-trees": "^1.1.1",
"broccoli-persistent-filter": "^1.0.8",
"broccoli-source": "^1.1.0",
Expand Down
3 changes: 1 addition & 2 deletions tests/config/build-config-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ describe('build config', function() {
it('returns correct default configuration object', function() {
expect(buildConfig).to.deep.equal({
isDevelopment: true,
disableJSHint: false,
disableJSCS: false,
disableESLint: false,
disableMin: false,
enableDocs: false,
enableTreeDebugging: false,
Expand Down
4 changes: 0 additions & 4 deletions tests/fixtures/jscs/.jscsrc

This file was deleted.

31 changes: 10 additions & 21 deletions tests/get-es6-package-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ var htmlbarsPackage = require('../lib/htmlbars-package');

var getES6Package = require('../lib/get-es6-package');

var fixtureLibPath, fixtureTestPath, fixtureLoaderPath, fixtureGeneratorsPath, expectedPath, configPath;
var fixtureLibPath, fixtureTestPath, fixtureLoaderPath, fixtureGeneratorsPath, expectedPath;

function mockTree(name) {
// good enough for our use-case, we can always make it more u
Expand Down Expand Up @@ -64,12 +64,10 @@ describe('get-es6-package', function() {

fixtureLibPath = path.join(__dirname, 'fixtures/packages/ember-metal/lib');
fixtureTestPath = path.join(__dirname, 'fixtures/packages/ember-metal/tests');
configPath = path.join(__dirname, 'fixtures/jscs/.jscsrc');

var fullTree = getES6Package(packages, 'ember-metal', {
libPath: fixtureLibPath,
testPath: fixtureTestPath,
configPath: configPath
});

builder = new broccoli.Builder(fullTree.tests);
Expand All @@ -81,32 +79,23 @@ describe('get-es6-package', function() {
var outputPath = results.directory;

expect(walkSync(outputPath)).to.deep.equal([
'ember-metal.jscs-test.js',
'ember-metal.jshint.js',
'ember-metal.lint-test.js',
'ember-metal/',
'ember-metal/alias.jscs-test.js',
'ember-metal/alias.jshint.js',
'ember-metal/array.jscs-test.js',
'ember-metal/array.jshint.js',
'ember-metal/binding.jscs-test.js',
'ember-metal/binding.jshint.js',
'ember-metal/alias.lint-test.js',
'ember-metal/array.lint-test.js',
'ember-metal/binding.lint-test.js',
'ember-metal/streams/',
'ember-metal/streams/simple.jscs-test.js',
'ember-metal/streams/simple.jshint.js',
'ember-metal/streams/simple.lint-test.js',
'ember-metal/tests/',
'ember-metal/tests/alias_test.js',
'ember-metal/tests/alias_test.jscs-test.js',
'ember-metal/tests/alias_test.jshint.js',
'ember-metal/tests/alias_test.lint-test.js',
'ember-metal/tests/array_test.js',
'ember-metal/tests/array_test.jscs-test.js',
'ember-metal/tests/array_test.jshint.js',
'ember-metal/tests/array_test.lint-test.js',
'ember-metal/tests/binding_test.js',
'ember-metal/tests/binding_test.jscs-test.js',
'ember-metal/tests/binding_test.jshint.js',
'ember-metal/tests/binding_test.lint-test.js',
'ember-metal/tests/streams/',
'ember-metal/tests/streams/simple_test.js',
'ember-metal/tests/streams/simple_test.jscs-test.js',
'ember-metal/tests/streams/simple_test.jshint.js'
'ember-metal/tests/streams/simple_test.lint-test.js'
]);
});
});
Expand Down