Object whose entries become key=value pairs
Query string without a leading ?
objectToQueryString({ a: 1, b: [2, 3] }); // "a=1&b=2,3"
objectToQueryString({ foo: "bar" }); // "foo=bar"
export function objectToQueryString(obj: Record<string, unknown>): string {
let qs = '';
for (const key of Object.keys(obj)) {
const value = obj[key];
const serialized = value == null ? '' : Array.isArray(value) ? value.join(',') : String(value);
const part = `${key}=${serialized}`;
qs = qs ? `${qs}&${part}` : part;
}
return qs;
}
Builds a URL-style query string from a plain object. Keys are emitted in insertion order. Array values are comma-joined.