UNPKG

@cute-dw/core

Version:

This TypeScript library is the main part of a more powerfull package designed for the fast WEB software development. The cornerstone of the library is the **DataStore** class, which might be useful when you need a full control of the data, but do not need

56 lines (55 loc) 9.64 kB
import { Injectable } from "@angular/core"; import { throwError } from "rxjs"; import { catchError, retry } from "rxjs/operators"; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; /** * Wrapper class for Angular's HttpClient class */ export class HttpService { constructor(_http) { this._http = _http; /* private handleError(error: HttpErrorResponse) { let errorMessage = 'Unknown error!'; if (error.error instanceof ErrorEvent) { // Client-side errors errorMessage = `Error: ${error.error.message}`; } else { // Server-side errors errorMessage = `Error status: ${error.status} (${error.statusText})\n\nDescription:\n${error.message}`; } // TODO: Make a message service! window.alert(errorMessage); return throwError(error); } */ /** Default error handler function */ this.handleError = (err, caught) => { return throwError(() => { return err; }); }; } /** Internal `HttpClient` object */ get httpClient() { return this._http; } get(url, options, retries) { return this._http.get(url, options).pipe(retry({ delay: retries?.delay || 1000, count: retries?.count || 0 }), catchError(this.handleError)); } delete(url, options, retries) { return this._http.delete(url, options).pipe(retry({ delay: retries?.delay || 1000, count: retries?.count || 0 }), catchError(this.handleError)); } post(url, body, options, retries) { return this._http.post(url, body, options).pipe(retry({ delay: retries?.delay || 1000, count: retries?.count || 0 }), catchError(this.handleError)); } put(url, body, options, retries) { return this._http.put(url, body, options).pipe(retry({ delay: retries?.delay || 1000, count: retries?.count || 0 }), catchError(this.handleError)); } } HttpService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: HttpService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); HttpService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: HttpService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: HttpService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3V0ZS1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUErQixVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSW5EOztHQUVHO0FBSUgsTUFBTSxPQUFPLFdBQVc7SUFFdEIsWUFBb0IsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQU9yQzs7Ozs7Ozs7Ozs7Ozs7O1VBZUU7UUFFRixxQ0FBcUM7UUFDckMsZ0JBQVcsR0FBNEUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFDLEVBQUUsR0FBQyxPQUFPLFVBQVUsQ0FBQyxHQUFFLEVBQUUsR0FBQyxPQUFPLEdBQUcsQ0FBQSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFBO0lBekJwRyxDQUFDO0lBRXpDLG1DQUFtQztJQUNuQyxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQXNCRCxHQUFHLENBQVEsR0FBVyxFQUFFLE9BQWdCLEVBQUUsT0FBMEI7UUFDbEUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBSSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN6QyxLQUFLLENBQUMsRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFDLENBQUMsRUFDakUsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDN0IsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQVEsR0FBVyxFQUFFLE9BQWdCLEVBQUUsT0FBMEI7UUFDckUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBSSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM1QyxLQUFLLENBQUMsRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFDLENBQUMsRUFDakUsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDN0IsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQVEsR0FBVyxFQUFFLElBQVMsRUFBRSxPQUFnQixFQUFFLE9BQTBCO1FBQzlFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUksR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ2hELEtBQUssQ0FBQyxFQUFDLEtBQUssRUFBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUMsQ0FBQyxFQUNqRSxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUM3QixDQUFDO0lBQ0osQ0FBQztJQUVELEdBQUcsQ0FBUSxHQUFXLEVBQUUsSUFBUyxFQUFFLE9BQWdCLEVBQUUsT0FBMEI7UUFDN0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDL0MsS0FBSyxDQUFDLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBQyxDQUFDLEVBQ2pFLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzdCLENBQUM7SUFDSixDQUFDOzt3R0F2RFUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZhYmxlSW5wdXQsIHRocm93RXJyb3IgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCByZXRyeSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuZXhwb3J0IHR5cGUgSHR0cFJldHJ5T3B0aW9ucyA9IHtjb3VudDogbnVtYmVyLCBkZWxheTogbnVtYmVyfTtcclxuXHJcbi8qKlxyXG4gKiBXcmFwcGVyIGNsYXNzIGZvciBBbmd1bGFyJ3MgSHR0cENsaWVudCBjbGFzc1xyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSHR0cFNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50KSB7fVxyXG5cclxuICAvKiogSW50ZXJuYWwgYEh0dHBDbGllbnRgIG9iamVjdCAqL1xyXG4gIGdldCBodHRwQ2xpZW50KCk6IEh0dHBDbGllbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHA7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICBsZXQgZXJyb3JNZXNzYWdlID0gJ1Vua25vd24gZXJyb3IhJztcclxuICAgIGlmIChlcnJvci5lcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHtcclxuICAgICAgLy8gQ2xpZW50LXNpZGUgZXJyb3JzXHJcbiAgICAgIGVycm9yTWVzc2FnZSA9IGBFcnJvcjogJHtlcnJvci5lcnJvci5tZXNzYWdlfWA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBTZXJ2ZXItc2lkZSBlcnJvcnNcclxuICAgICAgZXJyb3JNZXNzYWdlID0gYEVycm9yIHN0YXR1czogJHtlcnJvci5zdGF0dXN9ICgke2Vycm9yLnN0YXR1c1RleHR9KVxcblxcbkRlc2NyaXB0aW9uOlxcbiR7ZXJyb3IubWVzc2FnZX1gO1xyXG4gICAgfVxyXG4gICAgLy8gVE9ETzogTWFrZSBhIG1lc3NhZ2Ugc2VydmljZSFcclxuICAgIHdpbmRvdy5hbGVydChlcnJvck1lc3NhZ2UpO1xyXG5cclxuICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICB9XHJcbiAgKi9cclxuXHJcbiAgLyoqIERlZmF1bHQgZXJyb3IgaGFuZGxlciBmdW5jdGlvbiAqL1xyXG4gIGhhbmRsZUVycm9yOiAoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSwgY2F1Z2h0OiBPYnNlcnZhYmxlPGFueT4pPT5PYnNlcnZhYmxlSW5wdXQ8YW55PiA9IChlcnIsIGNhdWdodCk9PntyZXR1cm4gdGhyb3dFcnJvcigoKT0+e3JldHVybiBlcnJ9KTt9XHJcblxyXG4gIGdldDxUPWFueT4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBPYmplY3QsIHJldHJpZXM/OiBIdHRwUmV0cnlPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8VD4odXJsLCBvcHRpb25zKS5waXBlKFxyXG4gICAgICByZXRyeSh7ZGVsYXk6cmV0cmllcz8uZGVsYXkgfHwgMTAwMCwgY291bnQ6IHJldHJpZXM/LmNvdW50IHx8IDB9KSxcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZTxUPWFueT4odXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBPYmplY3QsIHJldHJpZXM/OiBIdHRwUmV0cnlPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5kZWxldGU8VD4odXJsLCBvcHRpb25zKS5waXBlKFxyXG4gICAgICByZXRyeSh7ZGVsYXk6cmV0cmllcz8uZGVsYXkgfHwgMTAwMCwgY291bnQ6IHJldHJpZXM/LmNvdW50IHx8IDB9KSxcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHBvc3Q8VD1hbnk+KHVybDogc3RyaW5nLCBib2R5OiBhbnksIG9wdGlvbnM/OiBPYmplY3QsIHJldHJpZXM/OiBIdHRwUmV0cnlPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PFQ+KHVybCwgYm9keSwgb3B0aW9ucykucGlwZShcclxuICAgICAgcmV0cnkoe2RlbGF5OnJldHJpZXM/LmRlbGF5IHx8IDEwMDAsIGNvdW50OiByZXRyaWVzPy5jb3VudCB8fCAwfSksXHJcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdXQ8VD1hbnk+KHVybDogc3RyaW5nLCBib2R5OiBhbnksIG9wdGlvbnM/OiBPYmplY3QsIHJldHJpZXM/OiBIdHRwUmV0cnlPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8VD4odXJsLCBib2R5LCBvcHRpb25zKS5waXBlKFxyXG4gICAgICByZXRyeSh7ZGVsYXk6cmV0cmllcz8uZGVsYXkgfHwgMTAwMCwgY291bnQ6IHJldHJpZXM/LmNvdW50IHx8IDB9KSxcclxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgcHJpdmF0ZSByZXF1ZXN0KG1ldGhvZDogc3RyaW5nLCB1cmw6IHN0cmluZywgb3B0aW9ucz86IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJ29wdGlvbnMnLCBvcHRpb25zKTtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCByZXF1ZXN0QmVnaW5UaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgdGhpcy5faHR0cC5yZXF1ZXN0KG5ldyBIdHRwUmVxdWVzdChtZXRob2QsIHVybCwgb3B0aW9ucykpLnN1YnNjcmliZShcclxuICAgICAgICAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIC8vdGhpcy5sb2dUaW1lKHJlcXVlc3RCZWdpblRpbWUsIGAke3VybH1gLCBtZXRob2QpLFxyXG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dChyZXNwb25zZSk7XHJcbiAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBzd2l0Y2ggKGVycm9yLnN0YXR1cykge1xyXG4gICAgICAgICAgICBjYXNlIDQwMzpcclxuICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgKi9cclxufVxyXG4iXX0=