tree.mjs 688 B

1234567891011121314151617181920212223
  1. function getIconsTree(data, names) {
  2. const icons = data.icons;
  3. const aliases = data.aliases || /* @__PURE__ */ Object.create(null);
  4. const resolved = /* @__PURE__ */ Object.create(null);
  5. function resolve(name) {
  6. if (icons[name]) {
  7. return resolved[name] = [];
  8. }
  9. if (!(name in resolved)) {
  10. resolved[name] = null;
  11. const parent = aliases[name] && aliases[name].parent;
  12. const value = parent && resolve(parent);
  13. if (value) {
  14. resolved[name] = [parent].concat(value);
  15. }
  16. }
  17. return resolved[name];
  18. }
  19. (names || Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);
  20. return resolved;
  21. }
  22. export { getIconsTree };