ngx-endpoints
Version:
A library to dynamically load data from http endpoints / urls in angular
116 lines • 9.33 kB
JavaScript
/**
* @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==