UNPKG

virool-pivot

Version:

A web-based exploratory visualization UI for Druid.io

103 lines (102 loc) 3.46 kB
"use strict"; var immutable_class_1 = require('immutable-class'); var chronoshift_1 = require('chronoshift'); var check; var RefreshRule = (function () { function RefreshRule(parameters) { var rule = parameters.rule; if (rule !== RefreshRule.FIXED && rule !== RefreshRule.QUERY && rule !== RefreshRule.REALTIME) { throw new Error("rule must be on of: " + RefreshRule.FIXED + ", " + RefreshRule.QUERY + ", or " + RefreshRule.REALTIME); } this.rule = rule; this.refresh = parameters.refresh; if (this.rule !== RefreshRule.FIXED && !this.refresh) { this.refresh = RefreshRule.DEFAULT_QUERY_REFRESH; } this.time = parameters.time; } RefreshRule.isRefreshRule = function (candidate) { return immutable_class_1.isInstanceOf(candidate, RefreshRule); }; RefreshRule.query = function (refresh) { return new RefreshRule({ rule: RefreshRule.QUERY, refresh: refresh }); }; RefreshRule.fromJS = function (parameters) { var value = { rule: parameters.rule }; if (parameters.refresh) { value.refresh = chronoshift_1.Duration.fromJS(parameters.refresh); } if (parameters.time) { value.time = new Date(parameters.time); } return new RefreshRule(value); }; RefreshRule.prototype.valueOf = function () { var value = { rule: this.rule }; if (this.refresh) { value.refresh = this.refresh; } if (this.time) { value.time = this.time; } return value; }; RefreshRule.prototype.toJS = function () { var js = { rule: this.rule }; if (this.refresh) { js.refresh = this.refresh.toJS(); } if (this.time) { js.time = this.time; } return js; }; RefreshRule.prototype.toJSON = function () { return this.toJS(); }; RefreshRule.prototype.toString = function () { return "[RefreshRule: " + this.rule + "]"; }; RefreshRule.prototype.equals = function (other) { return RefreshRule.isRefreshRule(other) && this.rule === other.rule && Boolean(this.refresh) === Boolean(other.refresh) && (!this.refresh || this.refresh.equals(other.refresh)) && (!this.time || this.time.valueOf() === other.time.valueOf()); }; RefreshRule.prototype.isFixed = function () { return this.rule === RefreshRule.FIXED; }; RefreshRule.prototype.isQuery = function () { return this.rule === RefreshRule.QUERY; }; RefreshRule.prototype.isRealtime = function () { return this.rule === RefreshRule.REALTIME; }; RefreshRule.prototype.shouldUpdate = function (maxTime) { if (this.isFixed()) return false; if (!maxTime) return true; var refresh = this.refresh; if (!refresh) return false; return Date.now() - maxTime.updated.valueOf() > refresh.getCanonicalLength(); }; RefreshRule.FIXED = 'fixed'; RefreshRule.QUERY = 'query'; RefreshRule.REALTIME = 'realtime'; RefreshRule.DEFAULT_QUERY_REFRESH = chronoshift_1.Duration.fromJS('PT1M'); return RefreshRule; }()); exports.RefreshRule = RefreshRule; check = RefreshRule;