Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mrkamel/routing-pattern
A powerful, but minimal library to conveniently parse and stringify route patterns
https://github.com/mrkamel/routing-pattern
Last synced: 23 days ago
JSON representation
A powerful, but minimal library to conveniently parse and stringify route patterns
- Host: GitHub
- URL: https://github.com/mrkamel/routing-pattern
- Owner: mrkamel
- License: mit
- Created: 2020-01-10T06:38:10.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-06-08T13:50:21.000Z (over 1 year ago)
- Last Synced: 2024-10-09T16:47:18.630Z (about 1 month ago)
- Language: JavaScript
- Size: 2.16 MB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# routing-pattern
A powerful, but minimal library (1.2K minified and gzipped) to conveniently parse and stringify route patterns
## Installing / Getting started
```sh
yarn add routing-pattern
```## Usage
To parse routes:
```javascript
import { parseRoute } from 'routing-pattern'parseRoute('/products/3', '/products/:id')
// => { id: '3' }parseRoute('/products/x', '/products/:id', { constraints: { id: '[0-9]+' } })
// => nullparseRoute('/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:
```javascript
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](http://semver.org/).