UNPKG

@atomist/automation-client

Version:

Atomist API for software low-level client

41 lines 1.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class Deferred { constructor() { this.state = "pending"; this.fate = "unresolved"; this.promise = new Promise((resolve, reject) => { this.deferredResolve = resolve; this.deferredReject = reject; }); this.promise.then(() => this.state = "fulfilled", () => this.state = "rejected"); } resolve(value) { if (this.fate === "resolved") { throw new Error("Deferred cannot be resolved twice"); } this.fate = "resolved"; this.deferredResolve(value); } reject(reason) { if (this.fate === "resolved") { throw new Error("Deferred cannot be resolved twice"); } this.fate = "resolved"; this.deferredReject(reason); } isResolved() { return this.fate === "resolved"; } isPending() { return this.state === "pending"; } isFulfilled() { return this.state === "fulfilled"; } isRejected() { return this.state === "rejected"; } } exports.Deferred = Deferred; //# sourceMappingURL=Deferred.js.map