diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-03-27 21:01:33 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-03-27 21:01:33 +0100 |
commit | cc97a4dd2a967e1c2273bd5f4c5f49a5bf2e2585 (patch) | |
tree | 92c5d88706a6ffc654d1b133618d357890e7096b /node_modules/gettext-parser/lib/shared.js | |
parent | 3771b4d6b67b34c130f3a9a1a15f42deefdb2eda (diff) |
remove node_modules
Diffstat (limited to 'node_modules/gettext-parser/lib/shared.js')
-rw-r--r-- | node_modules/gettext-parser/lib/shared.js | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/node_modules/gettext-parser/lib/shared.js b/node_modules/gettext-parser/lib/shared.js deleted file mode 100644 index 44bfb86f7..000000000 --- a/node_modules/gettext-parser/lib/shared.js +++ /dev/null @@ -1,120 +0,0 @@ -'use strict'; - -// Expose to the world -module.exports.parseHeader = parseHeader; -module.exports.generateHeader = generateHeader; -module.exports.formatCharset = formatCharset; -module.exports.foldLine = foldLine; - -/** - * Parses a header string into an object of key-value pairs - * - * @param {String} str Header string - * @return {Object} An object of key-value pairs - */ -function parseHeader(str) { - var lines = (str || '').split('\n'), - headers = {}; - - lines.forEach(function(line) { - var parts = line.trim().split(':'), - key = (parts.shift() || '').trim().toLowerCase(), - value = parts.join(':').trim(); - if (!key) { - return; - } - headers[key] = value; - }); - - return headers; -} - -/** - * Convert first letters after - to uppercase, other lowercase - * - * @param {String} str String to be updated - * @return {String} A string with uppercase words - */ -function upperCaseWords(str) { - return (str || '').toLowerCase().trim().replace(/^(MIME|POT?(?=\-)|[a-z])|\-[a-z]/gi, function(str) { - return str.toUpperCase(); - }); -} - -/** - * Joins a header object of key value pairs into a header string - * - * @param {Object} header Object of key value pairs - * @return {String} Header string - */ -function generateHeader(header) { - var lines = []; - - Object.keys(header || {}).forEach(function(key) { - if (key) { - lines.push(upperCaseWords(key) + ': ' + (header[key] || '').trim()); - } - }); - - return lines.join('\n') + (lines.length ? '\n' : ''); -} - -/** - * Normalizes charset name. Converts utf8 to utf-8, WIN1257 to windows-1257 etc. - * - * @param {String} charset Charset name - * @return {String} Normalized charset name - */ -function formatCharset(charset, defaultCharset) { - return (charset || 'iso-8859-1').toString().toLowerCase(). - replace(/^utf[\-_]?(\d+)$/, 'utf-$1'). - replace(/^win(?:dows)?[\-_]?(\d+)$/, 'windows-$1'). - replace(/^latin[\-_]?(\d+)$/, 'iso-8859-$1'). - replace(/^(us[\-_]?)?ascii$/, 'ascii'). - replace(/^charset$/, defaultCharset || 'iso-8859-1'). - trim(); -} - -/** - * Folds long lines according to PO format - * - * @param {String} str PO formatted string to be folded - * @param {Number} [maxLen=76] Maximum allowed length for folded lines - * @return {Array} An array of lines - */ -function foldLine(str, maxLen) { - - maxLen = maxLen || 76; - - var lines = [], - curLine = '', - pos = 0, - len = str.length, - match; - - while (pos < len) { - curLine = str.substr(pos, maxLen); - - // ensure that the line never ends with a partial escaping - // make longer lines if needed - while (curLine.substr(-1) === '\\' && pos + curLine.length < len) { - curLine += str.charAt(pos + curLine.length); - } - - // ensure that if possible, line breaks are done at reasonable places - if ((match = curLine.match(/\\n/))) { - curLine = curLine.substr(0, match.index + 2); - } else if (pos + curLine.length < len) { - if ((match = curLine.match(/(\s+)[^\s]*$/)) && match.index > 0) { - curLine = curLine.substr(0, match.index + match[1].length); - } else if ((match = curLine.match(/([\x21-\x40\x5b-\x60\x7b-\x7e]+)[^\x21-\x40\x5b-\x60\x7b-\x7e]*$/)) && match.index > 0) { - curLine = curLine.substr(0, match.index + match[1].length); - } - } - - lines.push(curLine); - pos += curLine.length; - } - - return lines; -}
\ No newline at end of file |