Skip to content

Commit f8cf6d5

Browse files
committed
fix encode uri parameters
1 parent b107c8a commit f8cf6d5

File tree

4 files changed

+14
-14
lines changed

4 files changed

+14
-14
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jcurl.addParamsExtended('example.com', { bar: { foo: 'test', joo: 2 } });
3131
````
3232
_`jcurl` exactly, not `jsurl`, this is not a mistake :)_
3333

34-
#### getParams(String url)
34+
#### getParams(String url, Boolean decode = true)
3535
`alias get()`
3636

3737
> If you have simple parameters like `bar=1` or `foo[]=3&foo[]=5`, then use `getParams()`.<br />
@@ -55,7 +55,7 @@ jcurl.get('example.com?bar=1&bar[]=2');
5555
// { bar: ['2'] }
5656
```
5757

58-
#### addParams(String url, Object params)
58+
#### addParams(String url, Object params, Boolean encode = false)
5959
`alias add()`
6060

6161
```javascript

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vanilla-js-url",
3-
"version": "2.3.0",
3+
"version": "2.4.0",
44
"devDependencies": {
55
"@babel/core": "^7.8.6",
66
"@babel/preset-env": "^7.8.6",

src/_buildQuery.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,24 @@
66
export default function _buildQuery(params, encode = false) {
77
let queries = [];
88

9+
function e(string) {
10+
return encode ? encodeURIComponent(string) : string;
11+
}
12+
913
for (let key in params) {
1014
if (params.hasOwnProperty(key)) {
1115
const value = params[key];
1216

1317
if (Array.isArray(value) && value.length) {
1418
value.forEach(_value => {
15-
queries.push(`${ key }[]=${ _value }`);
19+
queries.push(`${ e(`${ key }[]`) }=${ e(_value) }`);
1620
});
1721
} else {
18-
queries.push(`${ key }=${ value }`);
22+
queries.push(`${ e(key) }=${ e(value) }`);
1923
}
2024
}
2125
}
2226

23-
if (encode) {
24-
queries = queries.map(query => encodeURIComponent(query));
25-
}
26-
2727
return queries.join('&');
2828
}
2929

src/_buildQueryDeep.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ import _simplifyObject from './_simplifyObject';
88
export default function _buildQueryDeep(params, encode = false) {
99
const tree = [];
1010

11+
function e(string) {
12+
return encode ? encodeURIComponent(string) : string;
13+
}
14+
1115
_simplifyObject(params, [], tree);
1216

1317
let parts = tree.map(branch => {
@@ -17,15 +21,11 @@ export default function _buildQueryDeep(params, encode = false) {
1721
} else if (i < branch.length - 1) {
1822
return `${ str }[${ item }]`;
1923
} else {
20-
return `${ str }=${ item }`;
24+
return `${ e(str) }=${ e(item) }`;
2125
}
2226
}, '');
2327
});
2428

25-
if (encode) {
26-
parts = parts.map(part => encodeURIComponent(part));
27-
}
28-
2929
return parts.join('&');
3030
}
3131

0 commit comments

Comments
 (0)