get-icons.mjs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { defaultIconDimensions } from '../icon/defaults.mjs';
  2. import { getIconsTree } from './tree.mjs';
  3. const propsToCopy = Object.keys(defaultIconDimensions).concat([
  4. "provider"
  5. ]);
  6. function getIcons(data, names, not_found) {
  7. const icons = /* @__PURE__ */ Object.create(null);
  8. const aliases = /* @__PURE__ */ Object.create(null);
  9. const result = {
  10. prefix: data.prefix,
  11. icons
  12. };
  13. const sourceIcons = data.icons;
  14. const sourceAliases = data.aliases || /* @__PURE__ */ Object.create(null);
  15. if (data.lastModified) {
  16. result.lastModified = data.lastModified;
  17. }
  18. const tree = getIconsTree(data, names);
  19. let empty = true;
  20. for (const name in tree) {
  21. if (!tree[name]) {
  22. if (not_found && names.indexOf(name) !== -1) {
  23. (result.not_found || (result.not_found = [])).push(name);
  24. }
  25. } else if (sourceIcons[name]) {
  26. icons[name] = {
  27. ...sourceIcons[name]
  28. };
  29. empty = false;
  30. } else {
  31. aliases[name] = {
  32. ...sourceAliases[name]
  33. };
  34. result.aliases = aliases;
  35. }
  36. }
  37. propsToCopy.forEach((attr) => {
  38. if (attr in data) {
  39. result[attr] = data[attr];
  40. }
  41. });
  42. return empty && not_found !== true ? null : result;
  43. }
  44. export { getIcons, propsToCopy };