Brotli encoder and decoder for hapi.js.
Lead Maintainer - Gil Pedersen
npm install brok
Registration with custom quality default:
'use strict';
const Hapi = require('@hapi/hapi');
const Brok = require('brok');
const server = new Hapi.Server({ port: 3000, compression: { minBytes: 1 } });
const provision = async () => {
server.route({
method: 'GET',
path: '/fetch',
handler() {
return 'ok';
}
});
await server.register({
plugin: Brok,
options: {
compress: { quality: 3 }
}
});
await server.start();
console.log('Server running at:', server.info.uri);
};
provision();
Once registered, brok enables the server to negotiate and handle the "br"
encoding for
compressible responses and uploads.
brok accepts the following registration options:
compress
- compression settings. Set tofalse
to disable response compression using brotli.quality
- used to adjust compression speed vs quality from 0 to 11. Defaults to5
.mode
- compression mode. Available values:'generic'
- default compression mode. Default value.'text'
- optimize for UTF-8 formatted text input.
decompress
- iftrue
, also register the encoding for decompressing incoming payloads. Defaults tofalse
.
Route specific settings can be set using br
object in the compression
config. Eg.
server.route({
method: 'GET',
path: '/text',
options: {
handler() {
return 'hello!';
},
compression: {
br: { mode: 'text' }
}
}
});