0.2.1 • Published 8 years ago

@leisurelink/hapi-core v0.2.1

Weekly downloads
-
License
-
Repository
github
Last release
8 years ago

#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.