File tree 2 files changed +20
-14
lines changed
2 files changed +20
-14
lines changed Original file line number Diff line number Diff line change @@ -19,21 +19,18 @@ export function resolveQuery (
19
19
query : ?string ,
20
20
extraQuery : Dictionary < string > = { }
21
21
) : Dictionary < string > {
22
- if ( query ) {
23
- let parsedQuery
24
- try {
25
- parsedQuery = parseQuery ( query )
26
- } catch ( e ) {
27
- process . env . NODE_ENV !== 'production' && warn ( false , e . message )
28
- parsedQuery = { }
29
- }
30
- for ( const key in extraQuery ) {
31
- parsedQuery [ key ] = extraQuery [ key ]
32
- }
33
- return parsedQuery
34
- } else {
35
- return extraQuery
22
+ let parsedQuery
23
+ try {
24
+ parsedQuery = parseQuery ( query || '' )
25
+ } catch ( e ) {
26
+ process . env . NODE_ENV !== 'production' && warn ( false , e . message )
27
+ parsedQuery = { }
28
+ }
29
+ for ( const key in extraQuery ) {
30
+ const val = extraQuery [ key ]
31
+ parsedQuery [ key ] = Array . isArray ( val ) ? val . slice ( ) : val
36
32
}
33
+ return parsedQuery
37
34
}
38
35
39
36
function parseQuery ( query : string ) : Dictionary < string > {
Original file line number Diff line number Diff line change @@ -9,6 +9,15 @@ describe('Query utils', () => {
9
9
baz : 'qux'
10
10
} ) )
11
11
} )
12
+
13
+ it ( 'should make a copy when param value is an array' , ( ) => {
14
+ const arr = [ 'bar' ]
15
+ const query = resolveQuery ( '' , { foo : arr } )
16
+ arr . push ( 'baz' )
17
+ expect ( JSON . stringify ( query ) ) . toBe ( JSON . stringify ( {
18
+ foo : [ 'bar' ]
19
+ } ) )
20
+ } )
12
21
} )
13
22
14
23
describe ( 'stringifyQuery' , ( ) => {
You can’t perform that action at this time.
0 commit comments