Just some lines of code to let you declare hapi routes from a manifest.json
The plugin is actually only a server.route
hapi call, nothing more.
npm install --save hapi-routify
If you use hapi with glue or rejoice, you may want to declare the routes of your application from the manifest.json
:
{
"server": {
"app": {
"name": "simple proxy"
}
},
"connections": [{
"port": 8000,
"host": "localhost",
"labels": ["proxy"]
}],
"registrations": [{
"plugin": "h2o2"
}, {
"plugin": {
"register": "hapi-routify",
"options": {
"routes": [{
"method": "GET",
"path": "/{path*}",
"handler": {
"proxy": {
"host": "localhost",
"port": 1337
}
}
}]
}
}
}, {
"plugin": "blipp"
}]
}
This example uses h2o2 to proxy all your requests to http://localhost:1337.
If you use rejoice there are actually two ways to provide your own handler:
- wrap your
manifest
with the CommonJSmodule.exports
declaration, so you will be able to write a javascript function (seeexamples/manifest.js
) - write a plugin that uses the
server.handler
method provided by hapi (seeexamples/manifest-customHandler.json
andexamples/customHandler/index.js
)
routes
: the array of routes objects you will otherwise pass toserver.route
.
Package | Version | Dev |
---|---|---|
babel-cli | ^6.2.0 | ✔ |
babel-core | ^6.2.1 | ✔ |
babel-preset-es2015 | ^6.1.18 | ✔ |
blipp | ^2.3.0 | ✔ |
code | ^4.0.0 | ✔ |
h2o2 | ^5.0.0 | ✔ |
hapi | ^16.1.1 | ✔ |
husky | ^0.13.3 | ✔ |
lab | ^14.0.1 | ✔ |
node-readme | ^0.1.9 | ✔ |
npm-run-all | ^4.0.2 | ✔ |
rejoice | ^4.0.0 | ✔ |
Contributions are welcome! Open an issue to report bugs or request features. To contribute with code:
- clone this repository
- install the dependencies with
npm install
- make your changes to the files in the
src/
folder - write tests using lab in the
test/
folder - run tests with
npm test
. try to keep test coverage about 100% - edit the
.README.md
file and build the project again (npm run compile
) - send a pull request against the master branch
g-div
Inspired by garthk's hapi-restify.js gist.