UNPKG

@amplience/dc-cli

Version:
24 lines (23 loc) 1.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.dedupeContentItems = void 0; const dc_management_sdk_js_1 = require("dc-management-sdk-js"); const content_mapping_1 = require("../content-mapping"); const content_dependancy_tree_1 = require("./content-dependancy-tree"); const dedupeContentItems = (contentItems) => { const repoContentItems = contentItems.map(content => ({ repo: new dc_management_sdk_js_1.ContentRepository(), content })); const contentTree = new content_dependancy_tree_1.ContentDependancyTree(repoContentItems, new content_mapping_1.ContentMapping()); const dedupedContentItems = contentTree.all .filter(node => { let isTopLevel = true; contentTree.traverseDependants(node, dependant => { if (dependant != node && contentTree.all.findIndex(entry => entry === dependant) !== -1) { isTopLevel = false; } }, true); return isTopLevel; }) .map(node => node.owner.content); return dedupedContentItems; }; exports.dedupeContentItems = dedupeContentItems;