Documentation / @andrew_l/toolkit / qs
Variable: qs
constqs: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) =>TypeOfMap[T] |undefined
Parse string query value as a type
Type Parameters
T
T extends keyof TypeOfMap
Parameters
value
any
asType
T
Returns
TypeOfMap[T] | undefined
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 }