@@ -6,14 +6,14 @@ var nPath = require('path'),
66 runSequence = require ( 'run-sequence' ) ,
77 less = require ( 'gulp-less' ) ,
88 changed = require ( 'gulp-changed' ) ,
9- Builder = require ( 'systemjs-builder' ) ,
109 vinylPaths = require ( 'vinyl-paths' ) ,
1110 del = require ( 'del' ) ,
1211 ngAnnotate = require ( 'gulp-ng-annotate' ) ,
1312 rollup = require ( 'rollup' ) ,
1413 rename = require ( 'gulp-rename' ) ,
1514 uglify = require ( 'gulp-uglify' ) ,
16- header = require ( 'gulp-header' ) ;
15+ header = require ( 'gulp-header' ) ,
16+ gutils = require ( 'gulp-util' ) ;
1717
1818var KarmaServer = require ( 'karma' ) . Server ;
1919
@@ -70,13 +70,13 @@ gulp.task('compile', function (callback) {
7070 return runSequence (
7171 [ 'less' , 'es6' ] ,
7272 callback
73- ) ;
73+ ) ;
7474} ) ;
7575
7676//
7777// Dev Mode Tasks
7878// ------------------------------------------------------------
79- gulp . task ( 'serve' , [ 'compile' ] , function ( done ) {
79+ gulp . task ( 'serve' , [ 'compile' ] , function ( callback ) {
8080 browserSync ( {
8181 open : false ,
8282 port : 9000 ,
@@ -87,7 +87,7 @@ gulp.task('serve', ['compile'], function (done) {
8787 next ( ) ;
8888 }
8989 }
90- } , done ) ;
90+ } , callback ) ;
9191} ) ;
9292
9393gulp . task ( 'watch' , [ 'serve' ] , function ( ) {
@@ -131,89 +131,86 @@ gulp.task('release-build', function () {
131131 } ) ;
132132} ) ;
133133
134- gulp . task ( 'release-umd' , function ( ) {
134+ const RELEASE = {
135+ UMD : {
136+ EXTENSION : '' ,
137+ PLUGINS : [ 'transform-es2015-modules-umd' ]
138+ } ,
139+ COMMON : {
140+ EXTENSION : '.cjs' ,
141+ PLUGINS : [ 'transform-es2015-modules-commonjs' ]
142+ } ,
143+ MIN : {
144+ EXTENSION : '.min' ,
145+ PLUGINS : [ 'transform-es2015-modules-umd' ]
146+ }
147+ } ;
148+
149+ function _releaser ( RELEASE ) {
135150 return gulp . src ( 'release/dataTable.es6.js' )
136151 . pipe ( babel ( {
137- plugins : [
138- 'transform-es2015-modules-umd'
139- ] ,
152+ plugins : RELEASE . PLUGINS ,
140153 moduleId : 'DataTable'
141154 } ) )
142155 . pipe ( ngAnnotate ( {
143156 gulpWarnings : false
144157 } ) )
158+ . pipe ( uglify ( ) )
145159 . pipe ( header ( banner , { pkg : pkg } ) )
146- . pipe ( rename ( ' dataTable.js' ) )
160+ . pipe ( rename ( ` dataTable${ RELEASE . EXTENSION } .js` ) )
147161 . pipe ( gulp . dest ( 'release/' ) )
162+ }
163+
164+ gulp . task ( 'release-umd' , function ( ) {
165+ return _releaser ( RELEASE . UMD )
148166} ) ;
149167
150168gulp . task ( 'release-common' , function ( ) {
151- return gulp . src ( 'release/dataTable.es6.js' )
152- . pipe ( babel ( {
153- plugins : [
154- 'transform-es2015-modules-commonjs'
155- ] ,
156- moduleId : 'DataTable'
157- } ) )
158- . pipe ( ngAnnotate ( {
159- gulpWarnings : false
160- } ) )
161- . pipe ( header ( banner , { pkg : pkg } ) )
162- . pipe ( rename ( 'dataTable.cjs.js' ) )
163- . pipe ( gulp . dest ( 'release/' ) )
169+ return _releaser ( RELEASE . COMMON )
164170} ) ;
165171
166172gulp . task ( 'release-es6-min' , function ( ) {
167- return gulp . src ( 'release/dataTable.es6.js' )
168- . pipe ( babel ( {
169- plugins : [
170- 'transform-es2015-modules-umd'
171- ] ,
172- moduleId : 'DataTable'
173- } ) )
174- . pipe ( ngAnnotate ( {
175- gulpWarnings : false
176- } ) )
177- . pipe ( uglify ( ) )
178- . pipe ( header ( banner , { pkg : pkg } ) )
179- . pipe ( rename ( 'dataTable.min.js' ) )
180- . pipe ( gulp . dest ( 'release/' ) )
173+ return _releaser ( RELEASE . MIN )
181174} ) ;
182175
183-
184176//
185177// Test Tasks
186178// ------------------------------------------------------------
187-
188179function _startKarma ( callback , singleRun ) {
189- var server = new KarmaServer ( {
180+ new KarmaServer ( {
190181 configFile : nPath . join ( __dirname , 'test/karma.conf.js' ) ,
191- singleRun : singleRun
192- } , ( ) => (
193- callback ( )
194- ) ) ;
195-
196- server . start ( ) ;
182+ singleRun
183+ } , ( errors ) => {
184+ if ( errors === 0 ) {
185+ callback ( ) ;
186+ } else {
187+ callback ( new gutils . PluginError ( 'karma' , {
188+ message : 'Unit test(s) failed.'
189+ } ) ) ;
190+ }
191+ } ) . start ( ) ;
197192}
198193
199- gulp . task ( 'unit' , [ 'compile' ] , function ( callback ) {
194+ gulp . task ( 'unit' , function ( callback ) {
200195 _startKarma ( callback , true ) ;
201196} ) ;
202197
203- gulp . task ( 'unit:watch' , [ 'compile' ] , function ( callback ) {
198+ gulp . task ( 'unit:watch' , function ( callback ) {
204199 _startKarma ( callback , false ) ;
205200} ) ;
206201
207202gulp . task ( 'e2e' , [ 'serve' ] , function ( callback ) {
208203 gulp . src ( [ 'src/**/*e2e.js' ] )
209204 . pipe ( protractorAngular ( {
210205 configFile : 'test/protractor.conf.js' ,
211- debug : false ,
206+ debug : true ,
212207 autoStartStopServer : true
213208 } ) )
214- . on ( 'error' , ( e ) => (
215- console . log ( e )
216- ) )
209+ . on ( 'error' , ( e ) => {
210+ callback ( new gutils . PluginError ( 'protractor' , {
211+ message : e
212+ } ) ) ;
213+ } )
217214 . on ( 'end' , callback ) ;
218215} ) ;
219216
0 commit comments