UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

43 lines (40 loc) 1.23 kB
import { a as __spreadArray } from '../tslib.es6-096fffdd.js'; function excludeRepeatElements(obj) { return Object.keys(obj).reduce(function (acc, key) { acc[key] = Array.from(new Set(obj[key])).filter(function (item) { return item !== key; }); return acc; }, {}); } function realTraverse(list, map, result, originKey) { for (var _i = 0, _a = __spreadArray([], list, true); _i < _a.length; _i++) { var key = _a[_i]; if (result.indexOf(key) > -1) { continue; } result.push(key); var before = map[key]; if (before) { before = before.filter(function (item) { return item !== originKey && list.indexOf(item) <= -1; }); realTraverse(before, map, result, originKey); } } } function getFlattenedDeps(deps) { deps = excludeRepeatElements(deps); var list = Object.keys(deps); var newDeps = {}; for (var _i = 0, list_1 = list; _i < list_1.length; _i++) { var item = list_1[_i]; var temp = __spreadArray([], deps[item], true); var result = []; realTraverse(__spreadArray([], temp, true), deps, result, item); newDeps[item] = result; } var res = excludeRepeatElements(newDeps); return res; } export { getFlattenedDeps };