https://github.com/frankthelen/hapi-etagger
Hapi plug-in for etags and HTTP 304 support
https://github.com/frankthelen/hapi-etagger
etag etags hapi plug-in
Last synced: 8 months ago
JSON representation
Hapi plug-in for etags and HTTP 304 support
- Host: GitHub
- URL: https://github.com/frankthelen/hapi-etagger
- Owner: frankthelen
- Created: 2020-02-02T19:32:42.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-07T14:23:45.000Z (over 3 years ago)
- Last Synced: 2025-09-20T13:29:14.246Z (9 months ago)
- Topics: etag, etags, hapi, plug-in
- Language: JavaScript
- Size: 616 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# hapi-etagger
Hapi server plug-in for etags and HTTP 304 support.
It utilizes the popular [etag](https://www.npmjs.com/package/etag) library.
[](https://travis-ci.org/frankthelen/hapi-etagger)
[](https://coveralls.io/github/frankthelen/hapi-etagger?branch=master)
[]()
[](https://github.com/airbnb/javascript)
[]()
Tested with
* Hapi 20 on Node 12/14/15
* Hapi 19 on Node 12/14/15
## Install
```bash
npm install hapi-etagger
```
## Purpose
This plug-in provides a simple way to support etags and HTTP 304.
By default, it adds etags and HTTP 304 support to all requests that meet the following criteria:
* method is GET
* status code is 2xx
* response payload is a String, a stringifyable object or a Buffer
It is possible to opt-out.
## Usage
Register the plugin with Hapi server like this:
```js
const Hapi = require('@hapi/hapi');
const etags = require('hapi-etagger');
const server = new Hapi.Server({
port: 3000,
});
const provision = async () => {
await server.register(etags);
// ...
await server.start();
};
provision();
```
You can opt-out by route configuration, e.g.:
```js
server.route({
method: 'GET',
path: '/example/{id}',
options: {
// ...
plugins: {
'hapi-etagger': {
enabled: false, // opt-out
},
},
},
// ...
});
```