UNPKG

@deepkit/bson

Version:

Deepkit BSON parser

115 lines (114 loc) 5.07 kB
import { JitStack, ReceiveType, RuntimeCode, Serializer, TemplateRegistry, Type, TypeGuardRegistry } from '@deepkit/type'; export declare const JS_INT_MAX = 9007199254740992; export declare const JS_INT_MIN = -9007199254740992; export declare function hexToByte(hex: string, index?: number, offset?: number): number; export declare function uuidStringToByte(hex: string, index?: number): number; export declare function stringByteLength(str: string): number; export declare function getValueSize(value: any): number; export declare class ValueWithBSONSerializer { value: any; type: Type; constructor(value: any, type: Type); } export declare function wrapValue<T>(value: any, type?: ReceiveType<T>): ValueWithBSONSerializer; export declare function wrapObjectId(value: string): ValueWithBSONSerializer; export declare function wrapUUID(value: string): ValueWithBSONSerializer; export declare function writeUint32LE(buffer: Uint8Array, offset: number, value: number): void; export declare function writeInt32LE(buffer: Uint8Array, offset: number, value: number): void; export declare function writeFloat64LE(buffer: Uint8Array, offset: number, value: number): void; export type AutoBufferSerializerState = { writer?: Writer; }; export type AutoBufferSerializer = (data: any, state: AutoBufferSerializerState) => void; export declare class AutoBuffer { prepend: number; private initialSize; _buffer: Uint8Array; state: { writer: Writer; }; constructor(prepend?: number, initialSize?: number); get buffer(): Uint8Array<ArrayBufferLike>; get size(): number; setOffset(offset: number): void; apply(serializer: AutoBufferSerializer, data: any): void; } export declare class Writer { buffer: Uint8Array; offset: number; typeOffset: number; constructor(buffer: Uint8Array, offset?: number); reset(): void; /** * If typeOffset is defined, the type will be written at this offset. * Useful for writing type information for members in array/object literals. */ writeType(v: number): void; resetWriteType(): void; prepareWriteType(): void; writeUint32(v: number): void; writeInt32(v: number): void; writeDouble(v: number): void; writeDelayedSize(v: number, position: number): void; writeByte(v: number): void; writeBuffer(buffer: Uint8Array, offset?: number): void; writeNull(): void; writeAsciiString(str: string | number): void; writeString(str: string): void; getBigIntBSONType(value: bigint): number; writeBigIntLong(value: bigint): void; writeBigIntBinary(value: bigint): void; writeSignedBigIntBinary(value: bigint): void; writeLong(value: number): void; writeUUID(value: string): void; writeObjectId(value: string): void; write(value: any): void; writeArrayBuffer(value: ArrayBuffer | ArrayBufferView): void; } export declare class DigitByteRuntimeCode extends RuntimeCode { code: string; constructor(code: string); } interface BSONSerializerOptions { /** * If true the serializes changes slightly its behaviour to make it compatible with the mongo database. * For example are fields marked as BackReference excluded. * Fields marked as Reference() will only serialize its primary key. * * */ forMongoDatabase?: true; } export declare class BSONBinarySerializer extends Serializer { protected options: BSONSerializerOptions; name: string; serializeId: symbol; deserializeId: symbol; sizerId: symbol; sizerRegistry: TemplateRegistry; bsonSerializeRegistry: TemplateRegistry; bsonDeserializeRegistry: TemplateRegistry; bsonTypeGuards: TypeGuardRegistry; constructor(options?: BSONSerializerOptions); protected registerSizer(): void; protected registerBsonSerializers(): void; protected registerBsonTypeGuards(): void; protected registerBsonDeserializers(): void; } export declare const bsonBinarySerializer: BSONBinarySerializer; export declare function createBSONSizer<T>(type?: ReceiveType<T>, serializer?: BSONBinarySerializer, jitStack?: JitStack): (data: object) => number; export declare function serializeBSONWithoutOptimiser(data: any): Uint8Array; export type BSONSerializerState = { writer?: Writer; }; export type BSONSerializer = (data: any, state?: BSONSerializerState) => Uint8Array; export type BSONSizer = (data: any) => number; export declare function getBSONSerializer<T>(serializer?: BSONBinarySerializer, receiveType?: ReceiveType<T>): BSONSerializer; export declare function getBSONSizer<T>(serializer?: BSONBinarySerializer, receiveType?: ReceiveType<T>): BSONSizer; export declare function serializeBSON<T>(data: T, serializer?: BSONBinarySerializer, receiveType?: ReceiveType<T>): Uint8Array; export {}; export declare type __ΩAutoBufferSerializerState = any[]; export declare type __ΩAutoBufferSerializer = any[]; export declare type __ΩBSONSerializerState = any[]; export declare type __ΩBSONSerializer = any[]; export declare type __ΩBSONSizer = any[];