File tree Expand file tree Collapse file tree 2 files changed +20
-14
lines changed Expand file tree Collapse file tree 2 files changed +20
-14
lines changed Original file line number Diff line number Diff line change @@ -19,21 +19,18 @@ export function resolveQuery (
1919 query : ?string ,
2020 extraQuery : Dictionary < string > = { }
2121) : 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
3632 }
33+ return parsedQuery
3734}
3835
3936function parseQuery ( query : string ) : Dictionary < string > {
Original file line number Diff line number Diff line change @@ -9,6 +9,15 @@ describe('Query utils', () => {
99 baz : 'qux'
1010 } ) )
1111 } )
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+ } )
1221 } )
1322
1423 describe ( 'stringifyQuery' , ( ) => {
You can’t perform that action at this time.
0 commit comments