UNPKG

@pazznetwork/ngx-chat

Version:

[![Build status](https://api.travis-ci.com/pazznetwork/ngx-chat.svg?branch=master)](https://travis-ci.com/pazznetwork/ngx-chat) [![Coverage](https://coveralls.io/repos/github/pazznetwork/ngx-chat/badge.svg?branch=master)](https://coveralls.io/github/pazzn

28 lines 3.03 kB
export class TimeoutError extends Error { constructor(message) { super(message); this.name = 'TimeoutError'; } } export function delay(ms) { let localDelay; const promise = new Promise(resolve => { localDelay = setTimeout(resolve, ms); }); promise.timeout = localDelay; return promise; } export function timeout(promise, ms) { const promiseDelay = delay(ms); // eslint-disable-next-line unicorn/consistent-function-scoping function cancelDelay() { clearTimeout(promiseDelay.timeout); } return Promise.race([ promise.finally(cancelDelay), promiseDelay.then(() => { throw new TimeoutError(); }), ]); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMtdGltZW91dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS91dGlscy10aW1lb3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxZQUFhLFNBQVEsS0FBSztJQUNuQyxZQUFZLE9BQWdCO1FBQ3hCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDO0lBQy9CLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsRUFBVTtJQUM1QixJQUFJLFVBQVUsQ0FBQztJQUNmLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2xDLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0YsT0FBZSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7SUFDdEMsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsT0FBcUIsRUFBRSxFQUFVO0lBQ3JELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUUvQiwrREFBK0Q7SUFDL0QsU0FBUyxXQUFXO1FBQ2hCLFlBQVksQ0FBRSxZQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDZixPQUFlLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUNyQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNuQixNQUFNLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDO0tBQ0wsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBUaW1lb3V0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5uYW1lID0gJ1RpbWVvdXRFcnJvcic7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVsYXkobXM6IG51bWJlcikge1xuICAgIGxldCBsb2NhbERlbGF5O1xuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgbG9jYWxEZWxheSA9IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpO1xuICAgIH0pO1xuICAgIChwcm9taXNlIGFzIGFueSkudGltZW91dCA9IGxvY2FsRGVsYXk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aW1lb3V0KHByb21pc2U6IFByb21pc2U8YW55PiwgbXM6IG51bWJlcikge1xuICAgIGNvbnN0IHByb21pc2VEZWxheSA9IGRlbGF5KG1zKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL2NvbnNpc3RlbnQtZnVuY3Rpb24tc2NvcGluZ1xuICAgIGZ1bmN0aW9uIGNhbmNlbERlbGF5KCkge1xuICAgICAgICBjbGVhclRpbWVvdXQoKHByb21pc2VEZWxheSBhcyBhbnkpLnRpbWVvdXQpO1xuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgICAgICAocHJvbWlzZSBhcyBhbnkpLmZpbmFsbHkoY2FuY2VsRGVsYXkpLFxuICAgICAgICBwcm9taXNlRGVsYXkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVGltZW91dEVycm9yKCk7XG4gICAgICAgIH0pLFxuICAgIF0pO1xufVxuIl19