Documentation / @andrew_l/toolkit / qs
Variable: qs ​
const
qs:object
Simple query stringy interface that supports encoding/decoding of Array
, Set
, Map
, Object
, BigInt
Type declaration ​
merge() ​
merge: (...
values
) =>Record
<string
,any
>
Merge first level values
Parameters ​
values ​
...Record
<string
, any
>[]
Returns ​
Record
<string
, any
>
parse() ​
parse: {(
value
):Record
<string
,string
>; <T
>(value
,defaults
):T
; <T
>(value
,defaults
):Partial
<T
>; }
Call Signature ​
(
value
):Record
<string
,string
>
Parse query string as is without type casting
Parameters ​
value ​
string
Returns ​
Record
<string
, string
>
Call Signature ​
<
T
>(value
,defaults
):T
Parse query string and use default object as type cast schema
Type Parameters ​
T ​
T
extends Record
<string
, any
>
Parameters ​
value ​
string
defaults ​
Partial
<T
>
Returns ​
T
Call Signature ​
<
T
>(value
,defaults
):Partial
<T
>
Parse query params and use default object as type cast schema
Type Parameters ​
T ​
T
extends Record
<string
, any
>
Parameters ​
value ​
Record
<string
, any
>
defaults ​
T
Returns ​
Partial
<T
>
parseValue() ​
parseValue: <
T
>(value
,asType
) =>undefined
|TypeOfMap
[T
]
Parse string query value as a type
Type Parameters ​
T ​
T
extends keyof TypeOfMap
Parameters ​
value ​
any
asType ​
T
Returns ​
undefined
| TypeOfMap
[T
]
stringify() ​
stringify: (
obj
,options?
) =>string
Simple function to transform object into query string (not standards)
Parameters ​
obj ​
Record
<string
, any
>
options? ​
StringifyOptions
Returns ​
string
stringifyValue() ​
stringifyValue: (
value
) =>string
Stringify value to use as query parameter
Parameters ​
value ​
unknown
Returns ​
string
toParams() ​
toParams: (
obj
,options?
) =>Record
<string
,string
>
Prepare search params object
Parameters ​
obj ​
Record
<string
, any
>
options? ​
StringifyOptions
Returns ​
Record
<string
, string
>
Example ​
// encode
qs.stringify({ page: 1, limit: 10 }); // 'page=1&limit=10'
// decode
const defaults = { page: 1, limit: 10 };
const params = qs.parse('page=5&limit=abc', defaults); // { page: 5, limit: 10 }