Skip to content

Commit 0c9cc6b

Browse files
committed
Implement parsing algorithm
1 parent 81f1a15 commit 0c9cc6b

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

index.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
function parseConnectionParams(paramstring, parseValues = false) {
2+
if (parseValues) {
3+
const params = {};
4+
const numberRegex = /^[-+]?(\d+\.)?\d+(E[-+]?\d+)?$/i;
5+
6+
paramstring.split('&').map(s => {
7+
let [key, val] = s.split('=');
8+
const lowerCasedValue = val.toLowerCase();
9+
if (lowerCasedValue === 'true') val = true;
10+
else if (lowerCasedValue === 'false') val = false;
11+
else if (numberRegex.test(val)) val = parseFloat(val);
12+
13+
params[key] = val;
14+
});
15+
16+
return params;
17+
} else {
18+
return paramstring;
19+
}
20+
}
21+
22+
module.exports = {
23+
parseConnectionParams
24+
};

0 commit comments

Comments
 (0)