ngx-endpoints
Version:
A library to dynamically load data from http endpoints / urls in angular
120 lines • 7.68 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 { NgxEndpointService } from '../ngx-endpoints.service';
import { NgxEndPoint } from '../ngx-endpoints';
import { NgxEndPointData } from '../ngx-endpoint.format';
import * as i0 from "@angular/core";
import * as i1 from "../ngx-endpoints.service";
import * as i2 from "../ngx-endpoint.format";
/**
* @template T
*/
var NgxLiveEndPoint = /** @class */ (function (_super) {
tslib_1.__extends(NgxLiveEndPoint, _super);
function NgxLiveEndPoint(endpointservice, endpoint) {
var _this = _super.call(this, endpointservice, endpoint) || this;
_this.endpointservice = endpointservice;
_this.endpoint = endpoint;
return _this;
}
/**
* Requests data from an http source
* Optionally converts relative dates (now-1d) into readable urls by DatesOutputFormat
* Adds the result of the request to BehaviorSubject data that can be subscribed
*/
/**
* Requests data from an http source
* Optionally converts relative dates (now-1d) into readable urls by DatesOutputFormat
* Adds the result of the request to BehaviorSubject data that can be subscribed
* @return {?}
*/
NgxLiveEndPoint.prototype.requestData = /**
* Requests data from an http source
* Optionally converts relative dates (now-1d) into readable urls by DatesOutputFormat
* Adds the result of the request to BehaviorSubject data that can be subscribed
* @return {?}
*/
function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
this.running = true;
return [4 /*yield*/, this.refreshData()];
case 1:
_a.sent();
return [2 /*return*/];
}
});
});
};
/**
* internal function to wait before next live request will be made
*/
/**
* internal function to wait before next live request will be made
* @param {?} ms
* @return {?}
*/
NgxLiveEndPoint.prototype.sleep = /**
* internal function to wait before next live request will be made
* @param {?} ms
* @return {?}
*/
function (ms) {
return new Promise(function (resolve) { return setTimeout(resolve, ms); });
};
/**
* internal function to run live requests in loop
*/
/**
* internal function to run live requests in loop
* @return {?}
*/
NgxLiveEndPoint.prototype.refreshData = /**
* internal function to run live requests in loop
* @return {?}
*/
function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!this.running) return [3 /*break*/, 3];
return [4 /*yield*/, this.requestInternal()];
case 1:
_a.sent();
return [4 /*yield*/, this.sleep(this.endpoint.liveinterval)];
case 2:
_a.sent();
return [3 /*break*/, 0];
case 3: return [2 /*return*/];
}
});
});
};
NgxLiveEndPoint.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
NgxLiveEndPoint.ctorParameters = function () { return [
{ type: NgxEndpointService },
{ type: NgxEndPointData }
]; };
/** @nocollapse */ NgxLiveEndPoint.ngInjectableDef = i0.defineInjectable({ factory: function NgxLiveEndPoint_Factory() { return new NgxLiveEndPoint(i0.inject(i1.NgxEndpointService), i0.inject(i2.NgxEndPointData)); }, token: NgxLiveEndPoint, providedIn: "root" });
return NgxLiveEndPoint;
}(NgxEndPoint));
export { NgxLiveEndPoint };
if (false) {
/** @type {?} */
NgxLiveEndPoint.prototype.endpointservice;
/** @type {?} */
NgxLiveEndPoint.prototype.endpoint;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxpdmUtZW5kLXBvaW50cy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1lbmRwb2ludHMvIiwic291cmNlcyI6WyJsaWIvbmd4LWVuZHBvaW50cy9uZ3gtbGl2ZS1lbmQtcG9pbnRzL25neC1saXZlLWVuZC1wb2ludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQXlCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUcsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUcsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFHLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBRzFEO0lBR3dDLDJDQUFjO0lBQ3BELHlCQUFtQixlQUFtQyxFQUFTLFFBQXlCO1FBQXhGLFlBQ0Usa0JBQU0sZUFBZSxFQUFFLFFBQVEsQ0FBQyxTQUNqQztRQUZrQixxQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUFBUyxjQUFRLEdBQVIsUUFBUSxDQUFpQjs7SUFFeEYsQ0FBQztJQUNEOzs7O01BSUU7Ozs7Ozs7SUFDVyxxQ0FBVzs7Ozs7O0lBQXhCOzs7Ozt3QkFDQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzt3QkFDcEIscUJBQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFBOzt3QkFBeEIsU0FBd0IsQ0FBQzs7Ozs7S0FDekI7SUFFRDs7TUFFRTs7Ozs7O0lBQ00sK0JBQUs7Ozs7O0lBQWIsVUFBYyxFQUFFO1FBQ2QsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFBLE9BQU8sSUFBSSxPQUFBLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQXZCLENBQXVCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBQ0Q7O01BRUU7Ozs7O0lBQ1kscUNBQVc7Ozs7SUFBekI7Ozs7OzZCQUNTLElBQUksQ0FBQyxPQUFPO3dCQUNqQixxQkFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUE7O3dCQUE1QixTQUE0QixDQUFDO3dCQUM3QixxQkFBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUE7O3dCQUE3QyxTQUE2QyxDQUFDOzs7Ozs7S0FFbEQ7O2dCQS9CRCxVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dCQVBTLGtCQUFrQjtnQkFFbEIsZUFBZTs7OzBCQUh6QjtDQXNDQyxBQWhDRCxDQUd3QyxXQUFXLEdBNkJsRDtTQTdCWSxlQUFlOzs7SUFDZCwwQ0FBMEM7O0lBQUUsbUNBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgIE9uRGVzdHJveSwgQ29tcG9uZW50LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyAgTmd4RW5kcG9pbnRTZXJ2aWNlIH0gZnJvbSAnLi4vbmd4LWVuZHBvaW50cy5zZXJ2aWNlJztcbmltcG9ydCB7ICBOZ3hFbmRQb2ludCB9IGZyb20gJy4uL25neC1lbmRwb2ludHMnO1xuaW1wb3J0IHsgIE5neEVuZFBvaW50RGF0YSB9IGZyb20gJy4uL25neC1lbmRwb2ludC5mb3JtYXQnO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE5neExpdmVFbmRQb2ludDxUPiBleHRlbmRzIE5neEVuZFBvaW50PFQ+IHtcbiAgY29uc3RydWN0b3IocHVibGljIGVuZHBvaW50c2VydmljZTogTmd4RW5kcG9pbnRTZXJ2aWNlLCBwdWJsaWMgZW5kcG9pbnQ6IE5neEVuZFBvaW50RGF0YSkge1xuICAgIHN1cGVyKGVuZHBvaW50c2VydmljZSwgZW5kcG9pbnQpO1xuICB9XG4gIC8qKlxuICAqIFJlcXVlc3RzIGRhdGEgZnJvbSBhbiBodHRwIHNvdXJjZVxuICAqIE9wdGlvbmFsbHkgY29udmVydHMgcmVsYXRpdmUgZGF0ZXMgKG5vdy0xZCkgaW50byByZWFkYWJsZSB1cmxzIGJ5IERhdGVzT3V0cHV0Rm9ybWF0XG4gICogQWRkcyB0aGUgcmVzdWx0IG9mIHRoZSByZXF1ZXN0IHRvIEJlaGF2aW9yU3ViamVjdCBkYXRhIHRoYXQgY2FuIGJlIHN1YnNjcmliZWRcbiAgKi9cbiAgcHVibGljIGFzeW5jIHJlcXVlc3REYXRhKCkge1xuICAgdGhpcy5ydW5uaW5nID0gdHJ1ZTtcbiAgIGF3YWl0IHRoaXMucmVmcmVzaERhdGEoKTtcbiAgfVxuXG4gIC8qKlxuICAqIGludGVybmFsIGZ1bmN0aW9uIHRvIHdhaXQgYmVmb3JlIG5leHQgbGl2ZSByZXF1ZXN0IHdpbGwgYmUgbWFkZVxuICAqL1xuICBwcml2YXRlIHNsZWVwKG1zKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xuICB9XG4gIC8qKlxuICAqIGludGVybmFsIGZ1bmN0aW9uIHRvIHJ1biBsaXZlIHJlcXVlc3RzIGluIGxvb3BcbiAgKi9cbiAgcHJpdmF0ZSBhc3luYyByZWZyZXNoRGF0YSgpIHtcbiAgICB3aGlsZSAodGhpcy5ydW5uaW5nKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlcXVlc3RJbnRlcm5hbCgpO1xuICAgICAgYXdhaXQgIHRoaXMuc2xlZXAodGhpcy5lbmRwb2ludC5saXZlaW50ZXJ2YWwpO1xuICAgIH1cbiB9XG59XG4iXX0=