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 gulp = require ( 'gulp' ) ;
2
+ const uglify = require ( 'gulp-uglify-es' ) . default ;
3
+ const useref = require ( 'gulp-useref' ) ;
4
+ const rename = require ( 'gulp-rename' ) ;
5
+ const mocha = require ( 'gulp-mocha' ) ;
6
+ const babel = require ( 'gulp-babel' ) ;
7
+ const eslint = require ( 'gulp-eslint' ) ;
8
+ const shell = require ( 'gulp-shell' ) ;
12
9
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
- } ) ;
10
+ const observableSlimPath = './observable-slim.js' ;
11
+ const proxyPath = './proxy.js' ;
12
+ const testPath = './test/test.js' ;
13
+ const coverallsCoverageDirPath = './coverage' ;
14
+ const coverallsCoverageLcovPath = `${ coverallsCoverageDirPath } /lcov.info` ;
15
+ const coverallsBinPath = './node_modules/coveralls/bin/coveralls.js' ;
28
16
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
- } ) ;
17
+ gulp . task ( 'default' , ( done ) => gulp . src ( [ observableSlimPath , proxyPath ] )
18
+ . pipe ( babel ( {
19
+ presets : [ '@babel/preset-env' ] ,
20
+ sourceType : 'script' // Prevent insertion of "use strict".
21
+ } ) )
22
+ . pipe ( useref ( ) )
23
+ . pipe ( uglify ( ) )
24
+ . pipe ( rename ( {
25
+ suffix : '.min' // Add .min to the minified filename.
26
+ } ) )
27
+ . pipe ( gulp . dest ( './' ) ) // Write it to the current directory.
28
+ . on ( 'end' , done )
29
+ ) ;
36
30
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
- } ) ;
31
+ gulp . task ( 'test' , ( done ) => gulp . src ( [ testPath ] )
32
+ . pipe ( mocha ( {
33
+ compilers : babel
34
+ } ) )
35
+ . on ( 'end' , done )
36
+ ) ;
43
37
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
- } ) ;
38
+ gulp . task ( 'coveralls' , shell . task ( [
39
+ `nyc report --reporter=lcov && cat ${ coverallsCoverageLcovPath } | ${ coverallsBinPath } && rm -rf ${ coverallsCoverageDirPath } `
40
+ ] ) ) ;
41
+
42
+ gulp . task ( 'lint' , ( done ) => gulp . src ( [ observableSlimPath , proxyPath , testPath ] )
43
+ . pipe ( eslint ( ) )
44
+ . pipe ( eslint . format ( ) )
45
+ . pipe ( eslint . failOnError ( ) ) // Brick on failure to be super strict.
46
+ . on ( 'end' , done )
47
+ ) ;
0 commit comments