UNPKG

@gmetrixr/rjson

Version:
39 lines (38 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const r_1 = require("../../../r"); /** * Changes the phrases property in speech element into items */ class Migration { execute(projectJson) { const pJson = projectJson; const projectF = r_1.r.record(pJson); projectF.getAllDeepChildren(r_1.RT.element).forEach(e => { if (e.props.element_type === r_1.en.ElementType.speech) { // phrases is a map const phrases = e.props.phrases; let i = 0; for (const phraseItem of Object.values(phrases)) { i = i + 1; //Need the id to be deterministic for test cases const item = r_1.R.createRecord(r_1.RT.item, e.id + 100002 + i); item.props.phrase_id = phraseItem.phrase_id; item.props.phrase = phraseItem.phrase; item.props.aliases = phraseItem.aliases; r_1.r.element(e).addRecord(item); } delete e.props.phrases; } }); projectF.set(r_1.rtp.project.version, 102); } } const migration = new Migration(); exports.default = migration; //REFERENCE: // export interface Phrase { // phrase: string, // aliases: string[], // phrase_id: number // }