wozu v4.0.2

Server decorator and util to list all defined hapi.js routes
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 wozuor clone the repository:
$ git clone https://github.com/felixheck/wozuUsage
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 installTo execute all unit tests once, use:
$ npm testor to run tests based on file watcher, use:
$ npm startTo get information about the test coverage, use:
$ npm run coverageContribution
Fork this repository and push in your ideas.
Do not forget to add corresponding tests to keep up 100% test coverage.