UNPKG

@openland/foundationdb-core

Version:

Node.js bindings for the FoundationDB database

60 lines (59 loc) 2.44 kB
/// <reference types="node" /> import { MutationType, StreamingMode } from './opts.g'; export declare type KVList = { results: [Buffer, Buffer][]; more: boolean; }; export declare type NativeWatch = { cancel(): void; promise: Promise<boolean>; }; export interface NativeTransaction { setOption(code: number, param: string | number | Buffer | null): void; commit(): Promise<void>; reset(): void; cancel(): void; onError(code: number): Promise<void>; get(key: Buffer, isSnapshot: boolean): Promise<Buffer | null>; getKey(key: Buffer, orEqual: boolean, offset: number, isSnapshot: boolean): Promise<Buffer | null>; set(key: Buffer, val: Buffer): void; clear(key: Buffer): void; atomicOp(opType: MutationType, key: Buffer, operand: Buffer): void; getRange(start: Buffer, beginOrEq: boolean, beginOffset: number, end: Buffer, endOrEq: boolean, endOffset: number, limit: number, targetBytes: number, mode: StreamingMode, iter: number, isSnapshot: boolean, reverse: boolean): Promise<KVList>; clearRange(start: Buffer, end: Buffer): void; watch(key: Buffer, ignoreStandardErrs: boolean): NativeWatch; addReadConflictRange(start: Buffer, end: Buffer): void; addWriteConflictRange(start: Buffer, end: Buffer): void; setReadVersion(v: Buffer): void; getReadVersion(): Promise<Buffer>; getCommittedVersion(): Buffer; getVersionstamp(): Promise<Buffer>; getAddressesForKey(key: Buffer): string[]; } export interface NativeDatabase { createTransaction(): NativeTransaction; setOption(code: number, param: string | number | Buffer | null): void; close(): void; } export interface NativeCluster { openDatabase(dbName: 'DB'): Promise<NativeDatabase>; openDatabaseSync(dbName: 'DB'): NativeDatabase; close(): void; } export declare enum ErrorPredicate { Retryable = 50000, MaybeCommitted = 50001, RetryableNotCommitted = 50002 } export interface NativeModule { setAPIVersion(v: number): void; setAPIVersionImpl(v: number, h: number): void; startNetwork(): void; stopNetwork(): void; createCluster(filename?: string): Promise<NativeCluster>; createClusterSync(filename?: string): NativeCluster; setNetworkOption(code: number, param: string | number | Buffer | null): void; errorPredicate(test: ErrorPredicate, code: number): boolean; } declare const _default: NativeModule; export default _default;