diff --git a/packages/utils/src/loader/node-loader.ts b/packages/utils/src/loader/node-loader.ts index 27eab2b..2109c9f 100644 --- a/packages/utils/src/loader/node-loader.ts +++ b/packages/utils/src/loader/node-loader.ts @@ -15,19 +15,24 @@ export const loadNodeIcon: UniversalIconLoader = async ( return result; } - const iconSet = await loadCollectionFromFS( - collection, - options?.autoInstall, - undefined, - options?.cwd - ); - if (iconSet) { - result = await searchForIcon( - iconSet, + const cwds = Array.isArray(options?.cwd) ? options.cwd : [options?.cwd]; + + for (const cwd of cwds) { + const iconSet = await loadCollectionFromFS( collection, - getPossibleIconNames(icon), - options + options?.autoInstall, + undefined, + cwd ); + if (iconSet) { + result = await searchForIcon( + iconSet, + collection, + getPossibleIconNames(icon), + options + ); + if (result) break; + } } if (!result && options?.warn) { diff --git a/packages/utils/src/loader/types.ts b/packages/utils/src/loader/types.ts index a5a5d50..42b8bae 100644 --- a/packages/utils/src/loader/types.ts +++ b/packages/utils/src/loader/types.ts @@ -183,8 +183,11 @@ export type IconifyLoaderOptions = { /** * Current working directory, used to resolve the @iconify-json package. * + * Can be a string or an array of strings, the first existing path will be used. + * * Only used on `node` environment. + * * @default process.cwd() */ - cwd?: string; + cwd?: string | string[]; };