diff options
Diffstat (limited to 'app/assets/javascripts/locale/ensure_single_line.cjs')
-rw-r--r-- | app/assets/javascripts/locale/ensure_single_line.cjs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/assets/javascripts/locale/ensure_single_line.cjs b/app/assets/javascripts/locale/ensure_single_line.cjs new file mode 100644 index 00000000000..c2c63777001 --- /dev/null +++ b/app/assets/javascripts/locale/ensure_single_line.cjs @@ -0,0 +1,25 @@ +/* eslint-disable import/no-commonjs */ + +const SPLIT_REGEX = /\s*[\r\n]+\s*/; + +/** + * + * strips newlines from strings and replaces them with a single space + * + * @example + * + * ensureSingleLine('foo \n bar') === 'foo bar' + * + * @param {String} str + * @returns {String} + */ +module.exports = function ensureSingleLine(str) { + // This guard makes the function significantly faster + if (str.includes('\n') || str.includes('\r')) { + return str + .split(SPLIT_REGEX) + .filter((s) => s !== '') + .join(' '); + } + return str; +}; |