hapi-response-utilities
v2.0.0
Published
hapi response decorations to conveniently compose responses
Downloads
101
Readme
Introduction
A hapi plugin that decorates the response toolkit h
with methods to conveniently compose responses.
Requirements
hapi v19 (or later) and Node.js v12 (or newer)
This plugin requires hapi v19 (or later) and Node.js v12 or newer.
Compatibility
| Major Release | hapi.js version | Node.js version |
| --- | --- | --- |
| v2
| >=17 hapi
| >=12
|
| v1
| >=17 hapi
| >=8
|
Installation
Add hapi-response-utilities
as a dependency to your project:
npm i hapi-response-utilities
Usage
Register hapi-response-utilities
to your hapi server and that's it :)
await server.register({
plugin: require('hapi-response-utilities')
})
// went smooth like hot chocolate :)
Methods
An overview of available hapi toolkit
decorations.
h.pdf(pdf-content, filename)
Creates a PDF response including the PDF related content type and HTTP headers allowing a custom filename.
The filename
defaults to download
.
handler: async (_, h) => {
const content = await createPdfContent()
return h.pdf(content, 'filename.pdf')
}
h.status(code)
Shortcut to respond with just an HTTP status code.
handler: (_, h) => {
return h.status(204)
}
h.cookie(key, value, options)
Sets a cookie for the given key-value-pair. It's a convenience method for h.state
.
handler: (_, h) => {
return
h.cookie('userId', '1')
.cookie('username', 'Marcus')
.continue
}
h.header(key, value, options)
Set a response header for the given key-value-pair. This method provides a unified interface to set response headers, no matter if the response is a hapi response object or a boom error instance:
handler: (_, h) => {
return h
.header('content-type', 'text/html')
.header('api-key', 'secret-api-key')
.continue
}
The accepted options
are the same as provided by hapi itself.
h.headers()
Returns an object containing the response headers. This method provides a unified interface to set response headers, no matter if the response is a hapi response object or a boom error instance:
handler: (_, h) => {
const responseHeaders = h.headers()
return h.continue
}
h.isView()
Determines whether the response is a rendered view:
handler: (_, h) => {
if (h.isView()) {
// handle view response
}
return h.continue
}
Feature Requests
Do you miss a feature? Please don’t hesitate to create an issue with a short description of your desired addition to this plugin.
Links & Resources
- hapi tutorial series with 100+ tutorials
Contributing
- Create a fork
- Create your feature branch:
git checkout -b my-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request 🚀
License
MIT © Future Studio
futurestud.io · GitHub @futurestudio · Twitter @futurestud_io