UNPKG

@dolittle/sdk.resilience

Version:

Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.

48 lines 2.94 kB
"use strict"; // 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.Cancellation = void 0; const rxjs_1 = require("rxjs"); const operators_1 = require("rxjs/operators"); /** * Represents a possible cancellation. */ class Cancellation extends rxjs_1.Observable { /** * Creates a new instance of the {@link Cancellation} class. * @param {Observable<void>} source - The source observable indicates a cancellation has been requested by completing. */ constructor(source) { super((subscriber) => { const subscription = this._subject.subscribe(subscriber); return () => { subscription.unsubscribe(); }; }); this._subject = new rxjs_1.Subject(); this._cancelled = false; source.subscribe(this._subject); } /** * Gets a value indicating wheter or not the {@link Cancellation} is cancelled. */ get cancelled() { return this._subject.isStopped; } /** * Creates a new {@link Cancellation} that is cancelled after the specified amount of time. * @param {number} time - The time in milliseconds until the cancellation occurs. * @returns {Cancellation} The scheduled cancellation. */ static after(time) { const source = (0, rxjs_1.timer)(time).pipe((0, operators_1.ignoreElements)()); return new Cancellation(source); } } exports.Cancellation = Cancellation; /** * Default {@link Cancellation}, which is never. */ Cancellation.default = new Cancellation(rxjs_1.NEVER); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuY2VsbGF0aW9uLmpzIiwic291cmNlUm9vdCI6Ii4uLyIsInNvdXJjZXMiOlsiQ2FuY2VsbGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQ0FBK0M7QUFDL0MscUdBQXFHOzs7QUFFckcsK0JBQXlEO0FBQ3pELDhDQUFnRDtBQUVoRDs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLGlCQUFnQjtJQUk5Qzs7O09BR0c7SUFDSCxZQUFZLE1BQXdCO1FBQ2hDLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ2pCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sR0FBRyxFQUFFO2dCQUNSLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMvQixDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQWJVLGFBQVEsR0FBRyxJQUFJLGNBQU8sRUFBUSxDQUFDO1FBQ3hDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFhdkIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBT0Q7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBWTtRQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFBLFlBQUssRUFBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBQSwwQkFBYyxHQUFFLENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7O0FBdENMLG9DQXVDQztBQWRHOztHQUVHO0FBQ0ksb0JBQU8sR0FBaUIsSUFBSSxZQUFZLENBQUMsWUFBSyxDQUFDLENBQUMifQ==