route-helpers-generator

1.0.4 • Public • Published

Route helpers generator

Create methods to easily generate paths and url

npm version

Dependencies

  • path-to-regexp - ^2.1.0
  • qs - ^6.5.1
  • cli-table - ^0.3.1
  • randexp - ^0.5.3
  • url

Install

npm install --save route-helpers-generator
or 
yarn add route-helpers-generator

Note: it is assumed that this will be used in a modern environment, for legacy environments add babel-polyfill in your app.

Usage

Declare some routes:

import RoutesHelper, {generatePathMethod, generateUrlMethod, generateMatch} from 'route-helpers-generator'
 
const userMatch = generateMatch('/users/:id');
userMatch('/users/1') // => {id: 1} 
userMatch('/users') // => null
 
const userPath = generatePathMethod('/users/:id');
userPath({id: 1}) // => '/users/1'
userPath({id: 1, format: 'json'}) // => '/users/1.json'
userPath({id: 1, hash: 'test'}) // => '/users/1#test'
userPath({id: 1, name: 'john'}) // => '/users/1?name=john'
userPath({id: 1, user: {name: 'john'}}) // => '/users/1?user%5Bname%5D=john'
userPath({id: 1, user: [1, 2]}) // => '/users/1?user%5B%5D=1&user%5B%5D=2'
 
const userUrl = generateUrlMethod('http://test.com', '/users/:id');
userUrl({id: 1}) // => 'http://test.com/users/1'
 
const routesHelper = new RoutesHelper({user: '/users/:id', users: '/users'}, {host: 'http://test.com'})
routesHelper.userPath({id: 1}) // => '/users/1'
routesHelper.userUrl({id: 1}) // => 'http://test.com/users/1'
routesHelper.userRegexp({}) // => '/users/:id'
routesHelper.userRegexp({noslash: true}) // => 'users/:id'
routesHelper.userRegexp({noslash: true}) // => 'users/:id'
routesHelper.setHost('https://test.com')
routesHelper.userUrl({id: 1}) // => 'https://test.com/users/1'
routesHelper.match('/users/1') // => {name: 'user', params: {id: '1'}}
routesHelper.match('/users') // => {name: 'users', params: {}}
routesHelper.match('/') // => null

Help Script

Add to package.json to show generated methods

You will need to add babel and babel-cli and use babel-node in case you use presets.

./routesHelper

import RoutesHelper from 'route-helpers-generator'
const routesHelper = new RoutesHelper({user: '/users/:id', users: '/users'}, {host: 'http://test.com'})
 
export default routesHelper;
{
    "scripts": {
        "routes": "babel-node -e \"require('./routesHelper').default.help()\""
    }
}

Release

npm publish

Readme

Keywords

Package Sidebar

Install

npm i route-helpers-generator

Weekly Downloads

28

Version

1.0.4

License

MIT

Unpacked Size

33.5 kB

Total Files

21

Last publish

Collaborators

  • prizrack13