UNPKG

@hsaadawy/ngx-chat

Version:
28 lines 3.18 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMtdGltZW91dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BhenpuZXR3b3JrL25neC1jaGF0L3NyYy9saWIvY29yZS91dGlscy10aW1lb3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxZQUFhLFNBQVEsS0FBSztJQUNuQyxZQUFZLE9BQWdCO1FBQ3hCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDO0lBQy9CLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsRUFBVTtJQUM1QixJQUFJLFVBQVUsQ0FBQztJQUNmLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2xDLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0YsT0FBZSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7SUFDdEMsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsT0FBcUIsRUFBRSxFQUFVO0lBQ3JELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUUvQiwrREFBK0Q7SUFDL0QsU0FBUyxXQUFXO1FBQ2hCLFlBQVksQ0FBRSxZQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDZixPQUFlLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUNyQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNuQixNQUFNLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDO0tBQ0wsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBUaW1lb3V0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XHJcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gJ1RpbWVvdXRFcnJvcic7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWxheShtczogbnVtYmVyKSB7XHJcbiAgICBsZXQgbG9jYWxEZWxheTtcclxuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICBsb2NhbERlbGF5ID0gc2V0VGltZW91dChyZXNvbHZlLCBtcyk7XHJcbiAgICB9KTtcclxuICAgIChwcm9taXNlIGFzIGFueSkudGltZW91dCA9IGxvY2FsRGVsYXk7XHJcbiAgICByZXR1cm4gcHJvbWlzZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRpbWVvdXQocHJvbWlzZTogUHJvbWlzZTxhbnk+LCBtczogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBwcm9taXNlRGVsYXkgPSBkZWxheShtcyk7XHJcblxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vY29uc2lzdGVudC1mdW5jdGlvbi1zY29waW5nXHJcbiAgICBmdW5jdGlvbiBjYW5jZWxEZWxheSgpIHtcclxuICAgICAgICBjbGVhclRpbWVvdXQoKHByb21pc2VEZWxheSBhcyBhbnkpLnRpbWVvdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBQcm9taXNlLnJhY2UoW1xyXG4gICAgICAgIChwcm9taXNlIGFzIGFueSkuZmluYWxseShjYW5jZWxEZWxheSksXHJcbiAgICAgICAgcHJvbWlzZURlbGF5LnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVGltZW91dEVycm9yKCk7XHJcbiAgICAgICAgfSksXHJcbiAgICBdKTtcclxufVxyXG4iXX0=