Skip to content

Commit c45898c

Browse files
committed
Fix error on trying to parse empty string. Return empty object instead
1 parent b9fc7df commit c45898c

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

index.js

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,17 @@ function parseConnectionParams(paramstring, parseValues = false) {
33
const params = {};
44
const numberRegex = /^[-+]?(\d+\.)?\d+(E[-+]?\d+)?$/i;
55

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);
6+
if (paramstring) {
7+
paramstring.split('&').map(s => {
8+
let [key, val] = s.split('=');
9+
const lowerCasedValue = val.toLowerCase();
10+
if (lowerCasedValue === 'true') val = true;
11+
else if (lowerCasedValue === 'false') val = false;
12+
else if (numberRegex.test(val)) val = parseFloat(val);
1213

13-
params[key] = val;
14-
});
14+
params[key] = val;
15+
});
16+
}
1517

1618
return params;
1719
} else {

test/index.test.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ describe('Test parseConnectionParams method', function () {
99
assert.equal(result, testedParamString)
1010
});
1111

12+
it('should return empty object', function () {
13+
const result = parseConnectionParams('', true);
14+
assert.deepEqual(result, {})
15+
});
16+
1217
describe('Test parsed values', function () {
1318
const result = parseConnectionParams(testedParamString, true);
1419

0 commit comments

Comments
 (0)