node-loader.mjs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { searchForIcon } from './modern.mjs';
  2. import { loadCollectionFromFS } from './fs.mjs';
  3. import { warnOnce } from './warn.mjs';
  4. import { loadIcon } from './loader.mjs';
  5. import { getPossibleIconNames } from './utils.mjs';
  6. import '../svg/build.mjs';
  7. import '../icon/defaults.mjs';
  8. import '../customisations/defaults.mjs';
  9. import '../svg/size.mjs';
  10. import '../svg/defs.mjs';
  11. import '../icon-set/get-icon.mjs';
  12. import '../icon/merge.mjs';
  13. import '../icon/transformations.mjs';
  14. import '../icon-set/tree.mjs';
  15. import 'debug';
  16. import 'fs';
  17. import 'local-pkg';
  18. import './install-pkg.mjs';
  19. import '@antfu/install-pkg';
  20. import '@antfu/utils';
  21. import 'kolorist';
  22. import 'mlly';
  23. import './custom.mjs';
  24. import '../svg/trim.mjs';
  25. const loadNodeIcon = async (collection, icon, options) => {
  26. let result = await loadIcon(collection, icon, options);
  27. if (result) {
  28. return result;
  29. }
  30. const cwds = Array.isArray(options?.cwd) ? options.cwd : [options?.cwd];
  31. for (let i = 0; i < cwds.length; i++) {
  32. const iconSet = await loadCollectionFromFS(
  33. collection,
  34. i === cwds.length - 1 ? options?.autoInstall : false,
  35. void 0,
  36. cwds[i]
  37. );
  38. if (iconSet) {
  39. result = await searchForIcon(
  40. iconSet,
  41. collection,
  42. getPossibleIconNames(icon),
  43. options
  44. );
  45. if (result) {
  46. return result;
  47. }
  48. }
  49. }
  50. if (options?.warn) {
  51. warnOnce(`failed to load ${options.warn} icon`);
  52. }
  53. };
  54. export { loadNodeIcon };