fix(android): fix android nbstore provider (#9865)

This commit is contained in:
EYHN
2025-01-23 11:39:13 +08:00
committed by GitHub
parent a16b57db48
commit 876d4d9c94
6 changed files with 46 additions and 1 deletions

View File

@@ -11,6 +11,7 @@
"@affine/component": "workspace:*", "@affine/component": "workspace:*",
"@affine/core": "workspace:*", "@affine/core": "workspace:*",
"@affine/i18n": "workspace:*", "@affine/i18n": "workspace:*",
"@affine/nbstore": "workspace:*",
"@blocksuite/affine": "workspace:*", "@blocksuite/affine": "workspace:*",
"@blocksuite/icons": "2.2.2", "@blocksuite/icons": "2.2.2",
"@capacitor/android": "^7.0.0", "@capacitor/android": "^7.0.0",

View File

@@ -5,10 +5,15 @@ import { router } from '@affine/core/mobile/router';
import { configureCommonModules } from '@affine/core/modules'; import { configureCommonModules } from '@affine/core/modules';
import { I18nProvider } from '@affine/core/modules/i18n'; import { I18nProvider } from '@affine/core/modules/i18n';
import { LifecycleService } from '@affine/core/modules/lifecycle'; import { LifecycleService } from '@affine/core/modules/lifecycle';
import { configureLocalStorageStateStorageImpls } from '@affine/core/modules/storage'; import {
configureLocalStorageStateStorageImpls,
NbstoreProvider,
} from '@affine/core/modules/storage';
import { configureBrowserWorkbenchModule } from '@affine/core/modules/workbench'; import { configureBrowserWorkbenchModule } from '@affine/core/modules/workbench';
import { configureBrowserWorkspaceFlavours } from '@affine/core/modules/workspace-engine'; import { configureBrowserWorkspaceFlavours } from '@affine/core/modules/workspace-engine';
import { WorkerClient } from '@affine/nbstore/worker/client';
import { Framework, FrameworkRoot, getCurrentStore } from '@toeverything/infra'; import { Framework, FrameworkRoot, getCurrentStore } from '@toeverything/infra';
import { OpClient } from '@toeverything/infra/op';
import { Suspense } from 'react'; import { Suspense } from 'react';
import { RouterProvider } from 'react-router-dom'; import { RouterProvider } from 'react-router-dom';
@@ -22,6 +27,20 @@ configureBrowserWorkbenchModule(framework);
configureLocalStorageStateStorageImpls(framework); configureLocalStorageStateStorageImpls(framework);
configureBrowserWorkspaceFlavours(framework); configureBrowserWorkspaceFlavours(framework);
configureMobileModules(framework); configureMobileModules(framework);
framework.impl(NbstoreProvider, {
openStore(_key, options) {
const worker = new Worker(
new URL(/* webpackChunkName: "nbstore" */ './nbstore.ts', import.meta.url)
);
const client = new WorkerClient(new OpClient(worker), options);
return {
store: client,
dispose: () => {
worker.terminate();
},
};
},
});
const frameworkProvider = framework.provider(); const frameworkProvider = framework.provider();
// setup application lifecycle events, and emit application start event // setup application lifecycle events, and emit application start event

View File

@@ -0,0 +1,22 @@
import '@affine/core/bootstrap/browser';
import { broadcastChannelStorages } from '@affine/nbstore/broadcast-channel';
import { cloudStorages } from '@affine/nbstore/cloud';
import { idbStorages } from '@affine/nbstore/idb';
import {
WorkerConsumer,
type WorkerOps,
} from '@affine/nbstore/worker/consumer';
import { type MessageCommunicapable, OpConsumer } from '@toeverything/infra/op';
const consumer = new WorkerConsumer([
...idbStorages,
...broadcastChannelStorages,
...cloudStorages,
]);
const opConsumer = new OpConsumer<WorkerOps>(
globalThis as MessageCommunicapable
);
consumer.bindConsumer(opConsumer);

View File

@@ -10,6 +10,7 @@
{ "path": "../../component" }, { "path": "../../component" },
{ "path": "../../core" }, { "path": "../../core" },
{ "path": "../../i18n" }, { "path": "../../i18n" },
{ "path": "../../../common/nbstore" },
{ "path": "../../../../blocksuite/affine/all" }, { "path": "../../../../blocksuite/affine/all" },
{ "path": "../../../common/infra" } { "path": "../../../common/infra" }
] ]

View File

@@ -504,6 +504,7 @@ export const PackageList = [
'packages/frontend/component', 'packages/frontend/component',
'packages/frontend/core', 'packages/frontend/core',
'packages/frontend/i18n', 'packages/frontend/i18n',
'packages/common/nbstore',
'blocksuite/affine/all', 'blocksuite/affine/all',
'packages/common/infra', 'packages/common/infra',
], ],

View File

@@ -222,6 +222,7 @@ __metadata:
"@affine/component": "workspace:*" "@affine/component": "workspace:*"
"@affine/core": "workspace:*" "@affine/core": "workspace:*"
"@affine/i18n": "workspace:*" "@affine/i18n": "workspace:*"
"@affine/nbstore": "workspace:*"
"@blocksuite/affine": "workspace:*" "@blocksuite/affine": "workspace:*"
"@blocksuite/icons": "npm:2.2.2" "@blocksuite/icons": "npm:2.2.2"
"@capacitor/android": "npm:^7.0.0" "@capacitor/android": "npm:^7.0.0"