@deepkit/bson
Version:
Deepkit BSON parser
79 lines (78 loc) • 3.51 kB
TypeScript
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 {};