feat: support get datasource status (#3645)

This commit is contained in:
Alex Yang
2023-08-10 01:05:34 -04:00
committed by GitHub
parent 05144abd6a
commit dafd5619e6
34 changed files with 836 additions and 46 deletions

View File

@@ -26,10 +26,15 @@ const createIndexedDBBackgroundProvider: DocProviderCreator = (
blockSuiteWorkspace
): LocalIndexedDBBackgroundProvider => {
const indexeddbProvider = create(blockSuiteWorkspace);
let connected = false;
return {
flavour: 'local-indexeddb-background',
passive: true,
get status() {
return indexeddbProvider.status;
},
subscribeStatusChange: indexeddbProvider.subscribeStatusChange,
get connected() {
return connected;
},

View File

@@ -6,6 +6,7 @@ import {
createLazyProvider,
type DatasourceDocAdapter,
} from '@affine/y-provider';
import { assertExists } from '@blocksuite/global/utils';
import type { DocProviderCreator } from '@blocksuite/store';
import { Workspace as BlockSuiteWorkspace } from '@blocksuite/store';
import type { Doc } from 'yjs';
@@ -51,6 +52,14 @@ export const createSQLiteProvider: DocProviderCreator = (
return {
flavour: 'sqlite',
passive: true,
get status() {
assertExists(provider);
return provider.status;
},
subscribeStatusChange(onStatusChange) {
assertExists(provider);
return provider.subscribeStatusChange(onStatusChange);
},
connect: () => {
datasource = createDatasource(id);
provider = createLazyProvider(rootDoc, datasource, { origin: 'sqlite' });