@@ -17,9 +17,13 @@ var rename = require('gulp-rename');
1717var webpack = require ( 'webpack' ) ;
1818const childProcess = require ( 'child_process' ) ;
1919const rollup = require ( 'rollup' ) ;
20+ const nodeResolve = require ( 'rollup-plugin-node-resolve' ) ;
21+ const commonjs = require ( 'rollup-plugin-commonjs' ) ;
2022
2123import AngularServiceWorkerPlugin from './src/webpack' ;
2224
25+ declare var __dirname ;
26+
2327let assign = ( dest , ...sources ) => {
2428 sources . forEach ( source => {
2529 Object . keys ( source ) . forEach ( key => {
@@ -50,6 +54,17 @@ var umdCompilerConfig = assign({},
5054 }
5155) ;
5256
57+
58+ class RxRewriter {
59+ resolveId ( id , from ) {
60+ if ( id . startsWith ( 'rxjs/' ) ) {
61+ return `${ __dirname } /node_modules/rxjs-es/${ id . split ( 'rxjs/' ) . pop ( ) } .js` ;
62+ }
63+ }
64+ }
65+
66+
67+
5368gulp . task ( 'default' , [ 'worker:build' ] ) ;
5469
5570gulp . task ( 'clean' , ( done ) => {
@@ -65,14 +80,20 @@ gulp.task('prepublish', done => runSequence(
6580
6681gulp . task ( 'build' , done => runSequence (
6782 'clean' ,
83+ 'task:build' ,
84+ done
85+ ) ) ;
86+
87+ gulp . task ( 'task:build' , done => runSequence (
6888 [
6989 'task:companion:build' ,
7090 'task:webpack:build' ,
7191 'task:worker:build' ,
72- 'task:package:copy_deploy ' ,
92+ 'task:package:deploy ' ,
7393 ] ,
94+ 'task:bundles:deploy' ,
7495 done
75- ) ) ;
96+ ) )
7697
7798gulp . task ( 'worker:build' , done => runSequence (
7899 'clean' ,
@@ -101,7 +122,7 @@ gulp.task('task:webpack_test:pack', done => {
101122
102123gulp . task ( 'task:webpack:build' , done => runSequence (
103124 'task:webpack:compile' ,
104- 'task:webpack:copy_deploy ' ,
125+ 'task:webpack:deploy ' ,
105126 done
106127) ) ;
107128
@@ -110,7 +131,7 @@ gulp.task('task:webpack:compile', done => {
110131 done ( ) ;
111132} ) ;
112133
113- gulp . task ( 'task:webpack:copy_deploy ' , ( ) => gulp
134+ gulp . task ( 'task:webpack:deploy ' , ( ) => gulp
114135 . src ( [
115136 'tmp/es5/src/webpack/**/*.d.ts' ,
116137 'tmp/es5/src/webpack/**/*.js' ,
@@ -124,7 +145,7 @@ gulp.task('task:companion:build', done => runSequence(
124145 'task:companion:compile_esm' ,
125146 'task:companion:bundle' ,
126147 'task:companion:minify' ,
127- 'task:companion:copy_deploy ' ,
148+ 'task:companion:deploy ' ,
128149 done ) ) ;
129150
130151gulp . task ( 'task:companion:compile_esm' , done => {
@@ -138,7 +159,7 @@ gulp.task('task:companion:bundle', done => {
138159 } ) . then ( bundle => bundle . write ( {
139160 format : 'umd' ,
140161 moduleName : 'ng.serviceWorker' ,
141- dest : 'tmp/es5/src/companion/ bundles/service-worker.umd.js' ,
162+ dest : 'tmp/es5/bundles/service-worker.umd.js' ,
142163 globals : {
143164 '@angular/core' : 'ng.core' ,
144165 'base64-js' : 'Base64Js' ,
@@ -174,36 +195,45 @@ gulp.task('task:companion:bundle', done => {
174195
175196gulp . task ( 'task:companion:minify' , ( ) => gulp
176197 . src ( [
177- 'tmp/es5/src/companion/ bundles/service-worker.umd.js'
198+ 'tmp/es5/bundles/service-worker.umd.js'
178199 ] , { base : 'tmp' } )
179200 . pipe ( uglify ( ) )
180201 . pipe ( rename ( { suffix : '.min' } ) )
181202 . pipe ( gulp . dest ( 'tmp' ) ) ) ;
182203
183204gulp . task ( 'task:worker:build' , done =>
184205 runSequence (
185- 'task:worker:compile_system ' ,
206+ 'task:worker:compile ' ,
186207 'task:worker:bundle' ,
187208 'task:worker:minify' ,
188- 'task:worker:copy_deploy ' ,
209+ 'task:worker:deploy ' ,
189210 done
190211 ) ) ;
191212
192- gulp . task ( 'task:worker:compile_system' , ( ) => {
193- const stream = gulp
194- . src ( [
195- 'src/worker/**/*.ts' ,
196- 'src/typings/**/*.d.ts' ,
197- 'typings/globals/**/*.d.ts' ,
198- 'typings/modules/**/*.d.ts'
199- ] )
200- . pipe ( ts ( systemCompilerConfig ) ) ;
201- return merge ( [
202- stream . js . pipe ( gulp . dest ( systemCompilerConfig . outDir ) ) ,
203- stream . dts . pipe ( gulp . dest ( systemCompilerConfig . outDir ) )
204- ] ) ;
213+ gulp . task ( 'task:worker:compile' , done => {
214+ childProcess . execSync ( 'node_modules/.bin/tsc -p tsconfig.worker.json' ) ;
215+ done ( ) ;
205216} ) ;
206217
218+ gulp . task ( 'task:worker:bundle' , done => rollup
219+ . rollup ( {
220+ entry : 'tmp/esm/src/worker/browser_entry.js' ,
221+ plugins : [
222+ // TODO(alxhub): Switch to rxjs-es when export bug is fixed.
223+ nodeResolve ( { jsnext : true , main : true } ) ,
224+ commonjs ( {
225+ include : 'node_modules/**' ,
226+ namedExports : {
227+ 'node_modules/jshashes/hashes.js' : [ 'SHA1' ]
228+ }
229+ } )
230+ ]
231+ } )
232+ . then ( bundle => bundle . write ( {
233+ format : 'iife' ,
234+ dest : 'tmp/es5/bundles/worker.js' ,
235+ } ) ) ) ;
236+
207237gulp . task ( 'task:worker:compile_common' , ( ) => {
208238 const stream = gulp
209239 . src ( [
@@ -219,53 +249,36 @@ gulp.task('task:worker:compile_common', () => {
219249 ] ) ;
220250} ) ;
221251
222- gulp . task ( 'task:companion:copy_deploy ' , ( ) => gulp
252+ gulp . task ( 'task:companion:deploy ' , ( ) => gulp
223253 . src ( [
224- 'tmp/es5/src/companion/**/*.js' ,
225254 'tmp/esm/src/companion/**/*.d.ts' ,
226255 'tmp/esm/src/companion/**/*.js' ,
227256 'tmp/esm/src/companion/**/*.js.map' ,
228257 'tmp/esm/src/companion/**/*.metadata.json' ,
229258 ] )
230259 . pipe ( gulp . dest ( 'dist' ) ) ) ;
231260
232- gulp . task ( 'task:worker:bundle' , done => {
233- var builder = new Builder ( ) ;
234- builder . config ( {
235- map : {
236- 'worker' : 'tmp/es5/src/worker' ,
237- 'rxjs' : 'node_modules/rxjs' ,
238- 'jshashes' : 'node_modules/jshashes/hashes.js'
239- } ,
240- packages : {
241- 'worker' : {
242- defaultExtension : 'js'
243- } ,
244- 'rxjs' : {
245- defaultExtension : 'js'
246- }
247- }
248- } ) ;
249- builder
250- . buildStatic ( 'worker/browser_entry' , 'tmp/es5/worker.js' )
251- . then ( ( ) => done ( ) ) ;
252- } ) ;
253-
254261gulp . task ( 'task:worker:minify' , ( ) => gulp
255262 . src ( [
256- 'tmp/es5/worker.js'
257- ] , { base : 'tmp/es5 ' } )
263+ 'tmp/es5/bundles/ worker.js'
264+ ] , { base : 'tmp' } )
258265 . pipe ( uglify ( ) )
259266 . pipe ( rename ( { suffix : '.min' } ) )
260- . pipe ( gulp . dest ( 'tmp/es5 ' ) ) ) ;
267+ . pipe ( gulp . dest ( 'tmp' ) ) ) ;
261268
262- gulp . task ( 'task:worker:copy_deploy ' , ( ) => gulp
269+ gulp . task ( 'task:worker:deploy ' , ( ) => gulp
263270 . src ( [
264- 'tmp/es5/worker.js' ,
265- 'tmp/es5/worker.min.js' ,
266- ] , { base : 'tmp/es5' } )
271+ 'tmp/esm/src/worker/**/*.d.ts' ,
272+ 'tmp/esm/src/worker/**/*.js' ,
273+ 'tmp/esm/src/worker/**/*.js.map' ,
274+ 'tmp/esm/src/worker/**/*.metadata.json' ,
275+ ] )
267276 . pipe ( gulp . dest ( 'dist/worker' ) ) ) ;
268277
278+ gulp . task ( 'task:bundles:deploy' , ( ) => gulp
279+ . src ( 'tmp/es5/bundles/**/*.js' )
280+ . pipe ( gulp . dest ( 'dist/bundles' ) ) ) ;
281+
269282gulp . task ( 'e2e_harness:build' , done => runSequence (
270283 'clean' ,
271284 'task:e2e_harness:build' ,
@@ -285,14 +298,15 @@ gulp.task('task:e2e_harness:build', done => runSequence([
285298
286299gulp . task ( 'task:e2e_harness:debug' , done => runSequence ( [
287300 'task:e2e_harness:build' ,
288- 'task:e2e_harness:copy_debug'
289- ] ) ) ;
301+ 'task:e2e_harness:copy_debug' ,
302+ ] , done ) ) ;
290303
291304gulp . task ( 'task:e2e_harness:build_primary' , done => runSequence (
292305 'task:companion:build' ,
293306 [
294307 'task:e2e_harness:compile' ,
295- 'task:e2e_harness:copy_companion'
308+ 'task:e2e_harness:copy_companion' ,
309+ 'task:e2e_harness:copy_bundles' ,
296310 ] ,
297311 done ) ) ;
298312
@@ -333,13 +347,19 @@ gulp.task('task:e2e_harness:copy_companion', () => gulp
333347 'tmp/es5/src/companion/**/*.js' ,
334348 'tmp/es5/src/companion/**/*.metadata.json' ,
335349 'tmp/es5/src/companion/**/*.js.map'
336- ] , { base : 'tmp/es5/src/companion' } )
350+ ] )
337351 . pipe ( gulp . dest ( 'tmp/es5/src/test/e2e/harness/client/node_modules/@angular/service-worker' ) ) ) ;
338352
353+ gulp . task ( 'task:e2e_harness:copy_bundles' , ( ) => gulp
354+ . src ( [
355+ 'tmp/es5/bundles/**/*.js'
356+ ] )
357+ . pipe ( gulp . dest ( 'tmp/es5/src/test/e2e/harness/client/node_modules/@angular/service-worker/bundles' ) ) ) ;
358+
339359gulp . task ( 'task:e2e_harness:copy_worker' , ( ) => gulp
340360 . src ( [
341- 'tmp/es5/worker.js' ,
342- ] , { base : 'tmp/es5' } )
361+ 'tmp/es5/bundles/ worker.min .js' ,
362+ ] , { base : 'tmp/es5/bundles ' } )
343363 . pipe ( gulp . dest ( 'tmp/es5/src/test/e2e/harness/client' ) ) ) ;
344364
345365gulp . task ( 'task:e2e_harness:copy_index' , ( ) => gulp
@@ -413,6 +433,7 @@ gulp.task('test:e2e', done => runSequence(
413433 'task:e2e_tests:build' ,
414434 'task:e2e_harness:build' ,
415435 ] ,
436+ 'task:bundles:deploy' ,
416437 'task:e2e_tests:run' ,
417438 done
418439) ) ;
@@ -434,8 +455,8 @@ gulp.task('task:e2e_tests:run', done => {
434455 } ) ;
435456} ) ;
436457
437- gulp . task ( 'task:package:copy_deploy ' , ( ) => gulp
458+ gulp . task ( 'task:package:deploy ' , ( ) => gulp
438459 . src ( [
439460 'package.json'
440461 ] )
441- . pipe ( gulp . dest ( 'dist' ) ) ) ;
462+ . pipe ( gulp . dest ( 'dist' ) ) ) ;
0 commit comments