@yiotis/easyroutes

    1.0.0 • Public • Published

    easyroutes

    Build Status

    Description

    easyroutes is an easy, uncomplicated package that helps you maintain named routes and construct them with parameters, a search string and/or a hash with a straightfoward API.

    It can be used in combination with any JavaScript router (e.g. React Router).

    Getting started

    These instructions will get you read to start defining your routes.

    Contents:

    Installing

    With NPM: npm install --save @yiotis/easyroutes

    With Yarn: yarn add @yiotis/easyroutes

    Usage

    Instantiate a routes map

    Let's imagine that we need to define routes for a module named posts, resembling the posts of a blog. We start by creating an easyroutes instance. Which we can then export, to reuse later.

    const postsRoutes = new EasyRoutes({
      newPost: '/post/new',
      post: '/post/:id',
    });
    
    export default postRoutes;
    

    Defining new routes

    Once you have an easyroutes instance, you can then import it from any other module and add more routes to it. Simply invoke it providing an object of routes.

    import postRoutes from './postRoutes';
    
    postRoutes({
      deletedPosts: '/deleted-posts',
      user: {
        posts: '/user/:id/posts', // use :parameter to define a parameter
      },
    });
    

    This will merge the new routes into the router. Keep in mind that trying to overwrite an old route will result in an exception.

    Interpolating a route

    To output a route you simply need to invoke your easyroutes instance with the key to your route.

    const deletedPostsRoute = postRoutes('deletedPosts'); // will output '/deleted-posts'
    

    To interpolate a route with parameters you need to pass an object with the key as the parameter name and a value.

    // will output '/user/xkai3jasivn/posts'
    const userPostsRoute = postRoutes('user.posts', {
      id: 'xkai3jasivn',
    });
    

    If you don't define values for all parameters, easyroutes will throw an exception.

    Adding a search string and/or a hash

    Sometimes you might need a search string and/or a hash added to your route. In this case you can build a route passing in an object of options as follows.

    // will output '/user/xkai3jasivn/posts?q=old#heading
    const userPostsRoute = postRoutes('user.posts', {
      params: {
        id: 'xkai3jasivn',
      },
      search: {
        q: 'old',
      },
      hash: '#heading',
    });
    

    The search could also have been a string so the previous example could be rewritten as:

    // will output '/user/xkai3jasivn/posts?q=old#heading
    const userPostsRoute = postRoutes('user.posts', {
      params: {
        id: 'xkai3jasivn',
      },
      search: '?q=old',
      hash: '#heading',
    });
    

    Versioning

    SemVer is used for the versioning of this project.

    License

    Project is licensed under MIT. Check the License file for more.

    Install

    npm i @yiotis/easyroutes

    DownloadsWeekly Downloads

    1

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    251 kB

    Total Files

    17

    Last publish

    Collaborators

    • yiotis