/**
 * 生成迭代式组件映射，将子组件的依赖合并到父组件中
 * 遍历组件映射，如果某个组件本身也在映射中，则将其依赖合并到引用它的父组件中
 * @param {IterativeComponentMap} usingComponentsMap 组件依赖映射，key 为页面/组件名，value 为其依赖的组件对象
 * @example
 * ```ts
 * const map = {
 *   'pages/index': { 'comp-a': {}, 'comp-b': {} },
 *   'comp-a': { 'comp-c': {} },
 * };
 * genIterativeComponentMap(map);
 * // map['pages/index']['comp-a'] 现在包含了 comp-c 的依赖
 * ```
 */
function genIterativeComponentMap(usingComponentsMap) {
  Object.keys(usingComponentsMap).map(function (page) {
    var compObj = usingComponentsMap[page];
    Object.keys(compObj).map(function (comp) {
      if (usingComponentsMap[comp]) {
        compObj[comp] = usingComponentsMap[comp];
      }
    });
  });
}

export { genIterativeComponentMap };
