ngx-endpoints
Version:
A library to dynamically load data from http endpoints / urls in angular
76 lines • 5.54 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
*/
export class NgxLiveEndPoint extends NgxEndPoint {
/**
* @param {?} endpointservice
* @param {?} endpoint
*/
constructor(endpointservice, endpoint) {
super(endpointservice, endpoint);
this.endpointservice = endpointservice;
this.endpoint = endpoint;
}
/**
* 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 {?}
*/
requestData() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
this.running = true;
yield this.refreshData();
});
}
/**
* internal function to wait before next live request will be made
* @param {?} ms
* @return {?}
*/
sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
/**
* internal function to run live requests in loop
* @return {?}
*/
refreshData() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
while (this.running) {
yield this.requestInternal();
yield this.sleep(this.endpoint.liveinterval);
}
});
}
}
NgxLiveEndPoint.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
NgxLiveEndPoint.ctorParameters = () => [
{ 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" });
if (false) {
/** @type {?} */
NgxLiveEndPoint.prototype.endpointservice;
/** @type {?} */
NgxLiveEndPoint.prototype.endpoint;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxpdmUtZW5kLXBvaW50cy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1lbmRwb2ludHMvIiwic291cmNlcyI6WyJsaWIvbmd4LWVuZHBvaW50cy9uZ3gtbGl2ZS1lbmQtcG9pbnRzL25neC1saXZlLWVuZC1wb2ludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQXlCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUcsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUcsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFHLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBTTFELE1BQU0sT0FBTyxlQUFtQixTQUFRLFdBQWM7Ozs7O0lBQ3BELFlBQW1CLGVBQW1DLEVBQVMsUUFBeUI7UUFDdEYsS0FBSyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQURoQixvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtJQUV4RixDQUFDOzs7Ozs7O0lBTVksV0FBVzs7WUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUIsQ0FBQztLQUFBOzs7Ozs7SUFLTyxLQUFLLENBQUMsRUFBRTtRQUNkLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQzs7Ozs7SUFJYSxXQUFXOztZQUN2QixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ25CLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUM3QixNQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUMvQztRQUNKLENBQUM7S0FBQTs7O1lBL0JELFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQVBTLGtCQUFrQjtZQUVsQixlQUFlOzs7OztJQU9YLDBDQUEwQzs7SUFBRSxtQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyAgT25EZXN0cm95LCBDb21wb25lbnQsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ICBOZ3hFbmRwb2ludFNlcnZpY2UgfSBmcm9tICcuLi9uZ3gtZW5kcG9pbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgIE5neEVuZFBvaW50IH0gZnJvbSAnLi4vbmd4LWVuZHBvaW50cyc7XG5pbXBvcnQgeyAgTmd4RW5kUG9pbnREYXRhIH0gZnJvbSAnLi4vbmd4LWVuZHBvaW50LmZvcm1hdCc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmd4TGl2ZUVuZFBvaW50PFQ+IGV4dGVuZHMgTmd4RW5kUG9pbnQ8VD4ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZW5kcG9pbnRzZXJ2aWNlOiBOZ3hFbmRwb2ludFNlcnZpY2UsIHB1YmxpYyBlbmRwb2ludDogTmd4RW5kUG9pbnREYXRhKSB7XG4gICAgc3VwZXIoZW5kcG9pbnRzZXJ2aWNlLCBlbmRwb2ludCk7XG4gIH1cbiAgLyoqXG4gICogUmVxdWVzdHMgZGF0YSBmcm9tIGFuIGh0dHAgc291cmNlXG4gICogT3B0aW9uYWxseSBjb252ZXJ0cyByZWxhdGl2ZSBkYXRlcyAobm93LTFkKSBpbnRvIHJlYWRhYmxlIHVybHMgYnkgRGF0ZXNPdXRwdXRGb3JtYXRcbiAgKiBBZGRzIHRoZSByZXN1bHQgb2YgdGhlIHJlcXVlc3QgdG8gQmVoYXZpb3JTdWJqZWN0IGRhdGEgdGhhdCBjYW4gYmUgc3Vic2NyaWJlZFxuICAqL1xuICBwdWJsaWMgYXN5bmMgcmVxdWVzdERhdGEoKSB7XG4gICB0aGlzLnJ1bm5pbmcgPSB0cnVlO1xuICAgYXdhaXQgdGhpcy5yZWZyZXNoRGF0YSgpO1xuICB9XG5cbiAgLyoqXG4gICogaW50ZXJuYWwgZnVuY3Rpb24gdG8gd2FpdCBiZWZvcmUgbmV4dCBsaXZlIHJlcXVlc3Qgd2lsbCBiZSBtYWRlXG4gICovXG4gIHByaXZhdGUgc2xlZXAobXMpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG4gIH1cbiAgLyoqXG4gICogaW50ZXJuYWwgZnVuY3Rpb24gdG8gcnVuIGxpdmUgcmVxdWVzdHMgaW4gbG9vcFxuICAqL1xuICBwcml2YXRlIGFzeW5jIHJlZnJlc2hEYXRhKCkge1xuICAgIHdoaWxlICh0aGlzLnJ1bm5pbmcpIHtcbiAgICAgIGF3YWl0IHRoaXMucmVxdWVzdEludGVybmFsKCk7XG4gICAgICBhd2FpdCAgdGhpcy5zbGVlcCh0aGlzLmVuZHBvaW50LmxpdmVpbnRlcnZhbCk7XG4gICAgfVxuIH1cbn1cbiJdfQ==