compress-brotli
Version:
Simple cross Node.js inteface for using brotli compression
37 lines (30 loc) • 1.17 kB
TypeScript
import { BrotliOptions, InputType, CompressCallback } from 'zlib'
import { stringify as JSONBstringify, parse as JSONBparse } from 'json-buffer'
declare module 'compress-brotli'
type CompressResult = Promise<Parameters<CompressCallback>[1]>
type DecompressResult = Promise<ReturnType<typeof JSONBparse>>
type Serialize<T> = (source: InputType) => T
type Deserialize<T> = (source: CompressResult) => T
declare function createCompress<
SerializeResult = ReturnType<typeof JSONBstringify>,
DeserializeResult = ReturnType<typeof JSONBparse>
>(
options?: {
enable?: boolean,
serialize?: Serialize<SerializeResult>,
deserialize?: Deserialize<DeserializeResult>,
iltorb?: any,
compressOptions?: BrotliOptions,
decompressOptions?: BrotliOptions
}
): {
serialize: Serialize<SerializeResult>,
deserialize: Deserialize<DeserializeResult>,
compress: (data: InputType, optioins?: BrotliOptions) => CompressResult
decompress: (data: InputType, optioins?: BrotliOptions) => DecompressResult
}
declare namespace createCompress {
const stringify: typeof JSONBstringify
const parse: typeof JSONBparse
}
export default createCompress