1.0.2 • Published 2 years ago

router-light v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

About The Project

This is very simple and lightweight routing library intended mostly to be used in vanilla js apps. You can read how it's made here:

How to create a router for custom SPA App

Getting started

You can fork or download the plugin from GitHub, or you can install it through npm or bower.

$ npm install router-light

Usage

  1. Import the module:
import Router from 'router-light';
  1. Create instance of router object:
const router = new Router();
  1. Register paths and callbacks:
router.get('/my-custom-page', () => {
  document.body.innerText = 'Hello World';
})

Callback function is called when the url matches any of registered paths. In other words, the application “listens” for requests that match the specified route(s) and when it detects a match, it calls the specified callback function.

Route paths can be patterns. For example:

router.get('/test/:label1/*/*/*/:label2', (options) => {
  console.log(options);
});

If the url is /test/custom_label/arg1/arg2/843/custom_label2 then the matching pattern is /test/:label1/*/*/*/:label2 and options will become object with given properties:

{
  "0": "arg1",
  "1": "arg2",
  "2": "843",
  "label1": "custom_label",
  "label2": "custom_label2"
}

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'feat: Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Note that this library uses commitlint and commit message must contain one of common types: conventional-changelog/commitlint

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Twitter @wwisniewski_

Blog wiktorwisniewski.dev