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 ;
23
22
24
23
help ( gulp , undefined ) ;
25
24
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" ;
29
30
30
31
gulp . 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
+ } ) ) ;
38
39
} ) ;
39
40
40
41
gulp . task ( "docs" , 'Compile documentation from src code' , function ( ) {
@@ -64,105 +65,109 @@ gulp.task('copydemotodocs', 'Copy the demo to the docs', function () {
64
65
} ) ;
65
66
66
67
gulp . 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
+ }
71
72
72
- done ( ) ;
73
- } ) ;
73
+ done ( ) ;
74
+ } ) ;
74
75
} ) ;
75
76
76
77
gulp . 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' ] ) ;
79
80
} ) ;
80
81
81
82
gulp . task ( 'lint' , 'Lints all files' , function ( done ) {
82
- runSequence (
83
- 'lint:ts' ,
84
- done
85
- ) ;
83
+ runSequence (
84
+ 'lint:ts' ,
85
+ done
86
+ ) ;
86
87
} ) ;
87
88
88
89
gulp . 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
+ ) ;
96
97
} ) ;
97
98
98
99
gulp . 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
+ ) ;
108
109
} ) ;
109
110
110
111
gulp . 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
+ ) ;
118
119
} ) ;
119
120
120
121
gulp . 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 ( '.' ) ) ;
124
125
} ) ;
125
126
126
127
gulp . 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' ) ) ;
130
131
} ) ;
131
132
132
133
gulp . task ( 'clean' , 'Cleans destination folder' , function ( done ) {
133
- return del ( [
134
- './dist/**/*'
135
- ] ) ;
134
+ return del ( [
135
+ './dist/**/*'
136
+ ] ) ;
136
137
} ) ;
137
138
138
139
gulp . task ( 'clean:docs' , 'Clean docs directory' , function ( ) {
139
- return del ( [
140
- 'docs/**/*' ,
141
- 'docs'
142
- ] ) ;
140
+ return del ( [
141
+ 'docs/**/*' ,
142
+ 'docs'
143
+ ] ) ;
143
144
} ) ;
144
145
145
146
gulp . 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 ( ) ) ;
151
152
} ) ;
152
153
153
154
gulp . task ( 'min:js' , 'Creates minified JavaScript file' , function ( ) {
154
155
webpackConfig . plugins = [
155
- new webpack . BannerPlugin ( webpackBanner )
156
+ new webpack . BannerPlugin ( {
157
+ banner : webpackBanner ,
158
+ raw : true
159
+ } )
156
160
] ;
157
-
161
+
158
162
// Create minified bundle without source map
159
163
webpackConfig . mode = 'production' ;
160
- webpackConfig . devtool = 'none'
164
+ webpackConfig . devtool = 'none' ;
161
165
162
166
return gulp . src ( [ './src/powerbi-client.ts' ] )
163
167
. pipe ( webpackStream ( {
164
168
config : webpackConfig
165
169
} ) )
170
+ . pipe ( header ( banner ) )
166
171
. pipe ( rename ( {
167
172
suffix : '.min'
168
173
} ) )
@@ -171,64 +176,67 @@ gulp.task('min:js', 'Creates minified JavaScript file', function () {
171
176
172
177
gulp . task ( 'compile:ts' , 'Compile typescript for powerbi-client library' , function ( ) {
173
178
webpackConfig . plugins = [
174
- new webpack . BannerPlugin ( webpackBanner )
179
+ new webpack . BannerPlugin ( {
180
+ banner : webpackBanner ,
181
+ raw : true
182
+ } )
175
183
] ;
176
184
webpackConfig . mode = "development" ;
177
185
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/' ) ) ;
181
189
} ) ;
182
190
183
191
gulp . 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
+ } ) ;
188
196
189
- var settings = {
197
+ const settings = {
190
198
out : "powerbi-client.js" ,
191
199
declaration : true ,
192
200
module : "system" ,
193
201
moduleResolution : "node"
194
202
} ;
195
203
196
- var tsResult = tsProject . src ( )
197
- . pipe ( ts ( settings ) ) ;
204
+ const tsResult = tsProject . src ( )
205
+ . pipe ( ts ( settings ) ) ;
198
206
199
- return tsResult . dts
200
- . pipe ( flatten ( ) )
201
- . pipe ( gulp . dest ( './dist' ) ) ;
207
+ return tsResult . dts
208
+ . pipe ( flatten ( ) )
209
+ . pipe ( gulp . dest ( './dist' ) ) ;
202
210
} ) ;
203
211
204
212
gulp . 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' ) ) ;
208
216
} ) ;
209
217
210
218
gulp . 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 ( ) ;
217
225
} )
218
- . on ( 'browser_register' , ( browser ) => {
219
- if ( argv . chrome ) {
226
+ . on ( 'browser_register' , ( browser ) => {
227
+ if ( argv . chrome ) {
220
228
browser . socket . on ( 'disconnect' , function ( reason ) {
221
229
if ( reason === "transport close" || reason === "transport error" ) {
222
- done ( 0 ) ;
223
- process . exit ( 0 ) ;
230
+ done ( 0 ) ;
231
+ process . exit ( 0 ) ;
224
232
}
225
- } ) ;
226
- }
227
- } )
228
- . start ( ) ;
233
+ } ) ;
234
+ }
235
+ } )
236
+ . start ( ) ;
229
237
if ( argv . chrome ) {
230
238
return watch ( [ "src/**/*.ts" , "test/**/*.ts" ] , function ( ) {
231
- runSequence ( 'compile:spec' ) ;
239
+ runSequence ( 'compile:spec' ) ;
232
240
} ) ;
233
241
}
234
- } ) ;
242
+ } ) ;
0 commit comments