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
+14 -17
View File
@@ -1,7 +1,7 @@
import { Unreachable } from '@affine/env/constant';
import { WorkspaceFlavour } from '@affine/env/workspace';
import { Slot } from '@blocksuite/global/utils';
import type { Workspace as BlockSuiteWorkspace } from '@blocksuite/store';
import type { DocCollection } from '@blocksuite/store';
import { applyUpdate, Doc as YDoc, encodeStateAsUpdate } from 'yjs';
import { checkWorkspaceCompatibility, MigrationPoint } from '../blocksuite';
@@ -38,18 +38,18 @@ export class WorkspaceUpgradeController {
}
constructor(
private readonly blockSuiteWorkspace: BlockSuiteWorkspace,
private readonly docCollection: DocCollection,
private readonly sync: SyncEngine,
private readonly workspaceMetadata: WorkspaceMetadata
) {
blockSuiteWorkspace.doc.on('update', () => {
docCollection.doc.on('update', () => {
this.checkIfNeedUpgrade();
});
}
checkIfNeedUpgrade() {
const needUpgrade = !!checkWorkspaceCompatibility(
this.blockSuiteWorkspace,
this.docCollection,
this.workspaceMetadata.flavour === WorkspaceFlavour.AFFINE_CLOUD
);
this.status = {
@@ -72,7 +72,7 @@ export class WorkspaceUpgradeController {
await this.sync.waitForSynced();
const step = checkWorkspaceCompatibility(
this.blockSuiteWorkspace,
this.docCollection,
this.workspaceMetadata.flavour === WorkspaceFlavour.AFFINE_CLOUD
);
@@ -82,9 +82,9 @@ export class WorkspaceUpgradeController {
// Clone a new doc to prevent change events.
const clonedDoc = new YDoc({
guid: this.blockSuiteWorkspace.doc.guid,
guid: this.docCollection.doc.guid,
});
applyDoc(clonedDoc, this.blockSuiteWorkspace.doc);
applyDoc(clonedDoc, this.docCollection.doc);
if (step === MigrationPoint.SubDoc) {
const newWorkspace = await workspaceManager.createWorkspace(
@@ -92,14 +92,11 @@ export class WorkspaceUpgradeController {
async (workspace, blobStorage) => {
await upgradeV1ToV2(clonedDoc, workspace.doc);
migrateGuidCompatibility(clonedDoc);
await forceUpgradePages(
workspace.doc,
this.blockSuiteWorkspace.schema
);
const blobList = await this.blockSuiteWorkspace.blob.list();
await forceUpgradePages(workspace.doc, this.docCollection.schema);
const blobList = await this.docCollection.blob.list();
for (const blobKey of blobList) {
const blob = await this.blockSuiteWorkspace.blob.get(blobKey);
const blob = await this.docCollection.blob.get(blobKey);
if (blob) {
await blobStorage.set(blobKey, blob);
}
@@ -110,13 +107,13 @@ export class WorkspaceUpgradeController {
return newWorkspace;
} else if (step === MigrationPoint.GuidFix) {
migrateGuidCompatibility(clonedDoc);
await forceUpgradePages(clonedDoc, this.blockSuiteWorkspace.schema);
applyDoc(this.blockSuiteWorkspace.doc, clonedDoc);
await forceUpgradePages(clonedDoc, this.docCollection.schema);
applyDoc(this.docCollection.doc, clonedDoc);
await this.sync.waitForSynced();
return null;
} else if (step === MigrationPoint.BlockVersion) {
await forceUpgradePages(clonedDoc, this.blockSuiteWorkspace.schema);
applyDoc(this.blockSuiteWorkspace.doc, clonedDoc);
await forceUpgradePages(clonedDoc, this.docCollection.schema);
applyDoc(this.docCollection.doc, clonedDoc);
await this.sync.waitForSynced();
return null;
} else {