Repository URL to install this package:
|
Version:
0.3.1 ▾
|
motif-web-admin-core
/
esm2015
/
lib
/
sections
/
WebContent
/
components
/
update-poller
/
UpdatePoller.js
|
|---|
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { interval } from "rxjs/internal/observable/interval";
import { startWith, switchMap, takeWhile } from "rxjs/operators";
import { Observable } from "rxjs";
import { BundleUtils, PublishingStatus } from '../BundleUtils';
/** @type {?} */
const LOG_TAG = '[UpdatePoller]';
/** @enum {string} */
const UpdatePollerEventStatus = {
Complete: "Complete",
Stopped: "Stopped",
Error: "Error",
};
export { UpdatePollerEventStatus };
/**
* @record
*/
export function UpdatePollerEvent() { }
if (false) {
/** @type {?} */
UpdatePollerEvent.prototype.source;
/** @type {?} */
UpdatePollerEvent.prototype.status;
/** @type {?} */
UpdatePollerEvent.prototype.bundleStatus;
}
export class UpdatePoller {
/**
* @param {?} bundleName
* @param {?} bundleVersion
* @param {?} webContentService
* @param {?} logger
*/
constructor(bundleName, bundleVersion, webContentService, logger) {
this.bundleName = bundleName;
this.bundleVersion = bundleVersion;
this.webContentService = webContentService;
this.logger = logger;
this._pollCount = 0;
this._pollTime = 0;
this._currentPollCount = 0;
}
/**
* @param {?} pollcount
* @param {?} polltime
* @param {?} userData
* @return {?}
*/
start(pollcount, polltime, userData) {
this._userData = userData;
this._pollCount = pollcount;
this._pollTime = polltime;
return new Observable((/**
* @param {?} observer
* @return {?}
*/
(observer) => {
this._interval = interval(polltime)
.pipe(takeWhile((/**
* @param {?} it
* @return {?}
*/
it => this._currentPollCount < this._pollCount)), startWith(0), switchMap((/**
* @return {?}
*/
() => this.webContentService.getBundle(this.bundleName, this.bundleVersion))));
this._interval.subscribe((/**
* @param {?} res
* @return {?}
*/
(res) => {
this.logger.debug(LOG_TAG, 'Poll event: ', res);
this._bundleStatus = res;
/** @type {?} */
let pubStatus = BundleUtils.buildSyntheticStatus(res);
res.info["syntheticStatus"] = pubStatus;
if ((pubStatus === PublishingStatus.Published) || (pubStatus === PublishingStatus.Error)) {
this.stop();
observer.next({ source: this, status: UpdatePollerEventStatus.Complete, bundleStatus: this._bundleStatus });
observer.complete();
return;
}
else {
this._currentPollCount++;
}
if (this._currentPollCount >= this._pollCount) {
observer.next({ source: this, status: UpdatePollerEventStatus.Stopped, bundleStatus: this._bundleStatus });
observer.complete();
}
}));
}));
}
/**
* @return {?}
*/
stop() {
this.logger.debug(LOG_TAG, 'Stop called');
this._currentPollCount = this._pollCount + 1;
}
/**
* @return {?}
*/
get userData() {
return this._userData;
}
/**
* @return {?}
*/
get pollCount() {
return this._pollCount;
}
/**
* @return {?}
*/
get pollTime() {
return this._pollTime;
}
/**
* @return {?}
*/
get currentPollCount() {
return this._currentPollCount;
}
}
if (false) {
/**
* @type {?}
* @private
*/
UpdatePoller.prototype._userData;
/**
* @type {?}
* @private
*/
UpdatePoller.prototype._bundleStatus;
/**
* @type {?}
* @private
*/
UpdatePoller.prototype._interval;
/**
* @type {?}
* @private
*/
UpdatePoller.prototype._pollCount;
/**
* @type {?}
* @private
*/
UpdatePoller.prototype._pollTime;
/**
* @type {?}
* @private
*/
UpdatePoller.prototype._currentPollCount;
/** @type {?} */
UpdatePoller.prototype.bundleName;
/** @type {?} */
UpdatePoller.prototype.bundleVersion;
/**
* @type {?}
* @private
*/
UpdatePoller.prototype.webContentService;
/**
* @type {?}
* @private
*/
UpdatePoller.prototype.logger;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXBkYXRlUG9sbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbW90aWYtd2ViLWFkbWluLWNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VjdGlvbnMvV2ViQ29udGVudC9jb21wb25lbnRzL3VwZGF0ZS1wb2xsZXIvVXBkYXRlUG9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWEsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUUsT0FBTyxFQUFFLFVBQVUsRUFBeUIsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztNQUV6RCxPQUFPLEdBQUcsZ0JBQWdCOzs7SUFHNUIsVUFBVyxVQUFVO0lBQ3JCLFNBQVUsU0FBUztJQUNuQixPQUFRLE9BQU87Ozs7OztBQUduQix1Q0FJQzs7O0lBSEcsbUNBQXFCOztJQUNyQixtQ0FBZ0M7O0lBQ2hDLHlDQUEwQjs7QUFHOUIsTUFBTSxPQUFPLFlBQVk7Ozs7Ozs7SUFVckIsWUFBNEIsVUFBaUIsRUFDekIsYUFBcUIsRUFDN0IsaUJBQWlDLEVBQ2pDLE1BQWlCO1FBSEQsZUFBVSxHQUFWLFVBQVUsQ0FBTztRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUM3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWdCO1FBQ2pDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFQckIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxzQkFBaUIsR0FBRyxDQUFDLENBQUM7SUFLQyxDQUFDOzs7Ozs7O0lBR3pCLEtBQUssQ0FBQyxTQUFpQixFQUFFLFFBQWUsRUFBRSxRQUFhO1FBRTFELElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FB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O0lBQ3JDLHlDQUF5Qzs7Ozs7SUFDekMsOEJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVuZGxlc1NlcnZpY2UsIEJ1bmRsZVN0YXR1cyB9IGZyb20gJ0B3YS1tb3RpZi1vcGVuLWFwaS93ZWItY29udGVudC1zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9ICBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGludGVydmFsIH0gZnJvbSBcInJ4anMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9pbnRlcnZhbFwiO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFrZVdoaWxlIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBOR1hMb2dnZXIgfSBmcm9tICduZ3gtbG9nZ2VyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBCdW5kbGVVdGlscywgUHVibGlzaGluZ1N0YXR1cyB9IGZyb20gJy4uL0J1bmRsZVV0aWxzJztcblxuY29uc3QgTE9HX1RBRyA9ICdbVXBkYXRlUG9sbGVyXSc7XG5cbmV4cG9ydCBlbnVtIFVwZGF0ZVBvbGxlckV2ZW50U3RhdHVzIHtcbiAgICBDb21wbGV0ZSA9IFwiQ29tcGxldGVcIixcbiAgICBTdG9wcGVkID0gXCJTdG9wcGVkXCIsXG4gICAgRXJyb3IgPSBcIkVycm9yXCJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVQb2xsZXJFdmVudCB7XG4gICAgc291cmNlOiBVcGRhdGVQb2xsZXI7IFxuICAgIHN0YXR1czogVXBkYXRlUG9sbGVyRXZlbnRTdGF0dXMsXG4gICAgYnVuZGxlU3RhdHVzOiBCdW5kbGVTdGF0dXNcbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZVBvbGxlciB7XG5cbiAgICBwcml2YXRlIF91c2VyRGF0YTphbnk7XG5cbiAgICBwcml2YXRlIF9idW5kbGVTdGF0dXM6IEJ1bmRsZVN0YXR1cztcbiAgICBwcml2YXRlIF9pbnRlcnZhbDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHByaXZhdGUgX3BvbGxDb3VudCA9IDA7XG4gICAgcHJpdmF0ZSBfcG9sbFRpbWUgPSAwO1xuICAgIHByaXZhdGUgX2N1cnJlbnRQb2xsQ291bnQgPSAwO1xuICAgIFxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBidW5kbGVOYW1lOnN0cmluZywgXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBidW5kbGVWZXJzaW9uOiBzdHJpbmcsIFxuICAgICAgICBwcml2YXRlIHdlYkNvbnRlbnRTZXJ2aWNlOiBCdW5kbGVzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsb2dnZXI6IE5HWExvZ2dlcil7fVxuXG5cbiAgICBwdWJsaWMgc3RhcnQocG9sbGNvdW50OiBudW1iZXIsIHBvbGx0aW1lOm51bWJlciwgdXNlckRhdGE6IGFueSkgOiBPYnNlcnZhYmxlPFVwZGF0ZVBvbGxlckV2ZW50PiB7XG5cbiAgICAgICAgdGhpcy5fdXNlckRhdGEgPSB1c2VyRGF0YTtcbiAgICAgICAgdGhpcy5fcG9sbENvdW50ID0gcG9sbGNvdW50O1xuICAgICAgICB0aGlzLl9wb2xsVGltZSA9IHBvbGx0aW1lO1xuXG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpPT57XG4gICAgICAgICAgICB0aGlzLl9pbnRlcnZhbCA9IGludGVydmFsKHBvbGx0aW1lKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVdoaWxlKGl0ID0+IHRoaXMuX2N1cnJlbnRQb2xsQ291bnQgPCB0aGlzLl9wb2xsQ291bnQpLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCgwKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy53ZWJDb250ZW50U2VydmljZS5nZXRCdW5kbGUodGhpcy5idW5kbGVOYW1lLCB0aGlzLmJ1bmRsZVZlcnNpb24pIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLl9pbnRlcnZhbC5zdWJzY3JpYmUoIChyZXM6QnVuZGxlU3RhdHVzKSA9PiB7IFxuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKExPR19UQUcgLCAnUG9sbCBldmVudDogJywgcmVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9idW5kbGVTdGF0dXMgPSByZXM7IFxuICAgICAgICAgICAgICAgIGxldCBwdWJTdGF0dXM6UHVibGlzaGluZ1N0YXR1cyA9IEJ1bmRsZVV0aWxzLmJ1aWxkU3ludGhldGljU3RhdHVzKHJlcyk7XG4gICAgICAgICAgICAgICAgcmVzLmluZm9bXCJzeW50aGV0aWNTdGF0dXNcIl0gPSBwdWJTdGF0dXM7XG4gICAgICAgICAgICAgICAgaWYgKChwdWJTdGF0dXMgPT09IFB1Ymxpc2hpbmdTdGF0dXMuUHVibGlzaGVkKSB8fCAocHViU3RhdHVzID09PSBQdWJsaXNoaW5nU3RhdHVzLkVycm9yKSl7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHsgc291cmNlOiB0aGlzLCBzdGF0dXM6IFVwZGF0ZVBvbGxlckV2ZW50U3RhdHVzLkNvbXBsZXRlLCBidW5kbGVTdGF0dXM6IHRoaXMuX2J1bmRsZVN0YXR1cyB9KTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQb2xsQ291bnQrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQb2xsQ291bnQgPj0gdGhpcy5fcG9sbENvdW50KXtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh7IHNvdXJjZTogdGhpcywgc3RhdHVzOiBVcGRhdGVQb2xsZXJFdmVudFN0YXR1cy5TdG9wcGVkLCBidW5kbGVTdGF0dXM6IHRoaXMuX2J1bmRsZVN0YXR1cyB9KTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9ICk7XG4gICAgICAgIH0pO1xuXG4gICAgfSBcblxuICAgIHB1YmxpYyBzdG9wKCl7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKExPR19UQUcgLCAnU3RvcCBjYWxsZWQnKTtcbiAgICAgICAgdGhpcy5fY3VycmVudFBvbGxDb3VudCA9IHRoaXMuX3BvbGxDb3VudCArIDE7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB1c2VyRGF0YSgpOmFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl91c2VyRGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBvbGxDb3VudCgpOm51bWJlcntcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BvbGxDb3VudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBvbGxUaW1lKCk6bnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BvbGxUaW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY3VycmVudFBvbGxDb3VudCgpOm51bWJlcntcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRQb2xsQ291bnQ7XG4gICAgfVxuXG59Il19