poe-i18n
Version:
i18n utility for Path of Exile
30 lines (29 loc) • 1.15 kB
JavaScript
;
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;