UNPKG

@gmetrixr/rjson

Version:
49 lines (48 loc) 2.13 kB
import { r, rtp, RT } from "../../../r"; import { RecordFactory } from "../../../r/R"; import { SceneFactory } from "../../../r/recordFactories"; class Migration { execute(projectJson) { const pJson = projectJson; const projectF = r.project(pJson); const menus = projectF.getRecords(RT.menu); for (const menu of menus) { const menuF = new RecordFactory(menu); //Convert string id to number if (typeof menuF.get(rtp.menu.menu_scene_id) === "string") { const stringId = menuF.get(rtp.menu.menu_scene_id); menuF.set(rtp.menu.menu_scene_id, Number(stringId)); } const sceneId = menuF.get(rtp.menu.menu_scene_id); //Save in scene.props.linked_menu_id if (typeof sceneId === "number") { const scene = projectF.getRecord(RT.scene, sceneId); if (scene) { const sceneF = new SceneFactory(scene); sceneF.set(rtp.scene.linked_menu_id, menu.id); } } } const tms = projectF.getRecords(RT.tour_mode); for (const tourMode of tms) { const tourModeF = new RecordFactory(tourMode); //Convert string id to number if (typeof tourModeF.get(rtp.tour_mode.tour_mode_scene_id) === "string") { const stringId = tourModeF.get(rtp.tour_mode.tour_mode_scene_id); tourModeF.set(rtp.tour_mode.tour_mode_scene_id, Number(stringId)); } const sceneId = tourModeF.get(rtp.tour_mode.tour_mode_scene_id); //Save in scene.props.linked_tour_mode_id if (typeof sceneId === "number") { const scene = projectF.getRecord(RT.scene, sceneId); if (scene) { const sceneF = new SceneFactory(scene); sceneF.set(rtp.scene.linked_tour_mode_id, tourMode.id); } } } projectF.set(rtp.project.version, 156); } } const migration = new Migration(); export default migration;