@phensley/cldr-core
Version:
Core library for @phensley/cldr
30 lines • 1.29 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var encoding_1 = require("../../resource/encoding");
var cache_1 = require("../../utils/cache");
var search_1 = require("../../utils/search");
var autogen_dayperiods_1 = require("./autogen.dayperiods");
var parseRule = function (raw) {
var parts = raw.split('|');
var minutes = parts[1].split(' ').map(encoding_1.base100decode);
var keys = parts[0].split(' ').map(function (s) { return autogen_dayperiods_1.dayPeriodKeys[Number(s)]; });
return { keys: keys, minutes: minutes };
};
var DayPeriodRules = /** @class */ (function () {
function DayPeriodRules(cacheSize) {
this.cacheSize = cacheSize;
this.cache = new cache_1.Cache(parseRule, cacheSize);
}
DayPeriodRules.prototype.get = function (bundle, minutes) {
var raw = autogen_dayperiods_1.dayPeriodRules[bundle.languageRegion()] || autogen_dayperiods_1.dayPeriodRules[bundle.language()];
if (raw === undefined) {
return undefined;
}
var rule = this.cache.get(raw);
var i = search_1.binarySearch(rule.minutes, minutes);
return rule.keys[i];
};
return DayPeriodRules;
}());
exports.DayPeriodRules = DayPeriodRules;
//# sourceMappingURL=rules.js.map
;