Skip to content

noveogroup-amorgunov/hapi-generoutify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hapi-generoutify

Wraps route's handlers into generator

Travis Build Status Downloads per month Version License

Installation

npm install hapi-generoutify --save

Usage

You can use hapi-generoutify for generator router's handlers (and the yield keyword), and co today.

Registering the Plugin

const Hapi = require('hapi');
const hapiGeneroutify = require('hapi-generoutify');

const server = new Hapi.Server();
server.register([hapiGeneroutify], (error) => { ... });

Now all route's handler will be wrap to co.wrap.

function* getUserAction(request, reply) {
  const user = yield database.User.findOne({ email: request.payload.email });

  if (!user) {
    yield Promise.reject(Boom.notFound('USER_NOT_FOUND'));
  }
    
  reply(user.toObject());
}

server.route({
  method: 'GET',
  path: '/',
  handler: getUserAction
});

Also you can pass just simple function to handler and it will work as before.

By default your generator are catched by global errorHandler, which reply error. You can define custom handler as hapi server method like:

server.methods('errorHandler', (reply, err) => {
  if (err instanceof AwesomeHttpError) {
    reply(...).code(404);
  } else {
    // ...
  }
});

See full examples in examples folder.

About

Wraps route's handlers into generator

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published