@iotize/tap
Version:
IoTize Device client for Javascript
36 lines (35 loc) • 1.69 kB
TypeScript
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[];
}