redux-crud-store
Version:
Store of server-side models for Redux single page applications
69 lines (55 loc) • 2.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getHalfCachePeriod = exports.getCachePeriod = exports.halfCachePeriod = exports.cachePeriod = exports.cachePeriodAgo = undefined;
var _devMessage = require('./devMessage');
var _devMessage2 = _interopRequireDefault(_devMessage);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var TEN_MINUTES = 10 * 60 * 1000;
function getCachePeriod() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
showMessages = _ref.showMessages;
var value = process.env.CACHE_PERIOD || process.env.REACT_APP_CACHE_PERIOD || TEN_MINUTES;
value = Math.round(value);
if (isNaN(value)) {
value = TEN_MINUTES;
if (showMessages) {
(0, _devMessage2.default)('getCachePeriod got NaN! Falling back to ten minute cache period');
}
}
if (value < 1000) {
value = TEN_MINUTES;
if (showMessages) {
(0, _devMessage2.default)('getCachePeriod got a value under one second!\n Falling back to ten minute cache period');
}
}
return value;
}
function getHalfCachePeriod() {
var value = process.env.HALF_CACHE_PERIOD || process.env.REACT_APP_HALF_CACHE_PERIOD || getCachePeriod() / 2;
value = Math.round(value);
if (isNaN(value)) {
value = Math.round(getCachePeriod({ showMessages: false }) / 2);
(0, _devMessage2.default)('getHalfCachePeriod got NaN! Falling back to half of cachePeriod: ' + value);
}
if (value < 500) {
value = Math.round(getCachePeriod({ showMessages: false }) / 2);
(0, _devMessage2.default)('getHalfCachePeriod got a value under 500ms!\n Falling back to half of cache period: ' + value);
}
return value;
}
var cachePeriod = getCachePeriod();
var halfCachePeriod = getHalfCachePeriod();
function cachePeriodAgo(now) {
var customCachePeriod = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
var actualCachePeriod = customCachePeriod || cachePeriod;
return now - actualCachePeriod;
}
// public
exports.cachePeriodAgo = cachePeriodAgo;
exports.cachePeriod = cachePeriod;
exports.halfCachePeriod = halfCachePeriod;
// only visible for testing
exports.getCachePeriod = getCachePeriod;
exports.getHalfCachePeriod = getHalfCachePeriod;