UNPKG

@cardboard-box/ngx-box

Version:

A collection of useful directives, components and services for angular

38 lines 5.13 kB
import { catchError, lastValueFrom, of, tap } from "rxjs"; export class RxjsHttpResp { constructor(_observable, _url, _isProd) { this._isProd = _isProd; this.url = _url; this.observable = _observable; this.rawObservable = _observable; } get promise() { return lastValueFrom(this.observable); } error(handler, def) { this.observable = this.observable .pipe(catchError(err => { console.error('Error occurred during XHR: ', { url: this.url, error: err, default: def }); handler(err); return of(def); })); return this; } tap(handler) { this.observable = this.observable.pipe(tap(t => handler(t))); return this; } subscribe(handler) { return this.observable.subscribe(t => { if (!this._isProd) console.log('XHR Request Result', { url: this.url, results: t }); handler(t); }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy1odHRwLXJlc3AuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZGJvYXJkYm94L25neC1ib3gvc3JjL2xpYi9zZXJ2aWNlcy9oZWxwZXJzL3J4anMtaHR0cC1yZXNwLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRFLE1BQU0sT0FBTyxZQUFZO0lBUXJCLFlBQ0ksV0FBMEIsRUFDMUIsSUFBWSxFQUNKLE9BQWdCO1FBQWhCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFFeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUM7SUFDckMsQ0FBQztJQVZELElBQUksT0FBTyxLQUFLLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFZeEQsS0FBSyxDQUFDLE9BQTJCLEVBQUUsR0FBTztRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFRLElBQUksQ0FBQyxVQUFVO2FBQ2pDLElBQUksQ0FDRCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFO2dCQUN6QyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ2IsS0FBSyxFQUFFLEdBQUc7Z0JBQ1YsT0FBTyxFQUFFLEdBQUc7YUFDZixDQUFDLENBQUM7WUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDYixPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ04sT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELEdBQUcsQ0FBQyxPQUEwQjtRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUEwQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFDYixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFO29CQUM5QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7b0JBQ2IsT0FBTyxFQUFFLENBQUM7aUJBQ2IsQ0FBQyxDQUFDO1lBQ1AsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYXRjaEVycm9yLCBsYXN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCBvZiwgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBSeGpzSHR0cFJlc3A8VD4ge1xyXG5cclxuICAgIHVybCE6IHN0cmluZztcclxuICAgIG9ic2VydmFibGUhOiBPYnNlcnZhYmxlPFQ+O1xyXG4gICAgcmF3T2JzZXJ2YWJsZSE6IE9ic2VydmFibGU8VD47XHJcblxyXG4gICAgZ2V0IHByb21pc2UoKSB7IHJldHVybiBsYXN0VmFsdWVGcm9tKHRoaXMub2JzZXJ2YWJsZSk7IH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBfb2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPixcclxuICAgICAgICBfdXJsOiBzdHJpbmcsXHJcbiAgICAgICAgcHJpdmF0ZSBfaXNQcm9kOiBib29sZWFuXHJcbiAgICApIHsgXHJcbiAgICAgICAgdGhpcy51cmwgPSBfdXJsO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2YWJsZSA9IF9vYnNlcnZhYmxlO1xyXG4gICAgICAgIHRoaXMucmF3T2JzZXJ2YWJsZSA9IF9vYnNlcnZhYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIGVycm9yKGhhbmRsZXI6IChlcnI6IGFueSkgPT4gdm9pZCwgZGVmPzogVCkge1xyXG4gICAgICAgIHRoaXMub2JzZXJ2YWJsZSA9IDxhbnk+dGhpcy5vYnNlcnZhYmxlXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIG9jY3VycmVkIGR1cmluZyBYSFI6ICcsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycixcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogZGVmXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlcihlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihkZWYpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB0YXAoaGFuZGxlcjogKGl0ZW06IFQpID0+IHZvaWQpIHtcclxuICAgICAgICB0aGlzLm9ic2VydmFibGUgPSB0aGlzLm9ic2VydmFibGUucGlwZSh0YXAodCA9PiBoYW5kbGVyKHQpKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3Vic2NyaWJlKGhhbmRsZXI6IChpdGVtOiBUKSA9PiB2b2lkKSB7IFxyXG4gICAgICAgIHJldHVybiB0aGlzLm9ic2VydmFibGUuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2lzUHJvZClcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdYSFIgUmVxdWVzdCBSZXN1bHQnLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHRzOiB0XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaGFuZGxlcih0KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSJdfQ==