A utility function that detects the Hapi version and return the appropriate plugin function.
Hapi 17 changed the signature of Plugins. This utility provides a simple wrapper for your plugin to support both Hapi 16 and Hapi 17+.
If you have module that can export plugins for hapi 16 or 17+, you can use the API universalHapiPlugin
to let this module automatically determine which of your plugins to use depending on the version of Hapi detected.
const {universalHapiPlugin} = require("electrode-hapi-compat");
const registers = {
hapi16: (server, options, next) => {...},
hapi17OrUp: (server, options) => {...}
};
const pkg = {
name: "MyPackage",
version: "1.0.0"
};
module.exports = universalHapiPlugin(registers, pkg);
const { isHapi17OrUp } = require("electrode-hapi-compat");
if (isHapi17OrUp()) {
// hapi 17 or @hapi/hapi >= 18
} else {
// hapi 16
}
// this is to identify if @hapi/hapi v18 and above
const { isHapi18OrUp } = require("electrode-hapi-compat");
if (isHapi18OrUp()) {
// @hapi/hapi >= 18
} else {
// hapi 16/17
}
If you need to manually force a certain version of Hapi for testing etc,
you can manually set the Hapi major version this module should use with the hapiVersion
property:
// Set to use Hapi major version 18
require("electrode-hapi-compat").hapiVersion = 18;
// Get Hapi major version
const hapiVersion = require("electrode-hapi-compat").hapiVersion;
$ npm install --save electrode-hapi-compat
- Clone this repo
- Make updates
- Run tests (requires 100% test coverage)
- Submit PR
- Sign CLA
To run tests
$ npm run test
- Run
npm version <version-type>
to bump the version. - Update the
CHANGELOG.md
- Make sure your npmrc is pointing to external npm.
- Run
npm publish
(make sure you have permission to github and npm). - Run
git push origin master --tags
to commit changes.
Built with ❤️ by Team Electrode @WalmartLabs.