1 | "use strict";
|
2 | const events_1 = require("events");
|
3 | class Watcher extends events_1.EventEmitter {
|
4 | constructor(builder) {
|
5 | super();
|
6 | this.builder = builder;
|
7 | this.currentBuild = null;
|
8 | this._lifetimeDeferred = {};
|
9 | let lifetime = this._lifetimeDeferred;
|
10 | lifetime.promise = new Promise((resolve, reject) => {
|
11 | lifetime.resolve = resolve;
|
12 | lifetime.reject = reject;
|
13 | });
|
14 | }
|
15 | start() {
|
16 | this.currentBuild = this.builder.build();
|
17 | this.currentBuild
|
18 | .then(() => this.emit('buildSuccess'))
|
19 | .catch((err) => this.emit('buildFailure', err));
|
20 | return this._lifetimeDeferred.promise;
|
21 | }
|
22 | quit() {
|
23 | if (this._lifetimeDeferred.resolve) {
|
24 | this._lifetimeDeferred.resolve();
|
25 | }
|
26 | }
|
27 | }
|
28 | ;
|
29 | module.exports = Watcher;
|
30 |
|
\ | No newline at end of file |