Files
AFFiNE-Mirror/blocksuite/integration-test/src/__tests__/utils/misc.ts
T
2025-03-26 11:03:47 +00:00

27 lines
785 B
TypeScript

import { AffineSchemas } from '@blocksuite/affine/schemas';
import { replaceIdMiddleware } from '@blocksuite/affine/shared/adapters';
import {
type DocSnapshot,
Schema,
Transformer,
type Workspace,
} from '@blocksuite/store';
export async function importFromSnapshot(
collection: Workspace,
snapshot: DocSnapshot
) {
const job = new Transformer({
schema: new Schema().register(AffineSchemas),
blobCRUD: collection.blobSync,
docCRUD: {
create: (id: string) => collection.createDoc(id).getStore({ id }),
get: (id: string) => collection.getDoc(id)?.getStore({ id }) ?? null,
delete: (id: string) => collection.removeDoc(id),
},
middlewares: [replaceIdMiddleware(collection.idGenerator)],
});
return job.snapshotToDoc(snapshot);
}