An extended version of URLSearchParams with support for Objects and Arrays.
URLQueryParams implements URLSearchParams interface, so that it can be replaced with URLSearchParams for query string manipulation.
- Can be used with Express.js which accepts Arrays and Objects in query parameters.
- It doesn't pollute the Global namespace as it's a separate Class.
- ✨Built in Typescript Definitions✨
npm -i -s object-in-queryparams
(or)
yarn add object-in-queryparams
import { URLQueryParams } from "object-in-queryparams";
const queryParams = new URLQueryParams(
{
name: "John",
age: 12,
score: [52,16,23],
tags: ["sports","fitness"],
sort: {
createdAt : "asc",
updatedAt : -1
}
}
)
console.log(decodeURIComponent(queryParams.toString()))
/**
* Output:
* "name=John&age=12&score[]=52&score[]=16&score[]=23&tags[]=sports&tags[]=fitness&sort[createdAt]=asc&sort[updatedAt]=desc"
*/
URLQueryParams implements URLSearchParams interface, where the constructor accepts a few more signatures than URLSearchParams:
{ [param]: string | number }
{ [param]: string[] | number[] }
{ [param]: { [param]: string | number } }
- And all other signatures that are supported by URLSearchParams
- Arrays within Nested Objects are not supported.
{ [param]: { [param]: string[] | number[] } }
- Double nested Objects are not supported.
{ [param]: { [param]: {...} } }
If this package helped you and saved your time thank me by giving a star ⭐ to my repo. Post your issues here Pull Requests are always welcomed.
Copyright (c) 2021 Sreejith N Subramanian