wip-backup-manager
Version:
This utility enables backup & restore of Kentico Kontent projects
68 lines • 3.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var IdTranslateHelper = /** @class */ (function () {
function IdTranslateHelper() {
}
IdTranslateHelper.prototype.replaceIdReferencesWithNewId = function (data, items) {
if (data) {
if (Array.isArray(data)) {
for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
var arrayItem = data_1[_i];
this.replaceIdReferencesWithNewId(arrayItem, items);
}
}
else {
for (var _a = 0, _b = Object.keys(data); _a < _b.length; _a++) {
var key = _b[_a];
var val = data[key];
if (typeof val === 'string' && val.startsWith('<') && val.endsWith('>')) {
// replace string with updated one
var newData = this.replaceIdsInRichText(val, items);
data[key] = newData;
}
if (key.toLowerCase() === 'id') {
var id = data.id;
var newId = this.tryFindNewId(id, items);
if (newId) {
data.id = newId;
}
}
if (typeof val === 'object' && val !== null) {
this.replaceIdReferencesWithNewId(val, items);
}
}
}
}
};
IdTranslateHelper.prototype.replaceIdsInRichText = function (text, items) {
var itemId = { regex: /data-item-id=\"(.*?)\"/g, attr: 'data-item-id' };
var assetId = { regex: /data-asset-id=\"(.*?)\"/g, attr: 'data-asset-id' };
var imageId = { regex: /data-image-id=\"(.*?)\"/g, attr: 'data-image-id' };
var dataId = { regex: /data-id=\"(.*?)\"/g, attr: 'data-id' };
text = this.replaceTextWithRegex(itemId.regex, text, itemId.attr, items);
text = this.replaceTextWithRegex(assetId.regex, text, assetId.attr, items);
text = this.replaceTextWithRegex(imageId.regex, text, imageId.attr, items);
text = this.replaceTextWithRegex(dataId.regex, text, dataId.attr, items);
return text;
};
IdTranslateHelper.prototype.replaceTextWithRegex = function (regex, text, replaceAttr, items) {
var _this = this;
return text.replace(regex, function (a, b) {
if (b) {
var newId = _this.tryFindNewId(b, items);
if (newId) {
return replaceAttr + "=\"" + newId + "\"";
}
}
return a;
});
};
IdTranslateHelper.prototype.tryFindNewId = function (id, items) {
var item = items.find(function (m) { return m.originalId === id; });
return item === null || item === void 0 ? void 0 : item.importId;
};
return IdTranslateHelper;
}());
exports.IdTranslateHelper = IdTranslateHelper;
exports.idTranslateHelper = new IdTranslateHelper();
//# sourceMappingURL=id-translate-helper.js.map