UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

36 lines (35 loc) 1.69 kB
import { TapStreamReader, TapStreamWriter } from '@iotize/tap/client/impl'; import { DBIOTConverterInterface } from '../compressor-interface'; import { ExtractTypeFromMapping, ObjectMapping } from './definitions'; export declare function writeFieldLength(stream: TapStreamWriter, length: number): void; export declare function readFieldLength(stream: TapStreamReader): number; export declare class TLVMappedJsonObjectCompressor<T extends ObjectMapping> implements DBIOTConverterInterface<ExtractTypeFromMapping<T>> { private readonly mapping; strictMode: boolean; constructor(mapping: T); encode(input: ExtractTypeFromMapping<T>, stream?: TapStreamWriter): Uint8Array; decode(streamOrBuffer: TapStreamReader | Uint8Array): ExtractTypeFromMapping<T>; } export declare class TLVMappedJsonArrayCompressor<T> implements DBIOTConverterInterface<T[]> { private readonly options; constructor(options: { itemConverter: DBIOTConverterInterface<T>; }); encode(input: T[], stream?: TapStreamWriter): Uint8Array; decode(streamOrBuffer: TapStreamReader | Uint8Array): T[]; } /** * Optimization for an array of object, * It will not duplicate object/field information for each items */ export declare class TLVMappedJsonArrayOfObjectCompressor<T extends ObjectMapping> implements DBIOTConverterInterface<T[]> { private readonly options; constructor(options: { fields: { fieldName: string; converter: DBIOTConverterInterface<any>; }[]; }); encode(input: T[], stream?: TapStreamWriter): Uint8Array; decode(streamOrBuffer: TapStreamReader | Uint8Array): T[]; }