@gmetrixr/rjson
Version:
(R)ecursive Json
27 lines (26 loc) • 1.12 kB
JavaScript
import { r, rtp, RT, en } from "../../../r";
/**
* Add text version = v1 for existing elements
*/
class Migration {
execute(projectJson) {
const pJson = projectJson;
const projectF = r.record(pJson);
for (const scene of projectF.getRecords(RT.scene)) {
const sceneF = r.record(scene);
const textElements = sceneF.getAllDeepChildrenWithFilter(RT.element, (e) => e.props.element_type === en.ElementType.text);
for (const element of textElements) {
const elementF = r.element(element);
// ! using get here instead of getValueOrDefault to get the actual value in the json
const textVersion = elementF.get(rtp.element.text_version);
if (textVersion === null || textVersion === undefined) {
// if undefined or null, this is a legacy text element.
elementF.set(rtp.element.text_version, "v1");
}
}
}
projectF.set(rtp.project.version, 125);
}
}
const migration = new Migration();
export default migration;