Jelajahi Sumber

fix: guard Npm.which() against infinite loop when .bin is empty (#16961)

Luke Parker 5 bulan lalu
induk
melakukan
7910ce5d36
1 mengubah file dengan 3 tambahan dan 1 penghapusan
  1. 3 1
      packages/opencode/src/npm/index.ts

+ 3 - 1
packages/opencode/src/npm/index.ts

@@ -151,7 +151,9 @@ export namespace Npm {
     const files = await readdir(dir).catch(() => [])
     if (!files.length) {
       await add(pkg)
-      return which(pkg)
+      const retry = await readdir(dir).catch(() => [])
+      if (!retry.length) throw new Error(`No binary found for package "${pkg}" after install`)
+      return path.join(dir, retry[0])
     }
     return path.join(dir, files[0])
   }