Get unlimited public & private packages + package-based permissions with npm Pro.Get started »

wozu

4.0.1 • Public • Published

wozu

Server decorator and util to list all defined hapi.js routes

Travis node npm standard npm

Introduction

wozu is a plugin in the form of a server decorator and an additional util to list all defined routes of your hapi.js server instance. Just call the server method and get a list of all endpoints including paths and methods.
wozu is the German translation for wherefore - it was implemented as an util related to the plugin wo.

The modules standard and ava are used to grant a high quality implementation.

Compatibility

Major Release hapi.js version node version
v4 >=18.4 @hapi/hapi >=12
v3.1 >=18.3.1 @hapi/hapi >=8
v3 >=18 hapi >=8
v2 >=17 hapi >=8
v1 >=13 hapi >=6

Installation

For installation use the Node Package Manager:

$ npm install --save wozu

or clone the repository:

$ git clone https://github.com/felixheck/wozu

Usage

Import

First you have to import the module:

const wozu = require('wozu');

Create hapi server

Afterwards create your hapi server if not already done:

const hapi = require('@hapi/hapi');
const server = hapi.server({
  port: 8888,
  host: 'localhost',
});

Additionally register all your routes.

Registration

Finally register the plugin per server.register():

await server.register(wozu);

After registering wozu, the hapi server object will be decorated with the new method server.wozu().
It is not allowed to register wozu twice.

Usage

Use the plugin/util in the required context. For example during the registration of wo:

await server.register({
  plugin: require('wo'),
  options: {
    bases,
    route: server.wozu(),
    sneeze: {
      silent: true
    }
  }
})

The method returns a sorted and unified list of all defined routes.

Usage as Util

This package include besides the plugin a corresponding util feature, so it is not necessary to use wozu as a plugin:

const wozu = require('wozu');
const hapi = require('hapi');
 
const server = hapi.server({
  port: 8888,
  host: 'localhost',
});
 
(async () => {
  await server.register({
    plugin: require('wo'),
    options: {
      bases,
      route: wozu.list(server),
      sneeze: {
        silent: true
      }
    }
  })
})();

API

wozu.list(server, [host])

  • server {Object} - the corresponding hapi server object.
  • host {string|Array.<string>} - the host to filter routes matching a specific virtual host.

server.wozu([host])

  • host {string|Array.<string>} - the host to filter routes matching a specific virtual host.

Developing and Testing

First you have to install all dependencies:

$ npm install

To execute all unit tests once, use:

$ npm test

or to run tests based on file watcher, use:

$ npm start

To get information about the test coverage, use:

$ npm run coverage

Contribution

Fork this repository and push in your ideas.

Do not forget to add corresponding tests to keep up 100% test coverage.

Install

npm i wozu

DownloadsWeekly Downloads

0

Version

4.0.1

License

MIT

Unpacked Size

36.8 kB

Total Files

13

Last publish

Collaborators

  • avatar