@gmetrixr/rjson
Version:
(R)ecursive Json
51 lines (50 loc) • 2.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const r_1 = require("../../../r");
const R_1 = require("../../../r/R");
const recordFactories_1 = require("../../../r/recordFactories");
class Migration {
execute(projectJson) {
const pJson = projectJson;
const projectF = r_1.r.project(pJson);
const menus = projectF.getRecords(r_1.RT.menu);
for (const menu of menus) {
const menuF = new R_1.RecordFactory(menu);
//Convert string id to number
if (typeof menuF.get(r_1.rtp.menu.menu_scene_id) === "string") {
const stringId = menuF.get(r_1.rtp.menu.menu_scene_id);
menuF.set(r_1.rtp.menu.menu_scene_id, Number(stringId));
}
const sceneId = menuF.get(r_1.rtp.menu.menu_scene_id);
//Save in scene.props.linked_menu_id
if (typeof sceneId === "number") {
const scene = projectF.getRecord(r_1.RT.scene, sceneId);
if (scene) {
const sceneF = new recordFactories_1.SceneFactory(scene);
sceneF.set(r_1.rtp.scene.linked_menu_id, menu.id);
}
}
}
const tms = projectF.getRecords(r_1.RT.tour_mode);
for (const tourMode of tms) {
const tourModeF = new R_1.RecordFactory(tourMode);
//Convert string id to number
if (typeof tourModeF.get(r_1.rtp.tour_mode.tour_mode_scene_id) === "string") {
const stringId = tourModeF.get(r_1.rtp.tour_mode.tour_mode_scene_id);
tourModeF.set(r_1.rtp.tour_mode.tour_mode_scene_id, Number(stringId));
}
const sceneId = tourModeF.get(r_1.rtp.tour_mode.tour_mode_scene_id);
//Save in scene.props.linked_tour_mode_id
if (typeof sceneId === "number") {
const scene = projectF.getRecord(r_1.RT.scene, sceneId);
if (scene) {
const sceneF = new recordFactories_1.SceneFactory(scene);
sceneF.set(r_1.rtp.scene.linked_tour_mode_id, tourMode.id);
}
}
}
projectF.set(r_1.rtp.project.version, 156);
}
}
const migration = new Migration();
exports.default = migration;