1.1.0 • Published 2 years ago
routing-pattern v1.1.0
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.