Skip to content

imkarma/trailpack-router

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

155 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

trailpack-router

Gitter NPM version Build status Dependency Status Code Climate Follow @trailsjs on Twitter

Trailpack Router. Aggregates all routes from config.routes and attaches prerequisites (Policies) to form hapi.js route objects.

Usage

Load from your trailpack config. (This pack is included by default).

// config/main.js
module.exports = {
  // ...
  packs: [
    require('trailpack-core'),
    require('trailpack-router')
  ]
}

Configure

config.policies

The policies configuration maps controller handlers to a list of policies which must pass before the handler is invoked.

// config/policies.js
module.exports = {
  '*': [ 'GlobalPolicy.test' ],  // Apply GlobalPolicy.test to all handler except the ones below
  ExampleController: {
    test: [ 'ExamplePolicy.test' ]
  },
  Example2Controller: [ 'ExamplePolicy.test' ], // Apply ExamplePolicy.test to all handler
  Example3Controller: {
    '*': [ 'GlobalExample3Policy.test' ], // Apply GlobalExample3Policy.test to all handler except the ones below
    test: [ 'OverridePolicy.test' ]
  }
}

config.routes

The list of route objects to be compiled for use by the webserver.

// config/routes.js
module.exports = [
  {
    method: [ 'GET' ],
    path: '/example/test',
    handler: 'ExampleController.test'
  }
]

During initialization, for the above example, a route object will be compiled that takes the following form:

  {
    method: [ 'GET' ],
    path: '/example/test',
    handler: 'ExampleController.test',
    config: {
      pre: [ 'ExamplePolicy.test' ]
    }
  }

Compatible Trailpacks

Contributing

We love contributions! Please see our Contribution Guide for more information.

License

MIT

About

📦 Router. Aggregate and Configure Application Routes.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 100.0%