Backup restore support (#1878)

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
Andrey Sobolev
2022-06-01 19:05:07 +07:00
committed by GitHub
parent 30f615647e
commit 5705281de5
57 changed files with 1301 additions and 375 deletions
+6
View File
@@ -48,6 +48,8 @@ export interface DbAdapter {
find: (domain: Domain) => StorageIterator
load: (domain: Domain, docs: Ref<Doc>[]) => Promise<Doc[]>
upload: (domain: Domain, docs: Doc[]) => Promise<void>
clean: (domain: Domain, docs: Ref<Doc>[]) => Promise<void>
}
/**
@@ -114,6 +116,10 @@ class InMemoryAdapter implements DbAdapter {
async load (domain: Domain, docs: Ref<Doc>[]): Promise<Doc[]> {
return []
}
async upload (domain: Domain, docs: Doc[]): Promise<void> {}
async clean (domain: Domain, docs: Ref<Doc>[]): Promise<void> {}
}
/**
+8
View File
@@ -83,4 +83,12 @@ class TPipeline implements Pipeline {
async load (domain: Domain, docs: Ref<Doc>[]): Promise<Doc[]> {
return await this.storage.load(domain, docs)
}
async upload (domain: Domain, docs: Doc[]): Promise<void> {
await this.storage.upload(domain, docs)
}
async clean (domain: Domain, docs: Ref<Doc>[]): Promise<void> {
await this.storage.clean(domain, docs)
}
}
+8
View File
@@ -405,6 +405,14 @@ class TServerStorage implements ServerStorage {
async load (domain: Domain, docs: Ref<Doc>[]): Promise<Doc[]> {
return await this.getAdapter(domain).load(domain, docs)
}
async upload (domain: Domain, docs: Doc[]): Promise<void> {
await this.getAdapter(domain).upload(domain, docs)
}
async clean (domain: Domain, docs: Ref<Doc>[]): Promise<void> {
await this.getAdapter(domain).clean(domain, docs)
}
}
type Effect = () => Promise<void>