0.0.9 • Published 4 years ago

pure-router v0.0.9

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

pure-router

Pure JavaScript Router

CDN

<script src="http://cdn.sencort.com/js/pure-router/pure-router.min.js"></script>

<script>
  let router = pureRouter();
</script>

Package

Installation:

npm install pure-router

Creating router:

const pureRouter = require('pure-router');

let router = pureRouter();

Register handlers:

All handlers receives single plain object argument with following properties:

  • url: Requested URL string.
  • path: Router template URL string.
  • params: Object containing all parameters specified in path property.
  • hash: URL hash string.
  • query: Object with all parameters specified in URL after ? sign.
// Exact url
router.on('/contacts/', ({ url, path, params, hash, query }) => {

});

// Number parameter
router.on('/offers/#id/', ({ url, path, params, hash, query }) => {

});

// String parameter
router.on('/user/$username/', ({ url, path, params, hash, query }) => {

});

// Any type of parameter. Try to parse number, else string.
router.on('/partners/:partner/', ({ url, path, params, hash, query }) => {

});

Example:

router.on('/partners/#id/', (route) => {
  route === {
     url: '/partners/14/?name=John',
     path: '/partners/:partner',
     params: { partner: 14 },
     hash: 'description',
     query: { name: 'John' },
  }
});

router.go('/partners/14/?name=John#description');

API

Route

const pureRouter = require('pure-router');

let route = new pureRouter.Route('/user/$username/#id/:person/', handler);

route.test('/user/example/45/66/?name=example#description');

// { username: 'example', id: 45, person: 66 }
route.getParams(url);

// { name: 'example' }
route.getQuery(url);

// 'description'
route.getHash(url);

// { url, path, params, query, hash }
route.getData('/user/example/45/66/?name=example#description');

Router

const pureRouter = require('pure-router');

let router = new pureRouter.Router();

// { url, path, params, query, hash };
router.on('/user/$username/#id/:person/', handler);

route.go('/user/example/45/66/?name=example#description');