Electrode Hapi Compatibility Utility
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+.
Export plugin for Hapi 16 or 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 = ; const registers = {...} {...}; const pkg = name: "MyPackage" version: "1.0.0"; moduleexports = ;
Checking for Hapi 17 or Up
const isHapi17OrUp = ; if // hapi 17 or @hapi/hapi >= 18 else // hapi 16
Checking for Hapi 18 or Up
// this is to identify if @hapi/hapi v18 and aboveconst isHapi18OrUp = ; if // @hapi/hapi >= 18 else // hapi 16/17
Manually Setting Version for Testing
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 hapiVersion = 18; // Get Hapi major version const hapiVersion = hapiVersion;
Install
$ npm install --save electrode-hapi-compat
Contribute
- Clone this repo
- Make updates
- Run tests (requires 100% test coverage)
- Submit PR
- Sign CLA
To run tests
$ npm run test
Publishing
- 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.