Skip to content

Commit c8c3df3

Browse files
Read package.json to determine installed icon packs (#175)
* fix: read package.json to determine installed icon packs * chore: add changeset * chore(lint): Prettier fix --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 3819bd1 commit c8c3df3

File tree

4 files changed

+12
-37
lines changed

4 files changed

+12
-37
lines changed

.changeset/six-parents-know.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"astro-icon": patch
3+
---
4+
5+
Fixes an issue that caused installed `@iconify-json/*` packages to not be detected in production environments

packages/core/package.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,7 @@
4949
"dependencies": {
5050
"@iconify/tools": "^3.0.1",
5151
"@iconify/types": "^2.0.0",
52-
"@iconify/utils": "^2.1.5",
53-
"@skarab/detect-package-manager": "^1.0.0"
52+
"@iconify/utils": "^2.1.5"
5453
},
5554
"devDependencies": {
5655
"@types/node": "^18.18.0",

packages/core/src/loaders/loadIconifyCollections.ts

+6-24
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@ import type {
66
import type { AutoInstall } from "../../typings/iconify";
77

88
import { readFile } from "node:fs/promises";
9-
import { detectAgent } from "@skarab/detect-package-manager";
109
import { getIcons } from "@iconify/utils";
1110
import { loadCollectionFromFS } from "@iconify/utils/lib/loader/fs";
12-
import { fileURLToPath } from "node:url";
1311
import { promisify } from "node:util";
1412
import { exec } from "node:child_process";
1513

@@ -89,29 +87,13 @@ export async function loadCollection(
8987

9088
async function detectInstalledCollections(root: URL) {
9189
try {
92-
const agent = await detectAgent(fileURLToPath(root));
9390
let packages: string[] = [];
94-
if (!agent) {
95-
const text = await readFile(new URL("./package.json", root), {
96-
encoding: "utf8",
97-
});
98-
const { dependencies = {}, devDependencies = {} } = JSON.parse(text);
99-
packages.push(...Object.keys(dependencies));
100-
packages.push(...Object.keys(devDependencies));
101-
} else {
102-
const { stdout: text } = await execa(`${agent.name} list --json`);
103-
const data = JSON.parse(text);
104-
if (Array.isArray(data)) {
105-
for (const { dependencies = {}, devDependencies = {} } of data) {
106-
packages.push(...Object.keys(dependencies));
107-
packages.push(...Object.keys(devDependencies));
108-
}
109-
} else {
110-
const { dependencies = {}, devDependencies = {} } = data;
111-
packages.push(...Object.keys(dependencies));
112-
packages.push(...Object.keys(devDependencies));
113-
}
114-
}
91+
const text = await readFile(new URL("./package.json", root), {
92+
encoding: "utf8",
93+
});
94+
const { dependencies = {}, devDependencies = {} } = JSON.parse(text);
95+
packages.push(...Object.keys(dependencies));
96+
packages.push(...Object.keys(devDependencies));
11597
const collections = packages
11698
.filter((name) => name.startsWith("@iconify-json/"))
11799
.map((name) => name.replace("@iconify-json/", ""));

pnpm-lock.yaml

-11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)