%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/opti/workflow/node_modules/messageformat/lib/
Upload File :
Create Path :
Current File : /home/opti/workflow/node_modules/messageformat/lib/plurals.js

"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getPlural = getPlural;
exports.getAllPlurals = getAllPlurals;

var _pluralCategories = _interopRequireDefault(require("make-plural/umd/pluralCategories"));

var _plurals = _interopRequireDefault(require("make-plural/umd/plurals"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/**
 * @class
 * @private
 * @hideconstructor
 * @classdesc Utility getter/wrapper for pluralization functions from
 * {@link http://github.com/eemeli/make-plural.js make-plural}
 */
function wrapPluralFunc(lc, pf, pluralKeyChecks) {
  var fn = function () {
    return pf.apply(this, arguments);
  };

  fn.toString = () => pf.toString();

  if (pluralKeyChecks) {
    const pc = _pluralCategories.default[lc] || {};
    fn.cardinal = pc.cardinal;
    fn.ordinal = pc.ordinal;
  } else {
    fn.cardinal = [];
    fn.ordinal = [];
  }

  return fn;
}

function getPlural(locale, {
  pluralKeyChecks
}) {
  for (let lc = String(locale); lc; lc = lc.replace(/[-_]?[^-_]*$/, '')) {
    const pf = _plurals.default[lc];
    if (pf) return wrapPluralFunc(lc, pf, pluralKeyChecks);
  }

  throw new Error('Localisation function not found for locale ' + JSON.stringify(locale));
}

function getAllPlurals({
  pluralKeyChecks
}) {
  const locales = {};
  const keys = Object.keys(_plurals.default);

  for (let i = 0; i < keys.length; ++i) {
    const lc = keys[i];
    locales[lc] = wrapPluralFunc(lc, _plurals.default[lc], pluralKeyChecks);
  }

  return locales;
}

Zerion Mini Shell 1.0