feat(nbstore): init (#7639)

TODO

- [x] basic
- [x] storages
- [x] producer/consumer
- [x] operation pattern
- [x] events
- [x] worker
- [x] readme
- [x] peer dependencies
This commit is contained in:
forehalo
2024-11-22 03:13:04 +00:00
parent 76eabf644c
commit 4125038ff8
18 changed files with 882 additions and 3 deletions
@@ -0,0 +1,16 @@
import type { DocClock, DocClocks } from './doc';
import { Storage, type StorageOptions } from './storage';
export interface SyncStorageOptions extends StorageOptions {}
export abstract class SyncStorage<
Opts extends SyncStorageOptions = SyncStorageOptions,
> extends Storage<Opts> {
override readonly storageType = 'sync';
abstract getPeerClocks(peer: string): Promise<DocClocks>;
abstract setPeerClock(peer: string, clock: DocClock): Promise<void>;
abstract getPeerPushedClocks(peer: string): Promise<DocClocks>;
abstract setPeerPushedClock(peer: string, clock: DocClock): Promise<void>;
abstract clearClocks(): Promise<void>;
}