@@ -165,18 +165,17 @@ function getTmpJsPath(locale) {
165
165
* @return {!Array<string> } The list of generated task names.
166
166
*/
167
167
function repeatTaskForAllLocales ( taskName , dependencies , operation ) {
168
- const tasks = [ ] ;
169
- ALL_LOCALES . forEach ( ( locale ) => {
168
+ return ALL_LOCALES . map ( ( locale ) => {
170
169
// Convert build-js-$ to build-js-fr, for example.
171
170
const replaceTokens = ( name ) => name . replace ( / \$ / g, locale ) ;
172
-
173
171
const localeTaskName = replaceTokens ( taskName ) ;
174
- tasks . push ( localeTaskName ) ;
175
172
const localeDependencies = dependencies . map ( replaceTokens ) ;
176
-
177
- gulp . task ( localeTaskName , localeDependencies , ( ) => operation ( locale ) ) ;
173
+ gulp . task ( localeTaskName , gulp . series (
174
+ gulp . parallel ( ...localeDependencies ) ,
175
+ ( ) => operation ( locale ) ,
176
+ ) ) ;
177
+ return localeTaskName ;
178
178
} ) ;
179
- return tasks ;
180
179
}
181
180
182
181
/**
@@ -211,12 +210,6 @@ function buildFirebaseUiJs(locale) {
211
210
] , getTmpJsPath ( locale ) , flags ) ;
212
211
}
213
212
214
- // Builds the core FirebaseUI JS. Generates the gulp tasks
215
- // build-firebaseui-js-de, build-firebaseui-js-fr, etc.
216
- repeatTaskForAllLocales ( 'build-firebaseui-js-$' ,
217
- [ 'build-externs' , 'build-ts' , 'build-soy' ] ,
218
- buildFirebaseUiJs ) ;
219
-
220
213
/**
221
214
* Concatenates the core FirebaseUI JS with its external dependencies, and
222
215
* cleans up comments and whitespace in the dependencies.
@@ -236,12 +229,6 @@ function concatWithDeps(locale, outBaseName, outputWrapper) {
236
229
} ) ;
237
230
}
238
231
239
- // Bundles the FirebaseUI JS with its dependencies for all locales.
240
- // Generates the gulp tasks build-js-de, build-js-fr, etc.
241
- const buildJsTasks = repeatTaskForAllLocales (
242
- 'build-js-$' , [ 'build-firebaseui-js-$' ] ,
243
- ( locale ) => concatWithDeps ( locale , 'firebaseui' , OUTPUT_WRAPPER ) ) ;
244
-
245
232
/**
246
233
* Creates the default FirebaseUI binaries for basic usage without
247
234
* localization. For example, it copies firebaseui__en.js to firebaseui.js.
@@ -264,22 +251,43 @@ gulp.task('build-ts',
264
251
gulp . task ( 'build-externs' ,
265
252
( ) => gulp . src ( EXTERNS_FILES ) . pipe ( gulp . dest ( `${ DEST_DIR } /externs/` ) ) ) ;
266
253
267
- // Builds the final JS file for all supported languages.
268
- gulp . task ( 'build-all-js' , buildJsTasks , ( ) => makeDefaultFile ( 'firebaseui' ) ) ;
269
-
270
- // Builds the final JS file for the default language.
271
- gulp . task ( 'build-js' , [ 'build-js-' + DEFAULT_LOCALE ] ,
272
- ( ) => makeDefaultFile ( 'firebaseui' ) ) ;
254
+ // Builds the core FirebaseUI JS. Generates the gulp tasks
255
+ // build-firebaseui-js-de, build-firebaseui-js-fr, etc.
256
+ repeatTaskForAllLocales (
257
+ 'build-firebaseui-js-$' ,
258
+ [ 'build-externs' , 'build-ts' , 'build-soy' ] ,
259
+ buildFirebaseUiJs ,
260
+ ) ;
273
261
274
262
// Bundles the FirebaseUI JS with its dependencies as a NPM module. This builds
275
263
// the NPM module for all languages.
276
264
repeatTaskForAllLocales (
277
265
'build-npm-$' , [ 'build-firebaseui-js-$' ] ,
278
266
( locale ) => concatWithDeps ( locale , 'npm' , NPM_MODULE_WRAPPER ) ) ;
279
267
268
+ // Bundles the FirebaseUI JS with its dependencies for all locales.
269
+ // Generates the gulp tasks build-js-de, build-js-fr, etc.
270
+ const buildJsTasks = repeatTaskForAllLocales (
271
+ 'build-js-$' , [ 'build-firebaseui-js-$' ] ,
272
+ ( locale ) => concatWithDeps ( locale , 'firebaseui' , OUTPUT_WRAPPER ) ) ;
273
+
274
+ // Builds the final JS file for the default language.
275
+ gulp . task ( 'build-js' , gulp . series (
276
+ 'build-js-' + DEFAULT_LOCALE ,
277
+ ( ) => makeDefaultFile ( 'firebaseui' ) ,
278
+ ) ) ;
279
+
280
+ // Builds the final JS file for all supported languages.
281
+ gulp . task ( 'build-all-js' , gulp . series (
282
+ gulp . parallel ( ...buildJsTasks ) ,
283
+ ( ) => makeDefaultFile ( 'firebaseui' ) ,
284
+ ) ) ;
285
+
280
286
// Builds the NPM module for the default language.
281
- gulp . task ( 'build-npm' , [ 'build-npm-' + DEFAULT_LOCALE ] ,
282
- ( ) => makeDefaultFile ( 'npm' ) ) ;
287
+ gulp . task ( 'build-npm' , gulp . series (
288
+ 'build-npm-' + DEFAULT_LOCALE ,
289
+ ( ) => makeDefaultFile ( 'npm' ) ,
290
+ ) ) ;
283
291
284
292
/**
285
293
* Builds the CSS for FirebaseUI.
@@ -326,17 +334,19 @@ gulp.task('serve', () => {
326
334
gulp . task ( 'clean' , ( ) => fse . remove ( TMP_DIR ) ) ;
327
335
328
336
// Executes the basic tasks for the default language.
329
- gulp . task ( 'default' ,
330
- [
331
- 'build-externs' , 'build-ts' , 'build-js' , 'build-npm' , 'build-css' ,
332
- 'build-css-rtl'
333
- ] ,
334
- ( ) => gulp . start ( 'clean' ) ) ;
337
+ gulp . task ( 'default' , gulp . series (
338
+ gulp . parallel (
339
+ 'build-externs' , 'build-ts' , 'build-js' ,
340
+ 'build-npm' , 'build-css' , 'build-css-rtl' ,
341
+ ) ,
342
+ 'clean' ,
343
+ ) ) ;
335
344
336
345
// Builds everything (JS for all languages, both LTR and RTL CSS).
337
- gulp . task ( 'build-all' ,
338
- [
339
- 'build-externs' , 'build-ts' , 'build-all-js' , 'build-npm' , 'build-css' ,
340
- 'build-css-rtl'
341
- ] ,
342
- ( ) => gulp . start ( 'clean' ) ) ;
346
+ gulp . task ( 'build-all' , gulp . series (
347
+ gulp . parallel (
348
+ 'build-externs' , 'build-ts' , 'build-all-js' ,
349
+ 'build-npm' , 'build-css' , 'build-css-rtl' ,
350
+ ) ,
351
+ 'clean' ,
352
+ ) ) ;
0 commit comments