@openland/foundationdb-core
Version:
Node.js bindings for the FoundationDB database
60 lines (59 loc) • 2.44 kB
TypeScript
/// <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;