h3-fast-compression
Version:
Adds compression to h3 request (brotli, gzip, deflate)
64 lines (59 loc) • 2.97 kB
TypeScript
import { H3Event } from 'h3';
interface RenderResponse {
body: string | unknown;
statusCode: number;
statusMessage: string;
headers: Record<string, string>;
}
/**
* Compresses the response with [zlib.gzip]{@link https://www.w3schools.com/nodejs/ref_zlib.asp}
* @param { H3Event } event - A H3 event object.
* @param { RenderResponse } response - A response object with body parameter.
* @returns { Promise<void> }
*/
declare function useGZipCompression(event: H3Event, response: Partial<RenderResponse>): Promise<void>;
/**
* Compresses the response with [zlib.deflate]{@link https://www.w3schools.com/nodejs/ref_zlib.asp}
* @param { H3Event } event - A H3 event object.
* @param { RenderResponse } response - A response object with body parameter.
* @returns { Promise<void> }
*/
declare function useDeflateCompression(event: H3Event, response: Partial<RenderResponse>): Promise<void>;
/**
* Compresses the response with [zlib.brotliCompress]{@link https://www.w3schools.com/nodejs/ref_zlib.asp}
* @param { H3Event } event - A H3 event object.
* @param { RenderResponse } response - A response object with body parameter.
* @returns { Promise<void> }
*/
declare function useBrotliCompression(event: H3Event, response: Partial<RenderResponse>): Promise<void>;
/**
* Compresses the response with [Zlib]{@link https://www.w3schools.com/nodejs/ref_zlib.asp}
* by 'Accept-Encoding' header. Best is used first.
* @param { H3Event } event - A H3 event object.
* @param { RenderResponse } response - A response object with body parameter.
* @returns { Promise<void> }
*/
declare function useCompression(event: H3Event, response: Partial<RenderResponse>): Promise<void>;
/**
* Compresses the response with
* [CompressionStream(gzip)]{@link https://developer.mozilla.org/en-US/docs/Web/API/CompressionStream}
* @param event - A H3 event object.
* @param response - A response object with body parameter.
*/
declare function useGZipCompressionStream(event: H3Event, response: Partial<RenderResponse>): Promise<void>;
/**
* Compresses the response with
* [CompressionStream(deflate)]{@link https://developer.mozilla.org/en-US/docs/Web/API/CompressionStream}
* @param event - A H3 event object.
* @param response - A response object with body parameter.
*/
declare function useDeflateCompressionStream(event: H3Event, response: Partial<RenderResponse>): Promise<void>;
/**
* Compresses the response with
* [CompressionStream]{@link https://developer.mozilla.org/en-US/docs/Web/API/CompressionStream}
* by 'Accept-Encoding' header. Best is used first.
* @param event - A H3 event object.
* @param response - A response object with body parameter.
*/
declare function useCompressionStream(event: H3Event, response: Partial<RenderResponse>): Promise<void>;
export { useBrotliCompression, useCompression, useCompressionStream, useDeflateCompression, useDeflateCompressionStream, useGZipCompression, useGZipCompressionStream };