UrlParsers provides you with methods to parse named params and query params easily.
This package relies heavily in the native URL object (no need to reinvent the wheel). It just adds some extra methods to handle params (both query and named params).
import { UrlParser } from 'url-params-parser'
// UrlParser(url, placeholder)
const urlParser = UrlParser(
"https://address.com/employees/show/1234/developer/reports/asc",
"/employees/show/:id/:title/reports/:order"
)
urlParser.namedParams
// returns { id: "1234", title: "developer", order: "asc" }
)
To install Url Parser:
with npm
npm i url-params-parser
with Yarn
yarn add url-params-parser
Initialize the object with a route and a placeholder. Example:
import { UrlParser } from 'url-params-parser'
// UrlParser(url, placeholder)
const urlParser = UrlParser(
"https://address.com:99/employees/show/1234/developer/reports/asc/?climate=change&sea-level=rising#danger",
"/employees/show/:id/:title/reports/:order"
)
Returns an object with all the named params and their values
urlParser.namedParams
// returns { id: "1234", title: "developer", order: "asc" }
Returns an array with all the named param keys
urlParser.namedParamsKeys
// returns ["id", "title", "order"]
Returns an array with all the named param values
urlParser.namedParamsValues
// returns ["1234", "developer", "asc"]
Returns an object with all query params and their values
urlParser.queryParams
// returns { climate: "change", "sea-level": "rising" }
Returns an array with all the query param values
urlParser.queryParamsKeys
// returns [ climate, "sea-level" ]
Returns an array with all the query param values
urlParser.queryParamsValues
// returns [ "change", "rising" ]
Returns an array with all the elements of a pathname
urlParser.pathNames
// returns [ "employees", "show", "1234", "developer", "reports", "asc" ]
Wrapper for URL().hash
urlParser.hash
// returns "#danger"
Wrapper for URL().host
urlParser.host
// returns "address.com:99"
Wrapper for URL().hostname
urlParser.hostname
// returns "address.com"
Wrapper for URL().port
urlParser.port
// returns "99"
Wrapper for URL().pathname
urlParser.pathname
// returns "/employees/show/1234/developer/reports/asc/"
Wrapper for URL().protocol
urlParser.protocol
// returns "https:"
Wrapper for URL().search
urlParser.search
// returns "?climate=change&sea-level=rising"
URL Parser has been developed by Jorge Alvarez.