mirror of https://github.com/vector-im/riot-web
Fix logging of missing substitution variables
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>pull/21833/head
parent
c002d3ff99
commit
df8a8f61e2
|
@ -141,6 +141,7 @@ export function replaceByRegexes(text, mapping) {
|
||||||
// We look for matches: if we find one, we get three parts: everything before the match, the replaced part,
|
// We look for matches: if we find one, we get three parts: everything before the match, the replaced part,
|
||||||
// and everything after the match. Insert all three into the output. We need to do this because we can insert objects.
|
// and everything after the match. Insert all three into the output. We need to do this because we can insert objects.
|
||||||
// Otherwise there would be no need for the splitting and we could do simple replcement.
|
// Otherwise there would be no need for the splitting and we could do simple replcement.
|
||||||
|
let matchFoundSomewhere = false; // If we don't find a match anywhere we want to log it
|
||||||
for (const outputIndex in output) {
|
for (const outputIndex in output) {
|
||||||
const inputText = output[outputIndex];
|
const inputText = output[outputIndex];
|
||||||
if (typeof inputText !== 'string') { // We might have inserted objects earlier, don't try to replace them
|
if (typeof inputText !== 'string') { // We might have inserted objects earlier, don't try to replace them
|
||||||
|
@ -149,15 +150,9 @@ export function replaceByRegexes(text, mapping) {
|
||||||
|
|
||||||
const match = inputText.match(regexp);
|
const match = inputText.match(regexp);
|
||||||
if (!match) {
|
if (!match) {
|
||||||
// Missing matches is entirely possible because you might choose to show some variables only in the case
|
|
||||||
// of e.g. plurals. It's still a bit suspicious, and could be due to an error, so log it.
|
|
||||||
// However, not showing count is so common that it's not worth logging. And other commonly unused variables
|
|
||||||
// here, if there are any.
|
|
||||||
if (regexpString !== '%\\(count\\)s') {
|
|
||||||
console.log(`Could not find ${regexp} in ${inputText}`);
|
|
||||||
}
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
matchFoundSomewhere = true;
|
||||||
|
|
||||||
const capturedGroups = match.slice(2);
|
const capturedGroups = match.slice(2);
|
||||||
|
|
||||||
|
@ -196,6 +191,15 @@ export function replaceByRegexes(text, mapping) {
|
||||||
output.splice(outputIndex, 0, head);
|
output.splice(outputIndex, 0, head);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!matchFoundSomewhere) { // The current regexp did not match anything in the input
|
||||||
|
// Missing matches is entirely possible because you might choose to show some variables only in the case
|
||||||
|
// of e.g. plurals. It's still a bit suspicious, and could be due to an error, so log it.
|
||||||
|
// However, not showing count is so common that it's not worth logging. And other commonly unused variables
|
||||||
|
// here, if there are any.
|
||||||
|
if (regexpString !== '%\\(count\\)s') {
|
||||||
|
console.log(`Could not find ${regexp} in ${text}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shouldWrapInSpan) {
|
if (shouldWrapInSpan) {
|
||||||
|
|
Loading…
Reference in New Issue