@dolittle/sdk.resilience
Version:
Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.
37 lines • 2.12 kB
JavaScript
;
// Copyright (c) Dolittle. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
Object.defineProperty(exports, "__esModule", { value: true });
exports.CancellationSource = void 0;
const rxjs_1 = require("rxjs");
const Cancellation_1 = require("./Cancellation");
/**
* Represents a source of a {@link Cancellation}.
*/
class CancellationSource {
/**
* Initializes a new instance of {@link CancellationSource}.
* @param {Cancellation[]} sources - A set of {@link Cancellation} to link to this source.
*/
constructor(...sources) {
this._subject = new rxjs_1.Subject();
for (const source of sources) {
source.subscribe(this._subject);
}
this.cancellation = new Cancellation_1.Cancellation(this._subject);
}
/**
* Cancel the {@link Cancellation} of the {@link CancellationSource}.
*/
cancel() {
this._subject.complete();
}
/**
* Gets a value indicating wheter or not the {@link CancellationSource} is cancelled.
*/
get cancelled() {
return this.cancellation.cancelled;
}
}
exports.CancellationSource = CancellationSource;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuY2VsbGF0aW9uU291cmNlLmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXMiOlsiQ2FuY2VsbGF0aW9uU291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQ0FBK0M7QUFDL0MscUdBQXFHOzs7QUFFckcsK0JBQStCO0FBRS9CLGlEQUE4QztBQUU5Qzs7R0FFRztBQUNILE1BQWEsa0JBQWtCO0lBRzNCOzs7T0FHRztJQUNILFlBQVksR0FBRyxPQUF1QjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksY0FBTyxFQUFFLENBQUM7UUFDOUIsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUU7WUFDMUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksMkJBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQU9EOztPQUVHO0lBQ0gsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0NBQ0o7QUFqQ0QsZ0RBaUNDIn0=