get-icons.cjs 1.3 KB

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