relative-time-format
Version:
A convenient Intl.RelativeTimeFormat polyfill
65 lines (49 loc) • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _PluralRuleFunctions = _interopRequireDefault(require("./PluralRuleFunctions"));
var _getPluralRulesLocale = _interopRequireDefault(require("./getPluralRulesLocale"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
/**
* `Intl.PluralRules` polyfill.
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/PluralRules
*/
var PluralRules =
/*#__PURE__*/
function () {
function PluralRules(locale, options) {
_classCallCheck(this, PluralRules);
var locales = PluralRules.supportedLocalesOf(locale);
if (locales.length === 0) {
throw new RangeError("Unsupported locale: " + locale);
}
if (options && options.type !== "cardinal") {
throw new RangeError("Only \"cardinal\" \"type\" is supported");
}
this.$ = _PluralRuleFunctions.default[(0, _getPluralRulesLocale.default)(locales[0])];
}
_createClass(PluralRules, [{
key: "select",
value: function select(number) {
return this.$(number);
}
}], [{
key: "supportedLocalesOf",
value: function supportedLocalesOf(locales) {
if (typeof locales === "string") {
locales = [locales];
}
return locales.filter(function (locale) {
return _PluralRuleFunctions.default[(0, _getPluralRulesLocale.default)(locale)];
});
}
}]);
return PluralRules;
}();
exports.default = PluralRules;
//# sourceMappingURL=PluralRules.js.map