Skip to content

QueryString

Thin fluent wrapper around URLSearchParams that is friendly to nullable, boolean and numeric values. Use it via RequestBuilder.queryString or build one manually with QueryString.builder().

Importing

ts
import { QueryString } from '@basmilius/http-client';

Static factory

builder

Returns a fresh QueryString instance.

ts
static builder(): QueryString;

Instance methods

append

Appends a value under name. Skips null and undefined (but keeps false). Numbers are stringified in base 10, booleans become 'true' / 'false'.

ts
append(name: string, value: boolean | number | string | null): QueryString;

appendArray

Appends every value in values under the same name. Returns the builder unchanged when values is null or undefined.

ts
appendArray(name: string, values: Array<boolean | number | string | null> | null): QueryString;

delete

Removes every entry stored under name.

ts
delete(name: string): QueryString;

get

Returns the first value stored under name or null when absent.

ts
get(name: string): string | null;

getAll

Returns every value stored under name.

ts
getAll(name: string): string[];

has

Returns true when at least one value is stored under name.

ts
has(name: string): boolean;

set

Stores a single value under name, replacing previous values. Same null-handling as append.

ts
set(name: string, value: boolean | number | string | null): QueryString;

build

Materialises the builder as a query string (without the leading ?).

ts
build(): string;

Example

ts
import { QueryString } from '@basmilius/http-client';

const qs = QueryString.builder()
    .append('language', 'nl')
    .append('offset', 0)
    .append('limit', 25)
    .appendArray('tags', ['vue', 'typescript']);

return await this
    .request('/search')
    .method('get')
    .queryString(qs)
    .bearerToken()
    .run();

Null-handling

  • null and undefined are skipped silently — pass them straight through without filtering at the call site.
  • false is encoded as 'false'. Use null if you mean "do not include".
  • Empty strings are skipped.

See also