schema: run v1->v2 frame migration on load/paste

This commit is contained in:
Ryan Di
2026-03-20 00:57:50 +11:00
parent 7b51a6ac54
commit 5bb3046dea
6 changed files with 140 additions and 9 deletions
+14 -1
View File
@@ -24,6 +24,11 @@ import {
restoreElements,
restoreLibraryItems,
} from "./restore";
import {
migrateElementsBySchema,
resolveSchemaVersion,
SCHEMA_VERSIONS,
} from "./schema";
import type { AppState, DataURL, LibraryItem } from "../types";
@@ -157,10 +162,18 @@ export const loadSceneOrLibraryFromBlob = async (
throw error;
}
if (isValidExcalidrawData(data)) {
const schemaVersion = resolveSchemaVersion(
data.schemaVersion,
SCHEMA_VERSIONS.initial,
);
const migratedElements = migrateElementsBySchema(
data.elements,
schemaVersion,
);
return {
type: MIME_TYPES.excalidraw,
data: {
elements: restoreElements(data.elements, localElements, {
elements: restoreElements(migratedElements, localElements, {
repairBindings: true,
deleteInvisibleElements: true,
}),