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