UNPKG

ngx-endpoints

Version:

A library to dynamically load data from http endpoints / urls in angular

116 lines 9.33 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { catchError } from 'rxjs/operators'; import { throwError } from 'rxjs'; import * as queryString from 'query-string'; import * as momentRelativism from 'moment-relativism'; import * as moment_ from 'moment'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; /** @type {?} */ var moment = moment_; var NgxEndpointService = /** @class */ (function () { function NgxEndpointService(_http) { this._http = _http; } /** * @return {?} */ NgxEndpointService.prototype.ngOnInit = /** * @return {?} */ function () { }; /** * Gets data via http client * @param endPointUrl url that will be requested */ /** * Gets data via http client * @template T * @param {?} endPointUrl url that will be requested * @param {?} httpheaders * @return {?} */ NgxEndpointService.prototype.getData = /** * Gets data via http client * @template T * @param {?} endPointUrl url that will be requested * @param {?} httpheaders * @return {?} */ function (endPointUrl, httpheaders) { return tslib_1.__awaiter(this, void 0, void 0, function () { var headers, key; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: headers = new HttpHeaders(); // tslint:disable-next-line:forin // tslint:disable-next-line:forin for (key in httpheaders) { headers = headers.append(key, httpheaders[key]); } return [4 /*yield*/, this._http.get(endPointUrl, { headers: headers }).pipe(catchError(function (err) { console.log('Cannot request data from ' + endPointUrl, err); return throwError(err); })).toPromise()]; case 1: return [2 /*return*/, _a.sent()]; } }); }); }; /** * Conversion method for relative dates in querystrings * @param endPointUrl return endpointurl with converted dates in querystring */ /** * Conversion method for relative dates in querystrings * @param {?} endPointUrl return endpointurl with converted dates in querystring * @param {?} momentjsformat * @return {?} */ NgxEndpointService.prototype.convertDatesInURL = /** * Conversion method for relative dates in querystrings * @param {?} endPointUrl return endpointurl with converted dates in querystring * @param {?} momentjsformat * @return {?} */ function (endPointUrl, momentjsformat) { /** @type {?} */ var urlObject = queryString.parseUrl(endPointUrl); for (var propertyName in urlObject.query) { if (urlObject.query[propertyName].startsWith('now')) { /** @type {?} */ var dateResult = momentRelativism.relativism(urlObject.query[propertyName]); urlObject.query[propertyName] = moment(dateResult).format(momentjsformat); } } /** @type {?} */ var stringified = queryString.stringify(urlObject.query); endPointUrl = urlObject.url + '?' + stringified; return endPointUrl; }; NgxEndpointService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ NgxEndpointService.ctorParameters = function () { return [ { type: HttpClient } ]; }; /** @nocollapse */ NgxEndpointService.ngInjectableDef = i0.defineInjectable({ factory: function NgxEndpointService_Factory() { return new NgxEndpointService(i0.inject(i1.HttpClient)); }, token: NgxEndpointService, providedIn: "root" }); return NgxEndpointService; }()); export { NgxEndpointService }; if (false) { /** @type {?} */ NgxEndpointService.prototype._http; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWVuZHBvaW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWVuZHBvaW50cy8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZW5kcG9pbnRzL25neC1lbmRwb2ludHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBTSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEtBQUssV0FBVyxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7Ozs7SUFDNUIsTUFBTSxHQUFHLE9BQU87QUFDdEI7SUFNRSw0QkFBb0IsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUFJLENBQUM7Ozs7SUFFMUMscUNBQVE7OztJQUFSO0lBQ0EsQ0FBQztJQUNEOzs7T0FHRzs7Ozs7Ozs7SUFDRyxvQ0FBTzs7Ozs7OztJQUFiLFVBQWlCLFdBQW1CLEVBQUUsV0FBbUI7Ozs7Ozt3QkFDbkQsT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFO3dCQUMvQixpQ0FBaUM7d0JBRWpDLGlDQUFpQzt3QkFDakMsS0FBVyxHQUFHLElBQUksV0FBVyxFQUFFOzRCQUM3QixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7eUJBQ2pEO3dCQUNNLHFCQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFJLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDcEUsVUFBVSxDQUFDLFVBQUMsR0FBRztnQ0FDYixPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixHQUFHLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztnQ0FDNUQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQzNCLENBQUMsQ0FBQyxDQUNELENBQUMsU0FBUyxFQUFFLEVBQUE7NEJBTGIsc0JBQU8sU0FLTSxFQUFDOzs7O0tBQ2Y7SUFDRDs7O09BR0c7Ozs7Ozs7SUFDSCw4Q0FBaUI7Ozs7OztJQUFqQixVQUFrQixXQUFtQixFQUFFLGNBQXNCOztZQUNyRCxTQUFTLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDbkQsS0FBSyxJQUFNLFlBQVksSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQzFDLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7O29CQUM3QyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzdFLFNBQVMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUMzRTtTQUNGOztZQUNLLFdBQVcsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDMUQsV0FBVyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQztRQUNoRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOztnQkE1Q0YsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFUUSxVQUFVOzs7NkJBRG5CO0NBc0RDLEFBOUNELElBOENDO1NBM0NZLGtCQUFrQjs7O0lBR2pCLG1DQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIHF1ZXJ5U3RyaW5nIGZyb20gJ3F1ZXJ5LXN0cmluZyc7XG5pbXBvcnQgKiBhcyBtb21lbnRSZWxhdGl2aXNtIGZyb20gJ21vbWVudC1yZWxhdGl2aXNtJztcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hFbmRwb2ludFNlcnZpY2UgaW1wbGVtZW50cyBPbkluaXQge1xuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cbiAgLyoqXG4gICAqIEdldHMgZGF0YSB2aWEgaHR0cCBjbGllbnRcbiAgICogQHBhcmFtIGVuZFBvaW50VXJsIHVybCB0aGF0IHdpbGwgYmUgcmVxdWVzdGVkXG4gICAqL1xuICBhc3luYyBnZXREYXRhPFQ+KGVuZFBvaW50VXJsOiBzdHJpbmcsIGh0dHBoZWFkZXJzOiBPYmplY3QpOiBQcm9taXNlPFQ+IHtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpmb3JpblxuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmZvcmluXG4gICAgZm9yIChjb25zdCBrZXkgaW4gaHR0cGhlYWRlcnMpIHtcbiAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLmFwcGVuZChrZXksIGh0dHBoZWFkZXJzW2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5faHR0cC5nZXQ8VD4oZW5kUG9pbnRVcmwsIHsgaGVhZGVyczogaGVhZGVycyB9KS5waXBlPFQ+KFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdDYW5ub3QgcmVxdWVzdCBkYXRhIGZyb20gJyArIGVuZFBvaW50VXJsLCBlcnIpO1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgIH0pXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuICAvKipcbiAgICogQ29udmVyc2lvbiBtZXRob2QgZm9yIHJlbGF0aXZlIGRhdGVzIGluIHF1ZXJ5c3RyaW5nc1xuICAgKiBAcGFyYW0gZW5kUG9pbnRVcmwgcmV0dXJuIGVuZHBvaW50dXJsIHdpdGggY29udmVydGVkIGRhdGVzIGluIHF1ZXJ5c3RyaW5nXG4gICAqL1xuICBjb252ZXJ0RGF0ZXNJblVSTChlbmRQb2ludFVybDogc3RyaW5nLCBtb21lbnRqc2Zvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB1cmxPYmplY3QgPSBxdWVyeVN0cmluZy5wYXJzZVVybChlbmRQb2ludFVybCk7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgaW4gdXJsT2JqZWN0LnF1ZXJ5KSB7XG4gICAgICBpZiAodXJsT2JqZWN0LnF1ZXJ5W3Byb3BlcnR5TmFtZV0uc3RhcnRzV2l0aCgnbm93JykpIHtcbiAgICAgICAgY29uc3QgZGF0ZVJlc3VsdCA9IG1vbWVudFJlbGF0aXZpc20ucmVsYXRpdmlzbSh1cmxPYmplY3QucXVlcnlbcHJvcGVydHlOYW1lXSk7XG4gICAgICAgIHVybE9iamVjdC5xdWVyeVtwcm9wZXJ0eU5hbWVdID0gbW9tZW50KGRhdGVSZXN1bHQpLmZvcm1hdChtb21lbnRqc2Zvcm1hdCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHN0cmluZ2lmaWVkID0gcXVlcnlTdHJpbmcuc3RyaW5naWZ5KHVybE9iamVjdC5xdWVyeSk7XG4gICAgZW5kUG9pbnRVcmwgPSB1cmxPYmplY3QudXJsICsgJz8nICsgc3RyaW5naWZpZWQ7XG4gICAgcmV0dXJuIGVuZFBvaW50VXJsO1xuICB9XG5cbn1cbiJdfQ==