import { migrateRevision, preMigrate } from '../utils.js'; import { RESOURCE_TYPE, type Model, type ModelRevision } from '../../model/index.js'; /** 迁移模型 */ export async function migrateModel(model: Model): Promise { preMigrate(RESOURCE_TYPE, model); const { revision } = model; // 初始化缺失字段 model.configs ??= []; model.jobs ??= []; revision.parameters ??= []; revision.pins ??= []; revision.implements ??= {}; revision.graphic ??= { pins: {}, markup: [], attrs: {}, width: 0, height: 0, preserveAspectRatio: true }; const minVersion = Math.min(revision.version, model.context.version); (await import('./vpre.js')).migrate(model); if (minVersion < 2) { (await import('./v2.js')).migrate(model); } if (minVersion < 3) { (await import('./v3.js')).migrate(model); } if (minVersion < 5) { (await import('./v5.js')).migrate(model); } } /** 迁移模型 Revision */ export async function migrateModelRevision(revision: ModelRevision): Promise { await migrateRevision(RESOURCE_TYPE, revision, migrateModel); }