UNPKG

@ydbjs/topic

Version:

YDB Topics client for publish-subscribe messaging. Provides at-least-once delivery, exactly-once publishing, FIFO guarantees, and scalable message processing for unstructured data.

35 lines 1.22 kB
import * as zlib from 'node:zlib'; import { Codec } from '@ydbjs/api/topic'; export function getCodec(codec) { switch (codec) { case Codec.RAW: return { codec: Codec.RAW, compress: (payload) => payload, decompress: (payload) => payload, }; case Codec.GZIP: return { codec: Codec.GZIP, compress: (payload) => zlib.gzipSync(payload), decompress: (payload) => zlib.gunzipSync(payload), }; case Codec.ZSTD: return { codec: Codec.ZSTD, compress: (payload) => zlib.zstdCompressSync(payload), decompress: (payload) => zlib.zstdDecompressSync(payload), }; default: throw new Error(`Unsupported codec: ${codec}`); } } export const defaultCodecMap = new Map([ [Codec.RAW, getCodec(Codec.RAW)], [Codec.GZIP, getCodec(Codec.GZIP)], [Codec.ZSTD, getCodec(Codec.ZSTD)], ]); export const RAW_CODEC = getCodec(Codec.RAW); export const GZIP_CODEC = getCodec(Codec.GZIP); export const ZSTD_CODEC = getCodec(Codec.ZSTD); //# sourceMappingURL=codec.js.map