@tldraw/tlschema
Version:
A tiny little drawing app (schema).
61 lines (60 loc) • 1.67 kB
JavaScript
import { createMigrationIds, createMigrationSequence } from "@tldraw/store";
import { objectMapEntries } from "@tldraw/utils";
const Versions = createMigrationIds("com.tldraw.store", {
RemoveCodeAndIconShapeTypes: 1,
AddInstancePresenceType: 2,
RemoveTLUserAndPresenceAndAddPointer: 3,
RemoveUserDocument: 4
});
const storeMigrations = createMigrationSequence({
sequenceId: "com.tldraw.store",
retroactive: false,
sequence: [
{
id: Versions.RemoveCodeAndIconShapeTypes,
scope: "store",
up: (store) => {
for (const [id, record] of objectMapEntries(store)) {
if (record.typeName === "shape" && (record.type === "icon" || record.type === "code")) {
delete store[id];
}
}
}
},
{
id: Versions.AddInstancePresenceType,
scope: "store",
up(_store) {
}
},
{
// remove user and presence records and add pointer records
id: Versions.RemoveTLUserAndPresenceAndAddPointer,
scope: "store",
up: (store) => {
for (const [id, record] of objectMapEntries(store)) {
if (record.typeName.match(/^(user|user_presence)$/)) {
delete store[id];
}
}
}
},
{
// remove user document records
id: Versions.RemoveUserDocument,
scope: "store",
up: (store) => {
for (const [id, record] of objectMapEntries(store)) {
if (record.typeName.match("user_document")) {
delete store[id];
}
}
}
}
]
});
export {
storeMigrations,
Versions as storeVersions
};
//# sourceMappingURL=store-migrations.mjs.map