UNPKG

poe-i18n

Version:

i18n utility for Path of Exile

30 lines (29 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var escapeStringRegexp = require("escape-string-regexp"); var formatters_1 = require("../localize/formatters"); var NamedGroupsRegexp_1 = require("../util/NamedGroupsRegexp"); function asRegexp(translation) { var formatters = translation.formatters, text = translation.text; var groups = []; var regexp = escapeStringRegexp(text) .replace(/%(\d+)(\\\$\\\+d|%)/g, function (match, arg, modifier) { groups.push(arg); var formatter = formatters .filter(function (f) { return typeof f !== 'string'; }) .find(function (_a) { var other = _a.arg; return "" + other === arg; }); var prefix = modifier === '\\$\\+d' ? '\\+' : ''; if (formatter === undefined) { return prefix + "(-?\\d+)"; } else { return prefix + "(" + formatters_1.regexpFactory(formatter.id) + ")"; } }) .replace(/%%/g, '%'); return new NamedGroupsRegexp_1.default(new RegExp("^" + regexp + "$"), groups); } exports.default = asRegexp;