npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@leisurelink/hapi-core

v0.2.1

Published

Common functionality (routes, plugins, config, etc) for projects using hapi.

Downloads

7

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.