1- var gulp = require ( 'gulp' ) ;
2- var ghPages = require ( 'gulp-gh-pages' ) ,
3- header = require ( 'gulp-header' ) ,
4- help = require ( 'gulp-help-four' ) ,
5- rename = require ( 'gulp-rename' ) ,
6- replace = require ( 'gulp-replace' ) ,
7- eslint = require ( "gulp-eslint" ) ,
8- ts = require ( 'gulp-typescript' ) ,
9- flatten = require ( 'gulp-flatten' ) ,
10- fs = require ( 'fs' ) ,
11- del = require ( 'del' ) ,
12- moment = require ( 'moment' ) ,
13- karma = require ( 'karma' ) ,
14- typedoc = require ( 'gulp-typedoc' ) ,
15- watch = require ( 'gulp-watch' ) ,
16- webpack = require ( 'webpack' ) ,
17- webpackStream = require ( 'webpack-stream' ) ,
18- webpackConfig = require ( './webpack.config' ) ,
19- webpackTestConfig = require ( './webpack.test.config' ) ,
20- runSequence = require ( 'gulp4-run-sequence' ) ,
21- argv = require ( 'yargs' ) . argv ;
22- ;
1+ const fs = require ( 'fs' ) ;
2+ const gulp = require ( 'gulp' ) ;
3+ const ghPages = require ( 'gulp-gh-pages' ) ;
4+ const header = require ( 'gulp-header' ) ;
5+ const help = require ( 'gulp-help-four' ) ;
6+ const rename = require ( 'gulp-rename' ) ;
7+ const replace = require ( 'gulp-replace' ) ;
8+ const eslint = require ( "gulp-eslint" ) ;
9+ const ts = require ( 'gulp-typescript' ) ;
10+ const flatten = require ( 'gulp-flatten' ) ;
11+ const del = require ( 'del' ) ;
12+ const moment = require ( 'moment' ) ;
13+ const karma = require ( 'karma' ) ;
14+ const typedoc = require ( 'gulp-typedoc' ) ;
15+ const watch = require ( 'gulp-watch' ) ;
16+ const webpack = require ( 'webpack' ) ;
17+ const webpackStream = require ( 'webpack-stream' ) ;
18+ const runSequence = require ( 'gulp4-run-sequence' ) ;
19+ const webpackConfig = require ( './webpack.config' ) ;
20+ const webpackTestConfig = require ( './webpack.test.config' ) ;
21+ const argv = require ( 'yargs' ) . argv ;
2322
2423help ( gulp , undefined ) ;
2524
26- var package = require ( './package.json' ) ;
27- var webpackBanner = package . name + " v" + package . version + " | (c) 2016 Microsoft Corporation " + package . license ;
28- var gulpBanner = "/*! " + webpackBanner + " */\n" ;
25+ const package = require ( './package.json' ) ;
26+ const webpackBanner = "// " + package . name + " v" + package . version + "\n"
27+ + "// Copyright (c) Microsoft Corporation.\n"
28+ + "// Licensed under the MIT License." ;
29+ const banner = webpackBanner + "\n" ;
2930
3031gulp . task ( 'ghpages' , 'Deploy documentation to gh-pages' , [ 'nojekyll' ] , function ( ) {
31- return gulp . src ( [ './docs/**/*' ] , {
32- dot : true
33- } )
34- . pipe ( ghPages ( {
35- force : true ,
36- message : 'Update ' + moment ( ) . format ( 'LLL' )
37- } ) ) ;
32+ return gulp . src ( [ './docs/**/*' ] , {
33+ dot : true
34+ } )
35+ . pipe ( ghPages ( {
36+ force : true ,
37+ message : 'Update ' + moment ( ) . format ( 'LLL' )
38+ } ) ) ;
3839} ) ;
3940
4041gulp . task ( "docs" , 'Compile documentation from src code' , function ( ) {
@@ -64,105 +65,109 @@ gulp.task('copydemotodocs', 'Copy the demo to the docs', function () {
6465} ) ;
6566
6667gulp . task ( 'nojekyll' , 'Add .nojekyll file to docs directory' , function ( done ) {
67- fs . writeFile ( './docs/.nojekyll' , '' , function ( error ) {
68- if ( error ) {
69- throw error ;
70- }
68+ fs . writeFile ( './docs/.nojekyll' , '' , function ( error ) {
69+ if ( error ) {
70+ throw error ;
71+ }
7172
72- done ( ) ;
73- } ) ;
73+ done ( ) ;
74+ } ) ;
7475} ) ;
7576
7677gulp . task ( 'watch' , 'Watches for changes' , [ 'lint' ] , function ( ) {
77- gulp . watch ( [ './src/**/*.ts' , './test/**/*.ts' ] , [ 'lint:ts' ] ) ;
78- gulp . watch ( [ './test/**/*.ts' ] , [ 'test' ] ) ;
78+ gulp . watch ( [ './src/**/*.ts' , './test/**/*.ts' ] , [ 'lint:ts' ] ) ;
79+ gulp . watch ( [ './test/**/*.ts' ] , [ 'test' ] ) ;
7980} ) ;
8081
8182gulp . task ( 'lint' , 'Lints all files' , function ( done ) {
82- runSequence (
83- 'lint:ts' ,
84- done
85- ) ;
83+ runSequence (
84+ 'lint:ts' ,
85+ done
86+ ) ;
8687} ) ;
8788
8889gulp . task ( 'test' , 'Runs all tests' , function ( done ) {
89- runSequence (
90- 'lint:ts' ,
91- 'config' ,
92- 'compile:spec' ,
93- 'test:js' ,
94- done
95- ) ;
90+ runSequence (
91+ 'lint:ts' ,
92+ 'config' ,
93+ 'compile:spec' ,
94+ 'test:js' ,
95+ done
96+ ) ;
9697} ) ;
9798
9899gulp . task ( 'build' , 'Runs a full build' , function ( done ) {
99- runSequence (
100- 'lint:ts' ,
101- 'clean' ,
102- 'config' ,
103- [ 'compile:ts' , 'compile:dts' ] ,
104- 'min:js' ,
105- 'header' ,
106- done
107- ) ;
100+ runSequence (
101+ 'lint:ts' ,
102+ 'clean' ,
103+ 'config' ,
104+ [ 'compile:ts' , 'compile:dts' ] ,
105+ 'min:js' ,
106+ 'header' ,
107+ done
108+ ) ;
108109} ) ;
109110
110111gulp . task ( 'build:docs' , 'Build docs folder' , function ( done ) {
111- return runSequence (
112- 'clean:docs' ,
113- 'docs' ,
114- 'nojekyll' ,
115- 'copydemotodocs' ,
116- done
117- ) ;
112+ return runSequence (
113+ 'clean:docs' ,
114+ 'docs' ,
115+ 'nojekyll' ,
116+ 'copydemotodocs' ,
117+ done
118+ ) ;
118119} ) ;
119120
120121gulp . task ( 'config' , 'Update config version with package version' , function ( ) {
121- return gulp . src ( [ './src/config.ts' ] , { base : "./" } )
122- . pipe ( replace ( / v e r s i o n : ' ( [ ^ ' ] + ) ' / , `version: '${ package . version } '` ) )
123- . pipe ( gulp . dest ( '.' ) ) ;
122+ return gulp . src ( [ './src/config.ts' ] , { base : "./" } )
123+ . pipe ( replace ( / v e r s i o n : ' ( [ ^ ' ] + ) ' / , `version: '${ package . version } '` ) )
124+ . pipe ( gulp . dest ( '.' ) ) ;
124125} ) ;
125126
126127gulp . task ( 'header' , 'Add header to distributed files' , function ( ) {
127- return gulp . src ( [ './dist/*.d.ts' ] )
128- . pipe ( header ( gulpBanner ) )
129- . pipe ( gulp . dest ( './dist' ) ) ;
128+ return gulp . src ( [ './dist/*.d.ts' ] )
129+ . pipe ( header ( banner ) )
130+ . pipe ( gulp . dest ( './dist' ) ) ;
130131} ) ;
131132
132133gulp . task ( 'clean' , 'Cleans destination folder' , function ( done ) {
133- return del ( [
134- './dist/**/*'
135- ] ) ;
134+ return del ( [
135+ './dist/**/*'
136+ ] ) ;
136137} ) ;
137138
138139gulp . task ( 'clean:docs' , 'Clean docs directory' , function ( ) {
139- return del ( [
140- 'docs/**/*' ,
141- 'docs'
142- ] ) ;
140+ return del ( [
141+ 'docs/**/*' ,
142+ 'docs'
143+ ] ) ;
143144} ) ;
144145
145146gulp . task ( 'lint:ts' , 'Lints all TypeScript' , function ( ) {
146- return gulp . src ( [ './src/**/*.ts' , './test/**/*.ts' ] )
147- . pipe ( eslint ( {
148- formatter : "verbose"
149- } ) )
150- . pipe ( eslint . format ( ) ) ;
147+ return gulp . src ( [ './src/**/*.ts' , './test/**/*.ts' ] )
148+ . pipe ( eslint ( {
149+ formatter : "verbose"
150+ } ) )
151+ . pipe ( eslint . format ( ) ) ;
151152} ) ;
152153
153154gulp . task ( 'min:js' , 'Creates minified JavaScript file' , function ( ) {
154155 webpackConfig . plugins = [
155- new webpack . BannerPlugin ( webpackBanner )
156+ new webpack . BannerPlugin ( {
157+ banner : webpackBanner ,
158+ raw : true
159+ } )
156160 ] ;
157-
161+
158162 // Create minified bundle without source map
159163 webpackConfig . mode = 'production' ;
160- webpackConfig . devtool = 'none'
164+ webpackConfig . devtool = 'none' ;
161165
162166 return gulp . src ( [ './src/powerbi-client.ts' ] )
163167 . pipe ( webpackStream ( {
164168 config : webpackConfig
165169 } ) )
170+ . pipe ( header ( banner ) )
166171 . pipe ( rename ( {
167172 suffix : '.min'
168173 } ) )
@@ -171,64 +176,67 @@ gulp.task('min:js', 'Creates minified JavaScript file', function () {
171176
172177gulp . task ( 'compile:ts' , 'Compile typescript for powerbi-client library' , function ( ) {
173178 webpackConfig . plugins = [
174- new webpack . BannerPlugin ( webpackBanner )
179+ new webpack . BannerPlugin ( {
180+ banner : webpackBanner ,
181+ raw : true
182+ } )
175183 ] ;
176184 webpackConfig . mode = "development" ;
177185
178- return gulp . src ( [ './src/powerbi-client.ts' ] )
179- . pipe ( webpackStream ( webpackConfig ) )
180- . pipe ( gulp . dest ( 'dist/' ) ) ;
186+ return gulp . src ( [ './src/powerbi-client.ts' ] )
187+ . pipe ( webpackStream ( webpackConfig ) )
188+ . pipe ( gulp . dest ( 'dist/' ) ) ;
181189} ) ;
182190
183191gulp . task ( 'compile:dts' , 'Generate one dts file from modules' , function ( ) {
184- var tsProject = ts . createProject ( 'tsconfig.json' , {
185- declaration : true ,
186- sourceMap : false
187- } ) ;
192+ const tsProject = ts . createProject ( 'tsconfig.json' , {
193+ declaration : true ,
194+ sourceMap : false
195+ } ) ;
188196
189- var settings = {
197+ const settings = {
190198 out : "powerbi-client.js" ,
191199 declaration : true ,
192200 module : "system" ,
193201 moduleResolution : "node"
194202 } ;
195203
196- var tsResult = tsProject . src ( )
197- . pipe ( ts ( settings ) ) ;
204+ const tsResult = tsProject . src ( )
205+ . pipe ( ts ( settings ) ) ;
198206
199- return tsResult . dts
200- . pipe ( flatten ( ) )
201- . pipe ( gulp . dest ( './dist' ) ) ;
207+ return tsResult . dts
208+ . pipe ( flatten ( ) )
209+ . pipe ( gulp . dest ( './dist' ) ) ;
202210} ) ;
203211
204212gulp . task ( 'compile:spec' , 'Compile spec tests' , function ( ) {
205- return gulp . src ( [ './test/test.spec.ts' ] )
206- . pipe ( webpackStream ( webpackTestConfig ) )
207- . pipe ( gulp . dest ( './tmp' ) ) ;
213+ return gulp . src ( [ './test/test.spec.ts' ] )
214+ . pipe ( webpackStream ( webpackTestConfig ) )
215+ . pipe ( gulp . dest ( './tmp' ) ) ;
208216} ) ;
209217
210218gulp . task ( 'test:js' , 'Run js tests' , function ( done ) {
211- new karma . Server ( {
212- configFile : __dirname + '/karma.conf.js' ,
213- singleRun : argv . watch ? false : true ,
214- captureTimeout : argv . timeout || 60000
215- } , function ( ) {
216- done ( ) ;
219+ new karma . Server ( {
220+ configFile : __dirname + '/karma.conf.js' ,
221+ singleRun : argv . watch ? false : true ,
222+ captureTimeout : argv . timeout || 60000
223+ } , function ( ) {
224+ done ( ) ;
217225 } )
218- . on ( 'browser_register' , ( browser ) => {
219- if ( argv . chrome ) {
226+ . on ( 'browser_register' , ( browser ) => {
227+ if ( argv . chrome ) {
220228 browser . socket . on ( 'disconnect' , function ( reason ) {
221229 if ( reason === "transport close" || reason === "transport error" ) {
222- done ( 0 ) ;
223- process . exit ( 0 ) ;
230+ done ( 0 ) ;
231+ process . exit ( 0 ) ;
224232 }
225- } ) ;
226- }
227- } )
228- . start ( ) ;
233+ } ) ;
234+ }
235+ } )
236+ . start ( ) ;
229237 if ( argv . chrome ) {
230238 return watch ( [ "src/**/*.ts" , "test/**/*.ts" ] , function ( ) {
231- runSequence ( 'compile:spec' ) ;
239+ runSequence ( 'compile:spec' ) ;
232240 } ) ;
233241 }
234- } ) ;
242+ } ) ;
0 commit comments