UNPKG

wip-backup-manager

Version:

This utility enables backup & restore of Kentico Kontent projects

112 lines 4.97 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var TranslationHelper = /** @class */ (function () { function TranslationHelper() { } TranslationHelper.prototype.replaceIdReferencesWithExternalId = function (data) { if (data) { if (Array.isArray(data)) { for (var _i = 0, data_1 = data; _i < data_1.length; _i++) { var arrayItem = data_1[_i]; this.replaceIdReferencesWithExternalId(arrayItem); } } else { for (var _a = 0, _b = Object.keys(data); _a < _b.length; _a++) { var key = _b[_a]; var val = data[key]; if (key.toLowerCase() === 'id') { var id = data.id; if (id) { data.external_id = id; delete data.id; } } if (typeof val === 'object' && val !== null) { this.replaceIdReferencesWithExternalId(val); } } } } }; TranslationHelper.prototype.replaceIdReferencesWithCodenames = function (data, allData, storedCodenames) { if (data) { if (Array.isArray(data)) { for (var _i = 0, data_2 = data; _i < data_2.length; _i++) { var arrayItem = data_2[_i]; this.replaceIdReferencesWithCodenames(arrayItem, allData, storedCodenames); } } else { for (var _a = 0, _b = Object.keys(data); _a < _b.length; _a++) { var key = _b[_a]; var val = data[key]; if (key.toLowerCase() === 'id') { var id = data.id; var codename = data.codename; if (!codename) { // replace id with codename var foundCodename = this.tryFindCodenameForId(id, allData, storedCodenames); if (foundCodename) { // remove id prop delete data.id; // set codename prop data.codename = foundCodename; } } } if (typeof val === 'object' && val !== null) { this.replaceIdReferencesWithCodenames(val, allData, storedCodenames); } } } } }; TranslationHelper.prototype.tryFindCodenameForId = function (findId, data, storedCodenames, foundCodename) { // try looking up codename in stored references var storedCodename = storedCodenames[findId]; if (storedCodename) { return storedCodename; } if (data) { if (Array.isArray(data)) { for (var _i = 0, data_3 = data; _i < data_3.length; _i++) { var arrayItem = data_3[_i]; foundCodename = this.tryFindCodenameForId(findId, arrayItem, storedCodenames, foundCodename); } } else { for (var _a = 0, _b = Object.keys(data); _a < _b.length; _a++) { var key = _b[_a]; var val = data[key]; var candidateId = void 0; if (key.toLowerCase() === 'id') { candidateId = data.id; } if (key.toLocaleLowerCase() === 'external_id') { candidateId = data.external_id; } if (candidateId) { var codename = data.codename; if (codename) { // store id -> codename mapping so that we don't have to always // search for it as its expensive operation storedCodenames[candidateId] = codename; } if (codename && candidateId === findId) { return codename; } } if (typeof val === 'object' && val !== null) { foundCodename = this.tryFindCodenameForId(findId, val, storedCodenames, foundCodename); } } } } return foundCodename; }; return TranslationHelper; }()); exports.TranslationHelper = TranslationHelper; exports.translationHelper = new TranslationHelper(); //# sourceMappingURL=translation-helper.js.map