@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
JavaScript
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=