import fromLokalise from "./translations/en.json" with { type: "json" } import fromCodebase from "./extracted.json" with { type: "json" } function diffArray(json1, json2) { const diff = [] const keys1 = Object.keys(json1) const keys2 = Object.keys(json2) keys1.forEach((key) => { if (!keys2.includes(key)) { diff.push(key) } }) return diff } function resolveLabels(ids, arr) { return ids.map((id) => { return { id, ...arr[id], } }) } const labelsToRemove = diffArray(fromLokalise, fromCodebase) const labelsToAdd = diffArray(fromCodebase, fromLokalise) if (labelsToRemove.length === 0 && labelsToAdd.length === 0) { console.log(`Nothing has changed!`) } else { console.log(`Labels to REMOVE from Lokalise: ${labelsToRemove.length}`) console.log(`Labels to ADD to Lokalise: ${labelsToAdd.length}`) console.log("") } if (labelsToRemove.length) { console.log(`${labelsToRemove.length} labels to remove from Lokalise:`) console.table(resolveLabels(labelsToRemove, fromLokalise)) console.log("") } if (labelsToAdd.length) { console.log("") console.log(`${labelsToAdd.length} labels to add to Lokalise`) console.table(resolveLabels(labelsToAdd, fromCodebase)) console.log("") } if (labelsToRemove.length === 0 && labelsToAdd.length === 0) { console.log(`Nothing has changed!`) } else { console.log(`Labels to REMOVE from Lokalise: ${labelsToRemove.length}`) console.log(`Labels to ADD to Lokalise: ${labelsToAdd.length}`) console.log("") }