@@ -13,8 +13,27 @@ const del = require("del");
1313const needsUpdate = require ( "./needsUpdate" ) ;
1414const mkdirp = require ( "./mkdirp" ) ;
1515const { reportDiagnostics } = require ( "./diagnostics" ) ;
16+ const { Countdown } = require ( "./countdown" ) ;
17+ const { CancelToken } = require ( "./cancellation" ) ;
18+
19+ const countdown = new Countdown ( ) ;
1620
1721class CompilationGulp extends gulp . Gulp {
22+ constructor ( ) {
23+ super ( ) ;
24+ this . on ( "start" , ( ) => {
25+ const onDone = ( ) => {
26+ this . removeListener ( "stop" , onDone ) ;
27+ this . removeListener ( "err" , onDone ) ;
28+ countdown . signal ( ) ;
29+ } ;
30+
31+ this . on ( "stop" , onDone ) ;
32+ this . on ( "err" , onDone ) ;
33+ countdown . add ( ) ;
34+ } ) ;
35+ }
36+
1837 /**
1938 * @param {boolean } [verbose]
2039 */
@@ -38,6 +57,17 @@ class ForkedGulp extends gulp.Gulp {
3857 constructor ( tasks ) {
3958 super ( ) ;
4059 this . tasks = tasks ;
60+ this . on ( "start" , ( ) => {
61+ const onDone = ( ) => {
62+ this . removeListener ( "stop" , onDone ) ;
63+ this . removeListener ( "err" , onDone ) ;
64+ countdown . signal ( ) ;
65+ } ;
66+
67+ this . on ( "stop" , onDone ) ;
68+ this . on ( "err" , onDone ) ;
69+ countdown . add ( ) ;
70+ } ) ;
4171 }
4272
4373 // Do not reset tasks
@@ -211,22 +241,10 @@ exports.flatten = flatten;
211241
212242/**
213243 * Returns a Promise that resolves when all pending build tasks have completed
244+ * @param {CancelToken } [token]
214245 */
215- function wait ( ) {
216- return new Promise ( resolve => {
217- if ( compilationGulp . allDone ( ) ) {
218- resolve ( ) ;
219- }
220- else {
221- const onDone = ( ) => {
222- compilationGulp . removeListener ( "onDone" , onDone ) ;
223- compilationGulp . removeListener ( "err" , onDone ) ;
224- resolve ( ) ;
225- } ;
226- compilationGulp . on ( "stop" , onDone ) ;
227- compilationGulp . on ( "err" , onDone ) ;
228- }
229- } ) ;
246+ function wait ( token ) {
247+ return countdown . wait ( token ) ;
230248}
231249exports . wait = wait ;
232250
0 commit comments