@busy-web/utils
Version:
@busy-web util methods
28 lines • 3.47 kB
JavaScript
;
/**
* @module Utils
*
*/
Object.defineProperty(exports, "__esModule", { value: true });
const getString = (str) => {
if (window.__STRING_REGISTRY__ && window.__STRING_REGISTRY__[str]) {
return window.__STRING_REGISTRY__[str];
}
return str;
};
function fmt(str, formats) {
// first, replace any ORDERED replacements.
let idx = 0; // the current index for non-numerical replacements
return str.replace(/%@([0-9]+)?/g, (_s, argIndex) => {
let i = argIndex ? parseInt(argIndex, 10) - 1 : idx++;
let r = i < formats.length ? formats[i] : undefined;
return typeof r === 'string' ? r : r === null ? '(null)' : r === undefined ? '' : '' + r;
});
}
exports.fmt = fmt;
function loc(str, formats) {
str = getString(str);
return fmt(str, formats);
}
exports.loc = loc;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOztBQUlILE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBVyxFQUFVLEVBQUU7SUFDekMsSUFBSSxNQUFNLENBQUMsbUJBQW1CLElBQUksTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2xFLE9BQU8sTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3ZDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDWixDQUFDLENBQUM7QUFFRixhQUFvQixHQUFXLEVBQUUsT0FBYztJQUM3QywyQ0FBMkM7SUFDM0MsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsbURBQW1EO0lBQ2hFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxFQUFVLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO1FBQ2xFLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNwRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFSRCxrQkFRQztBQUVELGFBQW9CLEdBQVcsRUFBRSxPQUFjO0lBQzlDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFIRCxrQkFHQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBVdGlsc1xuICpcbiAqL1xuXG5kZWNsYXJlIHZhciB3aW5kb3c6IHsgX19TVFJJTkdfUkVHSVNUUllfXzogYW55IH07XG5cbmNvbnN0IGdldFN0cmluZyA9IChzdHI6IHN0cmluZyk6IHN0cmluZyA9PiB7XG5cdGlmICh3aW5kb3cuX19TVFJJTkdfUkVHSVNUUllfXyAmJiB3aW5kb3cuX19TVFJJTkdfUkVHSVNUUllfX1tzdHJdKSB7XG5cdFx0cmV0dXJuIHdpbmRvdy5fX1NUUklOR19SRUdJU1RSWV9fW3N0cl07XG5cdH1cblx0cmV0dXJuIHN0cjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmbXQoc3RyOiBzdHJpbmcsIGZvcm1hdHM6IGFueVtdKSB7XG4gIC8vIGZpcnN0LCByZXBsYWNlIGFueSBPUkRFUkVEIHJlcGxhY2VtZW50cy5cbiAgbGV0IGlkeCA9IDA7IC8vIHRoZSBjdXJyZW50IGluZGV4IGZvciBub24tbnVtZXJpY2FsIHJlcGxhY2VtZW50c1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLyVAKFswLTldKyk/L2csIChfczogc3RyaW5nLCBhcmdJbmRleDogc3RyaW5nKSA9PiB7XG4gICAgbGV0IGkgPSBhcmdJbmRleCA/IHBhcnNlSW50KGFyZ0luZGV4LCAxMCkgLSAxIDogaWR4Kys7XG4gICAgbGV0IHIgPSBpIDwgZm9ybWF0cy5sZW5ndGggPyBmb3JtYXRzW2ldIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiB0eXBlb2YgciA9PT0gJ3N0cmluZycgPyByIDogciA9PT0gbnVsbCA/ICcobnVsbCknIDogciA9PT0gdW5kZWZpbmVkID8gJycgOiAnJyArIHI7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jKHN0cjogc3RyaW5nLCBmb3JtYXRzOiBhbnlbXSk6IHN0cmluZyB7XG5cdHN0ciA9IGdldFN0cmluZyhzdHIpO1xuXHRyZXR1cm4gZm10KHN0ciwgZm9ybWF0cyk7XG59XG4iXX0=