UNPKG

nested-search-params

Version:

Parse URL search prams into nested structures

34 lines (33 loc) 1.12 kB
/** * Represents a nested object in parsed search params */ type ParsedSearchParamsObject = { [k: string]: ParsedSearchParamsObject | ParsedSearchParamsArray | string; }; /** * Represents an array in parsed search params */ type ParsedSearchParamsArray = (ParsedSearchParamsObject | ParsedSearchParamsArray | string)[]; /** * Root type representing the fully parsed search parameters */ export type ParsedSearchParams = ParsedSearchParamsObject; /** * Input type accepted by `URLSearchParams`, such as string, object, or iterable */ export type SearchParamsInput = ConstructorParameters<typeof URLSearchParams>[0]; /** * Parses a URL query string or `URLSearchParams` input into a deeply nested object * * Supports bracket and array notation like `user[address][city]=NY`. * * Any key parts named `__proto__`, `constructor` or `prototype` are skipped to prevent prototype pollution. * * @example * ```ts * parseSearchParams("foo[0]=bar&foo[1]=baz"); * // => { foo: ["bar", "baz"] } * ``` */ export declare const parseSearchParams: (input: SearchParamsInput) => ParsedSearchParams; export {};