1- var gulp = require ( 'gulp' ) ;
2- var uglify = require ( 'gulp-uglify-es' ) . default ;
3- var gulpIf = require ( 'gulp-if' ) ;
4- var useref = require ( 'gulp-useref' ) ;
5- var rename = require ( 'gulp-rename' ) ;
6- var mocha = require ( 'gulp-mocha' ) ;
7- var chai = require ( 'chai' ) ;
8- var babel = require ( 'gulp-babel' ) ;
9- var eslint = require ( 'gulp-eslint' ) ;
10- var istanbul = require ( 'gulp-istanbul' ) ;
11- var gutil = require ( 'gulp-util' ) ;
1+ const process = require ( 'process' ) ;
2+ const path = require ( 'path' ) ;
3+ const gulp = require ( 'gulp' ) ;
4+ const uglify = require ( 'gulp-uglify-es' ) . default ;
5+ const useref = require ( 'gulp-useref' ) ;
6+ const rename = require ( 'gulp-rename' ) ;
7+ const mocha = require ( 'gulp-mocha' ) ;
8+ const babel = require ( 'gulp-babel' ) ;
9+ const eslint = require ( 'gulp-eslint' ) ;
10+ const shell = require ( 'gulp-shell' ) ;
1211
13- gulp . task ( 'default' , function ( ) {
14- return gulp . src ( [ 'observable-slim.js' , ' proxy.js'] )
15- . pipe ( babel ( {
16- presets : [ '@babel/preset-env' ]
17- , sourceType : "script" // prevent insertion of "use strict"
18- } ) )
19- . pipe ( useref ( ) )
20- // Minifies only if it's a JavaScript file
21- . pipe ( uglify ( ) )
22- //.on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); })
23- // Add .min to the minified filename
24- . pipe ( rename ( { suffix : '.min' } ) )
25- // Write it to the current directory
26- . pipe ( gulp . dest ( './' ) )
27- } ) ;
12+ const observableSlimPath = './observable-slim.js' ;
13+ const proxyPath = './ proxy.js';
14+ const testPath = './test/test.js' ;
15+ const coverallsCoverageDirPath = './coverage' ;
16+ const coverallsCoverageLcovPath = ` ${ coverallsCoverageDirPath } /lcov.info` ;
17+ const coverallsBinPath = './node_modules/coveralls/bin/coveralls.js' ;
18+ const coverallsCommand = ( process . platform === 'win32' )
19+ // Windows (we have to resolve the paths).
20+ ? `nyc report --reporter=lcov`
21+ + ` && type ${ path . resolve ( coverallsCoverageLcovPath ) } | ${ path . resolve ( coverallsBinPath ) } `
22+ + ` && rmdir /s /q ${ path . resolve ( coverallsCoverageDirPath ) } `
23+ // Linux.
24+ : `nyc report --reporter=lcov`
25+ + ` && cat ${ coverallsCoverageLcovPath } | ${ coverallsBinPath } `
26+ + ` && rm -rf ${ coverallsCoverageDirPath } ` ;
2827
29- gulp . task ( 'pre-test' , function ( ) {
30- return gulp . src ( [ 'observable-slim.js' ] )
31- // Covering files
32- . pipe ( istanbul ( ) )
33- // Force `require` to return covered files
34- . pipe ( istanbul . hookRequire ( ) ) ;
35- } ) ;
28+ gulp . task ( 'default' , ( done ) => gulp . src ( [ observableSlimPath , proxyPath ] )
29+ . pipe ( babel ( {
30+ presets : [ '@babel/preset-env' ] ,
31+ sourceType : 'script' // Prevent insertion of "use strict".
32+ } ) )
33+ . pipe ( useref ( ) )
34+ . pipe ( uglify ( ) )
35+ . pipe ( rename ( {
36+ suffix : '.min' // Add .min to the minified filename.
37+ } ) )
38+ . pipe ( gulp . dest ( './' ) ) // Write it to the current directory.
39+ . on ( 'end' , done )
40+ ) ;
3641
37- gulp . task ( 'test' , [ 'pre-test' ] , function ( ) {
38- return gulp . src ( [ 'test/test.js' ] )
39- . pipe ( mocha ( { compilers :babel } ) )
40- // Creating the reports after tests ran
41- . pipe ( istanbul . writeReports ( ) ) ;
42- } ) ;
42+ gulp . task ( 'test' , ( done ) => gulp . src ( [ testPath ] )
43+ . pipe ( mocha ( {
44+ compilers : babel
45+ } ) )
46+ . on ( 'end' , done )
47+ ) ;
4348
44- gulp . task ( 'lint' , function ( ) {
45- return gulp . src ( [ 'observable-slim.js' , 'proxy.js' , 'test/test.js' ] )
46- . pipe ( eslint ( ) )
47- . pipe ( eslint . format ( ) )
48- // Brick on failure to be super strict
49- . pipe ( eslint . failOnError ( ) ) ;
50- } ) ;
49+ gulp . task ( 'coveralls' , shell . task ( [ coverallsCommand ] ) ) ;
50+
51+ gulp . task ( 'lint' , ( done ) => gulp . src ( [ observableSlimPath , proxyPath , testPath ] )
52+ . pipe ( eslint ( ) )
53+ . pipe ( eslint . format ( ) )
54+ . pipe ( eslint . failOnError ( ) ) // Brick on failure to be super strict.
55+ . on ( 'end' , done )
56+ ) ;
0 commit comments