forked from johannesboyne/excel-formula-tokenizer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlanguageHelper.js
More file actions
25 lines (24 loc) · 1.02 KB
/
languageHelper.js
File metadata and controls
25 lines (24 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function getLanguageObjectFromLanguageAndSeparator(displayLanguage, decimalSeparator, argumentSeparator) {
if (decimalSeparator !== "," && decimalSeparator !== ".") throw new Error(`Invalid decimal separator: ${decimalSeparator}`);
const isDELanguage = displayLanguage.match(/de\-/);
const trueValue = isDELanguage ? 'WAHR' : "TRUE";
const falseValue = isDELanguage ? 'FALSCH' : "FALSE";
const isCommaSeparated = argumentSeparator === ",";
const reformatNumberForJsParsing = isCommaSeparated ?
(n) => n :
(n) => n.replace(',', '.')
const isScientificNotation = isCommaSeparated ?
(token) => /^[1-9]{1}(\.[0-9]+)?E{1}$/.test(token) :
(token) => /^[1-9]{1}(,[0-9]+)?E{1}$/.test(token)
return {
true: trueValue,
false: falseValue,
decimalSeparator,
argumentSeparator,
horizontalSeparator: argumentSeparator,
verticalSeparator: isCommaSeparated ? ";" : ".",
reformatNumberForJsParsing,
isScientificNotation,
}
};
module.exports = { getLanguageObjectFromLanguageAndSeparator }