Server decorator and util to list all defined hapi.js routes
!node !npm
!npm
- Introduction
- Installation
- Usage
- Usage as Util
- API
- Developing and Testing
- Contribution
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.