@leisurelink/hapi-core
v0.2.1
Published
Common functionality (routes, plugins, config, etc) for projects using hapi.
Downloads
3
Keywords
Readme
#hapi-core Common functionality (routes, plugins, config, etc) for projects using hapi.
##Setup
If you use the yeoman hapi generator no setup outside of configuration is needed. If not, run:
npm install @leisurelink/hapi-core -S
##API Hapi-core provides default plugin and route registration during server startup.
###init With this function, you can pass in your hapi server and a config object in order to automagically get common plugins, routes, etc added to your server.
Take a look at the serverConfig defaults here
Typical registry will look like:
hapiCore.init(server, serverConfig)
.then(()=>{
server.start();
})
.catch(err=>{
console.error(`error during server setup: ${err}`);
});
You can take a look at the example app here
Common Routes
Healthcheck
Endpoint used to give status around services the app depends on (e.g. rabbit, redis, etc). The server configuration has a generateHealthCheckResponse property for which you should define a function which checks appropriate services and returns a result. e.g.
...
generateHealthCheckResponse: (req, rep)=>{
return {
status: 'ok',
rabbit:{
status: 'ok'
}
};
}
Ping
Endpoint used to determine if the service is still alive. You can optionally define a config property for a custom response, but this is likely not needed.
Common Plugins
Blipp
blipp is a simple hapi plugin to display the routes table to console at startup.
Inert
inert provides new handler methods for serving static files and directories, as well as decorating the reply interface with a file method for serving file based resources.
Vision
vision decorates the server, request, and reply interfaces with additional methods for managing view engines that can be used to render templated responses. vision also provides a built-in handler implementation for creating templated responses.
Hapi Swagger
Used to self document the API interface in a project.
Hapi Swaggered UI
Easy swagger-ui drop-in plugin for hapi to be used with hapi-swaggered.