UNPKG

@openland/foundationdb-core

Version:

Node.js bindings for the FoundationDB database

70 lines (69 loc) 2.47 kB
/// <reference types="node" /> import { NativeWatch, NativeTransaction } from './native'; import { KeySelector } from './keySelector'; import { TransactionOptions, TransactionOptionCode, StreamingMode, MutationType } from './opts.g'; export interface RangeOptionsBatch { streamingMode?: StreamingMode; limit?: number; reverse?: boolean; } export interface RangeOptions extends RangeOptionsBatch { targetBytes?: number; } export declare type KVList = { results: [Buffer, Buffer][]; more: boolean; }; export { NativeWatch as Watch }; export declare type WatchOptions = { throwAllErrors?: boolean; }; export default class Transaction { private readonly _tn; readonly isSnapshot: boolean; constructor(tn: NativeTransaction, snapshot: boolean, opts?: TransactionOptions); setOption(opt: TransactionOptionCode, value?: number | string | Buffer): void; snapshot(): Transaction; rawCommit(): Promise<void>; rawReset(): void; rawCancel(): void; rawOnError(code: number): Promise<void>; get(key: Buffer): Promise<Buffer | null>; getKey(_sel: Buffer | KeySelector): Promise<Buffer | null>; set(key: Buffer, val: Buffer): void; clear(key: Buffer): void; /** * Range reads * @param start start key * @param end end key * @param opts options */ getRangeAll(start: Buffer | KeySelector, end: Buffer | KeySelector, opts?: RangeOptions): Promise<[Buffer, Buffer][]>; private getRangeNative; private getRangeBatch; clearRange(start: Buffer, end: Buffer): void; watch(key: Buffer, opts?: WatchOptions): NativeWatch; /** * Read conflict range * @param start * @param end */ addReadConflictRange(start: Buffer, end: Buffer): void; addWriteConflictRange(start: Buffer, end: Buffer): void; setReadVersion(v: Buffer): void; getReadVersion(): Promise<Buffer>; getCommittedVersion(): Buffer; getVersionstamp(): { promise: Promise<Buffer>; }; getAddressesForKey(key: Buffer): string[]; atomicOp(opType: MutationType, key: Buffer, oper: Buffer): void; add(key: Buffer, oper: Buffer): void; max(key: Buffer, oper: Buffer): void; min(key: Buffer, oper: Buffer): void; bitAnd(key: Buffer, oper: Buffer): void; bitOr(key: Buffer, oper: Buffer): void; bitXor(key: Buffer, oper: Buffer): void; byteMin(key: Buffer, val: Buffer): void; byteMax(key: Buffer, val: Buffer): void; }