@fedify/redis
Version:
Redis drivers for Fedify
51 lines (50 loc) • 1.42 kB
TypeScript
import { Temporal } from "@js-temporal/polyfill";
import { Buffer } from "node:buffer";
//#region src/codec.d.ts
/**
* Encode and decodes JavaScript objects to and from binary data.
*/
interface Codec {
/**
* Encodes a JavaScript object to binary data.
* @param value The JavaScript object to encode.
* @returns The encoded binary data.
* @throws {EncodingError} If the JavaScript object cannot be encoded.
*/
encode(value: unknown): Buffer;
/**
* Decodes a JavaScript object from binary data.
* @param encoded The binary data to decode.
* @returns The decoded JavaScript object.
* @throws {DecodingError} If the binary data is invalid.
*/
decode(encoded: Buffer): unknown;
}
/**
* An error that occurs when encoding or decoding data.
*/
declare class CodecError extends Error {
constructor(message: string);
}
/**
* An error that occurs when encoding data.
*/
declare class EncodingError extends CodecError {
constructor(message: string);
}
/**
* An error that occurs when decoding data.
*/
declare class DecodingError extends CodecError {
constructor(message: string);
}
/**
* A codec that encodes and decodes JavaScript objects to and from JSON.
*/
declare class JsonCodec implements Codec {
#private;
encode(value: unknown): Buffer;
decode(encoded: Buffer): unknown;
}
//#endregion
export { Codec, CodecError, DecodingError, EncodingError, JsonCodec };