UNPKG

wip-backup-manager

Version:

This utility enables backup & restore of Kentico Kontent projects

68 lines 3.19 kB
"use strict"; 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