@agility/cli
Version:
Agility CLI for working with your content. (Public Beta)
44 lines • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.hasUnresolvedContentReferences = hasUnresolvedContentReferences;
/**
* Recursively check for unresolved content references
*/
function hasUnresolvedContentReferences(obj, referenceMapper) {
if (typeof obj !== 'object' || obj === null) {
return false;
}
if (Array.isArray(obj)) {
return obj.some(function (item) { return hasUnresolvedContentReferences(item, referenceMapper); });
}
for (var _i = 0, _a = Object.entries(obj); _i < _a.length; _i++) {
var _b = _a[_i], key = _b[0], value = _b[1];
// Check for content reference patterns
if ((key === 'contentid' || key === 'contentID') && typeof value === 'number') {
var mappedId = referenceMapper.getContentItemMappingByContentID(value, 'source');
if (!mappedId) {
return true; // Unresolved content reference
}
}
// Check for comma-separated content IDs in sortids fields
if (key === 'sortids' && typeof value === 'string') {
var contentIds = value.split(',').filter(function (id) { return id.trim(); });
for (var _c = 0, contentIds_1 = contentIds; _c < contentIds_1.length; _c++) {
var contentIdStr = contentIds_1[_c];
var contentId = parseInt(contentIdStr.trim());
if (!isNaN(contentId)) {
var mappedId = referenceMapper.getContentItemMappingByContentID(contentId, 'source');
if (!mappedId) {
return true; // Unresolved content reference
}
}
}
}
// Recursive check for nested objects
if (hasUnresolvedContentReferences(value, referenceMapper)) {
return true;
}
}
return false;
}
//# sourceMappingURL=has-unresolved-content-references.js.map