UNPKG

@deepkit/bson

Version:
79 lines (78 loc) 3.51 kB
import { JitStack, ReceiveType, RuntimeCode, Serializer, TemplateRegistry, Type, TypeGuardRegistry } from '@deepkit/type'; export declare function createBuffer(size: number): Uint8Array; 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 class Writer { buffer: Uint8Array; offset: number; dataView: DataView; constructor(buffer: Uint8Array, offset?: number); 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, nameWriter?: () => void): 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 serializeWithoutOptimiser(data: any): Uint8Array; export declare type BSONSerializer = (data: any, state?: { writer?: Writer; }) => Uint8Array; export declare 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 {};