routing-pattern

1.1.0 • Public • Published

routing-pattern

A powerful, but minimal library (1.2K minified and gzipped) to conveniently parse and stringify route patterns

Installing / Getting started

yarn add routing-pattern

Usage

To parse routes:

import { parseRoute } from 'routing-pattern'

parseRoute('/products/3', '/products/:id')
// => { id: '3' }

parseRoute('/products/x', '/products/:id', { constraints: { id: '[0-9]+' } })
// => null

parseRoute('/en/sales/search/books/year/2019', /:locale/sales(/search/:q)(/year/:year))
// => { locale: 'en', q: 'books', year: '2019' }

parseRoute('/products/3?foo=bar', '/products/:id')
// => { id: 3, foo: 'bar' }

To stringify routes:

import { stringifyRoute } from 'routing-pattern'

stringifyRoute('/:locale/sales(/search/:q)(/year/:year)', { locale: 'en', q: 'some query', year: '2019' })
// => '/en/sales/search/some%20query/year/2019'

stringifyRoute('/:locale/sales(/search/:q)(/year/:year)', { locale: 'en', q: 'some query' })
// => '/en/sales/search/some%20query'

stringifyRoute('/products/:id', {})
// => null

Versioning

This project is using the Semantic Versioning specification.

Readme

Keywords

none

Package Sidebar

Install

npm i routing-pattern

Weekly Downloads

301

Version

1.1.0

License

MIT

Unpacked Size

13.9 kB

Total Files

8

Last publish

Collaborators

  • mrkamel