feat: bump blocksuite (#6078)

This commit is contained in:
regischen
2024-03-13 17:04:21 +08:00
committed by GitHub
parent 573528be41
commit fddbb426a6
126 changed files with 891 additions and 918 deletions

View File

@@ -6,7 +6,7 @@ import {
getWorkspacesQuery,
} from '@affine/graphql';
import { fetcher } from '@affine/graphql';
import { Workspace as BlockSuiteWorkspace } from '@blocksuite/store';
import { DocCollection } from '@blocksuite/store';
import type { WorkspaceListProvider } from '@toeverything/infra';
import {
type BlobStorage,
@@ -71,13 +71,13 @@ export class CloudWorkspaceListProvider implements WorkspaceListProvider {
}
async create(
initial: (
workspace: BlockSuiteWorkspace,
docCollection: DocCollection,
blobStorage: BlobStorage
) => Promise<void>
): Promise<WorkspaceMetadata> {
const tempId = nanoid();
const workspace = new BlockSuiteWorkspace({
const docCollection = new DocCollection({
id: tempId,
idGenerator: () => nanoid(),
schema: globalBlockSuiteSchema,
@@ -99,11 +99,11 @@ export class CloudWorkspaceListProvider implements WorkspaceListProvider {
: new IndexedDBSyncStorage(workspaceId);
// apply initial state
await initial(workspace, blobStorage);
await initial(docCollection, blobStorage);
// save workspace to local storage, should be vary fast
await syncStorage.push(workspaceId, encodeStateAsUpdate(workspace.doc));
for (const subdocs of workspace.doc.getSubdocs()) {
await syncStorage.push(workspaceId, encodeStateAsUpdate(docCollection.doc));
for (const subdocs of docCollection.doc.getSubdocs()) {
await syncStorage.push(subdocs.guid, encodeStateAsUpdate(subdocs));
}
@@ -167,7 +167,7 @@ export class CloudWorkspaceListProvider implements WorkspaceListProvider {
return;
}
const bs = new BlockSuiteWorkspace({
const bs = new DocCollection({
id,
schema: globalBlockSuiteSchema,
});

View File

@@ -1,7 +1,7 @@
import 'fake-indexeddb/auto';
import { AffineSchemas } from '@blocksuite/blocks/schemas';
import { Schema, Workspace } from '@blocksuite/store';
import { DocCollection, Schema } from '@blocksuite/store';
import { SyncEngine, SyncEngineStep, SyncPeerStep } from '@toeverything/infra';
import { beforeEach, describe, expect, test, vi } from 'vitest';
import { Doc } from 'yjs';
@@ -21,23 +21,23 @@ describe('SyncEngine', () => {
test('basic - indexeddb', async () => {
let prev: any;
{
const workspace = new Workspace({
const docCollection = new DocCollection({
id: 'test - syncengine - indexeddb',
schema,
});
const syncEngine = new SyncEngine(
workspace.doc,
new IndexedDBSyncStorage(workspace.doc.guid),
docCollection.doc,
new IndexedDBSyncStorage(docCollection.doc.guid),
[
new IndexedDBSyncStorage(workspace.doc.guid + '1'),
new IndexedDBSyncStorage(workspace.doc.guid + '2'),
new IndexedDBSyncStorage(docCollection.doc.guid + '1'),
new IndexedDBSyncStorage(docCollection.doc.guid + '2'),
]
);
syncEngine.start();
const page = workspace.createDoc({
const page = docCollection.createDoc({
id: 'page0',
});
page.load();
@@ -64,61 +64,61 @@ describe('SyncEngine', () => {
);
await syncEngine.waitForSynced();
syncEngine.forceStop();
prev = workspace.doc.toJSON();
prev = docCollection.doc.toJSON();
}
{
const workspace = new Workspace({
const docCollection = new DocCollection({
id: 'test - syncengine - indexeddb',
schema,
});
const syncEngine = new SyncEngine(
workspace.doc,
new IndexedDBSyncStorage(workspace.doc.guid),
docCollection.doc,
new IndexedDBSyncStorage(docCollection.doc.guid),
[]
);
syncEngine.start();
await syncEngine.waitForSynced();
expect(workspace.doc.toJSON()).toEqual({
expect(docCollection.doc.toJSON()).toEqual({
...prev,
});
syncEngine.forceStop();
}
{
const workspace = new Workspace({
const docCollection = new DocCollection({
id: 'test - syncengine - indexeddb',
schema,
});
const syncEngine = new SyncEngine(
workspace.doc,
new IndexedDBSyncStorage(workspace.doc.guid + '1'),
docCollection.doc,
new IndexedDBSyncStorage(docCollection.doc.guid + '1'),
[]
);
syncEngine.start();
await syncEngine.waitForSynced();
expect(workspace.doc.toJSON()).toEqual({
expect(docCollection.doc.toJSON()).toEqual({
...prev,
});
syncEngine.forceStop();
}
{
const workspace = new Workspace({
const docCollection = new DocCollection({
id: 'test - syncengine - indexeddb',
schema,
});
const syncEngine = new SyncEngine(
workspace.doc,
new IndexedDBSyncStorage(workspace.doc.guid + '2'),
docCollection.doc,
new IndexedDBSyncStorage(docCollection.doc.guid + '2'),
[]
);
syncEngine.start();
await syncEngine.waitForSynced();
expect(workspace.doc.toJSON()).toEqual({
expect(docCollection.doc.toJSON()).toEqual({
...prev,
});
syncEngine.forceStop();

View File

@@ -1,7 +1,7 @@
import 'fake-indexeddb/auto';
import { AffineSchemas } from '@blocksuite/blocks/schemas';
import { Schema, Workspace } from '@blocksuite/store';
import { DocCollection, Schema } from '@blocksuite/store';
import { SyncPeer, SyncPeerStep } from '@toeverything/infra';
import { beforeEach, describe, expect, test, vi } from 'vitest';
@@ -19,19 +19,19 @@ describe('SyncPeer', () => {
test('basic - indexeddb', async () => {
let prev: any;
{
const workspace = new Workspace({
const docCollection = new DocCollection({
id: 'test - syncpeer - indexeddb',
schema,
});
const syncPeer = new SyncPeer(
workspace.doc,
new IndexedDBSyncStorage(workspace.doc.guid)
docCollection.doc,
new IndexedDBSyncStorage(docCollection.doc.guid)
);
await syncPeer.waitForLoaded();
const page = workspace.createDoc({
const page = docCollection.createDoc({
id: 'page0',
});
page.load();
@@ -58,21 +58,21 @@ describe('SyncPeer', () => {
);
await syncPeer.waitForSynced();
syncPeer.stop();
prev = workspace.doc.toJSON();
prev = docCollection.doc.toJSON();
}
{
const workspace = new Workspace({
const docCollection = new DocCollection({
id: 'test - syncpeer - indexeddb',
schema,
});
const syncPeer = new SyncPeer(
workspace.doc,
new IndexedDBSyncStorage(workspace.doc.guid)
docCollection.doc,
new IndexedDBSyncStorage(docCollection.doc.guid)
);
await syncPeer.waitForSynced();
expect(workspace.doc.toJSON()).toEqual({
expect(docCollection.doc.toJSON()).toEqual({
...prev,
});
syncPeer.stop();
@@ -80,21 +80,21 @@ describe('SyncPeer', () => {
});
test('status', async () => {
const workspace = new Workspace({
const docCollection = new DocCollection({
id: 'test - syncpeer - status',
schema,
});
const syncPeer = new SyncPeer(
workspace.doc,
new IndexedDBSyncStorage(workspace.doc.guid)
docCollection.doc,
new IndexedDBSyncStorage(docCollection.doc.guid)
);
expect(syncPeer.status.step).toBe(SyncPeerStep.LoadingRootDoc);
await syncPeer.waitForSynced();
expect(syncPeer.status.step).toBe(SyncPeerStep.Synced);
const page = workspace.createDoc({
const page = docCollection.createDoc({
id: 'page0',
});
expect(syncPeer.status.step).toBe(SyncPeerStep.LoadingSubDoc);

View File

@@ -1,6 +1,6 @@
import { apis } from '@affine/electron-api';
import { WorkspaceFlavour } from '@affine/env/workspace';
import { Workspace as BlockSuiteWorkspace } from '@blocksuite/store';
import { DocCollection } from '@blocksuite/store';
import type { WorkspaceListProvider } from '@toeverything/infra';
import {
type BlobStorage,
@@ -53,7 +53,7 @@ export class LocalWorkspaceListProvider implements WorkspaceListProvider {
async create(
initial: (
workspace: BlockSuiteWorkspace,
docCollection: DocCollection,
blobStorage: BlobStorage
) => Promise<void>
): Promise<WorkspaceMetadata> {
@@ -66,7 +66,7 @@ export class LocalWorkspaceListProvider implements WorkspaceListProvider {
? new SQLiteSyncStorage(id)
: new IndexedDBSyncStorage(id);
const workspace = new BlockSuiteWorkspace({
const workspace = new DocCollection({
id: id,
idGenerator: () => nanoid(),
schema: globalBlockSuiteSchema,
@@ -136,7 +136,7 @@ export class LocalWorkspaceListProvider implements WorkspaceListProvider {
return;
}
const bs = new BlockSuiteWorkspace({
const bs = new DocCollection({
id,
schema: globalBlockSuiteSchema,
});