Skip to content

Commit 91ff802

Browse files
committed
Just a bit of ES6, that Node.js 4 can take
1 parent f4b1522 commit 91ff802

File tree

2 files changed

+33
-26
lines changed

2 files changed

+33
-26
lines changed

.eslintrc.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@
118118
"object-curly-spacing": 2,
119119
"one-var": 0,
120120
"operator-assignment": [2, "always"],
121+
"prefer-const": 2,
121122
"quote-props": 0,
122123
"quote-props": [1, "as-needed"],
123124
"quotes": [2, "single"],
@@ -138,6 +139,9 @@
138139
"wrap-regex": 0,
139140
"yoda": [2, "never"]
140141
},
142+
"parserOptions": {
143+
"ecmaVersion": 6
144+
},
141145
"env": {
142146
"browser": true,
143147
"node": true,

tasks/jasmine-node-task.js

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
11

22
'use strict';
33

4+
// Native dependencies
5+
const fs = require('fs'),
6+
path = require('path');
7+
8+
// 3rd party dependencies
9+
const istanbul = require('istanbul'),
10+
Jasmine = require('jasmine'),
11+
SpecReporter = require('jasmine-spec-reporter'),
12+
deepmerge = require('deepmerge');
13+
414
module.exports = function jasmineNodeTask(grunt) {
515

6-
var istanbul = require('istanbul'),
7-
Jasmine = require('jasmine'),
8-
SpecReporter = require('jasmine-spec-reporter'),
9-
merge = require('deepmerge'),
10-
path = require('path'),
11-
fs = require('fs');
16+
const reports = [];
1217

1318
var reportingDir,
1419
coverageVar = '$$cov_' + new Date().getTime() + '$$',
1520
fileSrc = ['**/*.js'],
1621
options,
17-
done,
18-
19-
reports = [];
22+
done;
2023

21-
var coverageCollect = function coverageCollect(covPattern, collector) {
24+
const coverageCollect = function coverageCollect(covPattern, collector) {
2225

2326
// The pattern should be relative to the directory in which the reports are written
2427
var coverageFiles = grunt.file.expand(path.resolve(reportingDir, covPattern));
@@ -44,7 +47,7 @@ module.exports = function jasmineNodeTask(grunt) {
4447
});
4548
};
4649

47-
var coverageThresholdCheck = function coverageThresholdCheck(collector) {
50+
const coverageThresholdCheck = function coverageThresholdCheck(collector) {
4851

4952
// http://gotwarlost.github.io/istanbul/public/apidocs/classes/ObjectUtils.html
5053
var objUtils = istanbul.utils;
@@ -69,7 +72,7 @@ module.exports = function jasmineNodeTask(grunt) {
6972
});
7073
};
7174

72-
var includeAllSources = function includeAllSources(cov, opts) {
75+
const includeAllSources = function includeAllSources(cov, opts) {
7376
if (!opts || !opts.instrumenter || !opts.transformer || !opts.matchFn || !cov) {
7477
grunt.log.error('includeAllSources was set but coverage wasn\'t run.');
7578
return;
@@ -100,7 +103,7 @@ module.exports = function jasmineNodeTask(grunt) {
100103
});
101104
};
102105

103-
var collectReports = function collectReports(opts) {
106+
const collectReports = function collectReports(opts) {
104107
var reportFile = path.resolve(reportingDir, options.coverage.reportFile),
105108
collector = new istanbul.Collector(), // http://gotwarlost.github.io/istanbul/public/apidocs/classes/Collector.html
106109
cov = global[coverageVar];
@@ -115,7 +118,7 @@ module.exports = function jasmineNodeTask(grunt) {
115118

116119
grunt.verbose.writeln('Writing coverage object [' + reportFile + ']');
117120

118-
fs.writeFileSync(reportFile, JSON.stringify(cov), 'utf8');
121+
fs.writeFileSync(reportFile, JSON.stringify(cov, null, ' '), 'utf8');
119122

120123
if (options.coverage.collect !== false) {
121124
options.coverage.collect.forEach(function eachCollect(covPattern) {
@@ -135,19 +138,19 @@ module.exports = function jasmineNodeTask(grunt) {
135138
coverageThresholdCheck(collector);
136139
};
137140

138-
var exitHandler = function exitHandler(opts) {
141+
const exitHandler = function exitHandler(opts) {
139142
if (typeof global[coverageVar] !== 'object' || Object.keys(global[coverageVar]).length === 0) {
140143
grunt.log.error('No coverage information was collected, exit without writing coverage information');
141144
return;
142145
}
143146
collectReports(opts);
144147
};
145148

146-
var istanbulMatcherRun = function istanbulMatcherRun(matchFn) {
149+
const istanbulMatcherRun = function istanbulMatcherRun(matchFn) {
147150

148-
var instrumenter = new istanbul.Instrumenter({coverageVariable: coverageVar});
149-
var transformer = instrumenter.instrumentSync.bind(instrumenter);
150-
var hookOpts = {verbose: options.isVerbose};
151+
const instrumenter = new istanbul.Instrumenter({coverageVariable: coverageVar});
152+
const transformer = instrumenter.instrumentSync.bind(instrumenter);
153+
const hookOpts = {verbose: options.isVerbose};
151154

152155
istanbul.hook.hookRequire(matchFn, transformer, hookOpts);
153156

@@ -167,7 +170,7 @@ module.exports = function jasmineNodeTask(grunt) {
167170
};
168171

169172

170-
var runner = function runner(opts) {
173+
const runner = function runner(opts) {
171174
opts = opts || {};
172175

173176
if (options.captureExceptions) {
@@ -182,7 +185,7 @@ module.exports = function jasmineNodeTask(grunt) {
182185
});
183186
}
184187
try {
185-
var jasmine = new Jasmine();
188+
const jasmine = new Jasmine();
186189
jasmine.loadConfig(options.jasmine);
187190
jasmine.addReporter(new SpecReporter(options.jasmine.reporter));
188191
jasmine.onComplete(function(passed) {
@@ -201,22 +204,22 @@ module.exports = function jasmineNodeTask(grunt) {
201204
}
202205
};
203206

204-
var doCoverage = function doCoverage() {
207+
const doCoverage = function doCoverage() {
205208

206209
// set up require hooks to instrument files as they are required
207-
var Report = istanbul.Report;
210+
const Report = istanbul.Report;
208211

209212
grunt.file.mkdir(reportingDir); // ensure we fail early if we cannot do this
210213

211-
var reportClassNames = options.coverage.report;
214+
const reportClassNames = options.coverage.report;
212215
reportClassNames.forEach(function eachReport(reportClassName) {
213216
reports.push(Report.create(reportClassName, {
214217
dir: reportingDir,
215218
watermarks: options.coverage.watermarks
216219
}));
217220
});
218221

219-
var excludes = options.coverage.excludes || [];
222+
const excludes = options.coverage.excludes || [];
220223
excludes.push('**/node_modules/**');
221224

222225
// http://gotwarlost.github.io/istanbul/public/apidocs/classes/Istanbul.html#method_matcherFor
@@ -239,7 +242,7 @@ module.exports = function jasmineNodeTask(grunt) {
239242
grunt.registerMultiTask('jasmine_node', 'Runs jasmine-node with Istanbul code coverage', function registerGrunt() {
240243

241244
// Default options. Once Grunt does recursive merge, use that, maybe 0.4.6
242-
options = merge({
245+
options = deepmerge({
243246

244247
// Used only in this plugin, thus can be refactored out
245248
projectRoot: process.cwd(), // string

0 commit comments

Comments
 (0)