UNPKG

ts-stream

Version:

Type-safe object streams with seamless support for backpressure, ending, and error handling

68 lines 1.78 kB
"use strict"; /** * Promise-based object stream with seamless support for back-pressure and error * handling, written in Typescript. * * Copyright (C) 2015 Martin Poelstra * License: MIT */ Object.defineProperty(exports, "__esModule", { value: true }); exports.delay = exports.track = exports.defer = exports.swallowErrors = exports.noop = void 0; /** * Do nothing. */ function noop() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } /* no-op */ } exports.noop = noop; /** * Swallow any error that may result from this promise. * Prevents PossiblyUnhandledExceptionErrors. */ function swallowErrors(promise) { promise.then(undefined, noop); } exports.swallowErrors = swallowErrors; function defer() { var resolve; var reject; var promise = new Promise(function (a, b) { resolve = a; reject = b; }); return { promise: promise, reject: reject, resolve: resolve }; } exports.defer = defer; function track(p) { var tracked = { isFulfilled: false, isPending: true, isRejected: false, promise: undefined, }; var trackedPromise = p.then(function (value) { tracked.isPending = false; tracked.isFulfilled = true; tracked.value = value; return value; }, function (error) { tracked.isPending = false; tracked.isRejected = true; tracked.reason = error; throw error; }); tracked.promise = trackedPromise; return tracked; } exports.track = track; function delay(duration, t) { return new Promise(function (resolve) { setTimeout(function () { return resolve(t); }, duration); }); } exports.delay = delay; //# sourceMappingURL=util.js.map