Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including henning with all npm packages installed. Try it out:

var henning = require("henning")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

henning v3.0.0

Server-level thurston validation for hapi


Server-level thurston validation for hapi.

NPM Version Build Status Coverage Status Dependencies Dev Dependencies

Table of Contents


Install via NPM.

$ npm install henning


Register the package as a server plugin to enable validation for each route that parses — parse: true — and creates a Readable stream for each file in the request payload — output: 'stream'. For every other route with a different configuration, the validation is skipped.

If the validation fails, a joi-like 400 Bad Request error is returned alongside an additional content-validation: failure response header. If everything is ok, the response will ultimately contain a content-validation: success header.


const Hapi = require('hapi');
const Henning = require('henning');

try {
    const server = new Hapi.Server();

        options: {
            payload: {
                output: 'stream',
                parse: true
            // go nuts

    await server.register({
        register: Henning,
        options: {
            // Allow png files only
            whitelist: ['image/png']

    await server.start();
catch (err) {
    throw err;

Supported File Types

The same as file-type.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free