🥐 Brotli decoder to fetch-h2
This package provides a content decoder for the Brotli (br
) encoding using the iltorb
package (which is a wrapper around the native brotli
C library). By using this with fetch-h2
, requests will add 'br'
as accepted encoding to the server, and will decode it.
Use this on the default fetch-h2
context by its setup( )
, or for new contexts when creating them.
The decoder is default-exported (with TS/ES6 modules), but can also be imported using require
, although as a property brDecode
.
import brDecode from 'fetch-h2-br'
// or, if using require:
const { brDecode } = require( 'fetch-h2-br' );
brDecode
is a function without arguments which returns a decoder.
Decoders can be provided to fetch-h2
per-context. Since fetch-h2
always has a default-context, decoders can be applied by running setup( )
. For new contexts, it can be provided to the context( )
function.
import { setup, fetch } from 'fetch-h2'
import brDecode from 'fetch-h2-br'
// Setup only once to avoid undefined behavior
setup( { decoders: [ brDecode( ) ] } );
// Now, all subsequent fetch-calls will support the 'br' encoding:
const response = await fetch( 'https://host/file' );
Create a new context where 'br'
should be supported:
import { context } from 'fetch-h2'
import brDecode from 'fetch-h2-br'
// Create a context where 'br' is supported
const { fetch } = context( { decoders: [ brDecode( ) ] } );
// Now, all subsequent fetch-calls with this particular fetch will support the 'br' encoding:
const response = await fetch( 'https://host/file' );
// Yet another context
const { fetch: fetchOther } = context( );
// fetchOther will *not* support 'br':
const response2 = await fetchOther( 'https://host/file' );