Skip to content

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 ​

ts
// 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 }