wowok
Version:
Wowok Blockchain TypeScript API
37 lines (36 loc) • 1.23 kB
TypeScript
export declare class PersistentStorage<T> {
private readonly filePath;
private readonly lock;
constructor(filePath: string);
readAll(): Promise<T>;
writeAll(data: T): Promise<void>;
set<K extends keyof T>(key: K, value: T[K]): Promise<void>;
get<K extends keyof T>(key: K): Promise<T[K] | undefined>;
transaction(transactionFn: (data: T) => T): Promise<void>;
clear(): Promise<void>;
}
export declare class Lock {
private readonly lockPath;
private readonly sharedLockPath;
private lockFd;
private sharedLockCount;
private exclusiveLockCount;
constructor(lockPath: string);
acquireShared(): Promise<void>;
acquireExclusive(): Promise<void>;
releaseShared(): Promise<void>;
releaseExclusive(): Promise<void>;
}
export declare class MultiProcessKVStore<T = any> {
private readonly storage;
constructor(filePath: string);
get(key: string): Promise<T | undefined>;
set(key: string, value: T): Promise<void>;
delete(key: string): Promise<void>;
has(key: string): Promise<boolean>;
keys(): Promise<string[]>;
values(): Promise<T[]>;
entries(): Promise<[string, T][]>;
clear(): Promise<void>;
size(): Promise<number>;
}