import type { FromSnapshotPayload, SnapshotReturn, ToSnapshotPayload, } from '@blockeditor/store'; import { BaseBlockTransformer } from '@blockeditor/store'; import type { ImageBlockProps } from './image-model.js'; export class ImageBlockTransformer extends BaseBlockTransformer { override async toSnapshot(payload: ToSnapshotPayload) { const snapshot = await super.toSnapshot(payload); const sourceId = payload.model.sourceId; if (sourceId) await payload.assets.readFromBlob(sourceId); return snapshot; } override async fromSnapshot( payload: FromSnapshotPayload ): Promise> { const snapshotRet = await super.fromSnapshot(payload); const sourceId = snapshotRet.props.sourceId; if (sourceId) await payload.assets.writeToBlob(sourceId); return snapshotRet; } }