UNPKG

@devlander/utils

Version:

Comprehensive JavaScript and TypeScript utilities for seamless development. Includes object manipulation, data validation, and more.

50 lines (49 loc) 1.99 kB
/** * Converts an object of query parameters into a URL-encoded query string. * This function filters out keys with `undefined` or `null` values, so only defined parameters * will be included in the final query string. * * @param query - An optional object containing key-value pairs for query parameters. * - `key: string`: The query parameter name. * - `value: string | number | boolean | null | undefined | ArrayTypeToParse`: The value of the query parameter. * If the value is `null` or `undefined`, it will be excluded from the final query string. * @returns A string representing the query parameters in URL-encoded format. * - If `query` is undefined or empty, an empty string `""` will be returned. * - If all values in the `query` object are `null` or `undefined`, an empty string `""` will be returned. * * @example * Basic usage: * ```typescript * toQueryString({ name: "John", age: 30 }); * // Returns: "?name=John&age=30" * ``` * * Filtering out undefined or null values: * ```typescript * toQueryString({ name: "Alice", age: null, active: true }); * // Returns: "?name=Alice&active=true" * ``` * * Handling empty or undefined input: * ```typescript * toQueryString(); * // Returns: "" * * toQueryString({}); * // Returns: "" * * toQueryString({ name: null }); * // Returns: "" * ``` * * Handling arrays and objects in filters: * ```typescript * toQueryString({ filters: [{ type: "category", value: "books" }, { type: "price", value: "low" }] }); * // Returns: "?filters[0][type]=category&filters[0][value]=books&filters[1][type]=price&filters[1][value]=low" * ``` */ type ArrayTypeToParse = { [key: string]: string | number | boolean | null | undefined | string[]; }[] | string[] | number[] | boolean[] | null[] | undefined[]; export declare const toQueryString: (query?: Record<string, string | number | boolean | null | undefined | ArrayTypeToParse | Record<string, string | number | boolean>>) => string; export {};