diff options
| author | Aiden Cline <[email protected]> | 2026-05-01 15:49:14 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-05-01 15:49:14 -0500 |
| commit | 478156456e92c3db04803953127b4a4af2db064c (patch) | |
| tree | 29f628ad58e57d5feee65f7f25271e676939c06d /packages/core/src | |
| parent | 6252412d94c91c83bb76f98686f4c987903019e9 (diff) | |
| download | opencode-478156456e92c3db04803953127b4a4af2db064c.tar.gz opencode-478156456e92c3db04803953127b4a4af2db064c.zip | |
core: fix npm package detection to properly handle cached directories without installed packages (#25354)
Diffstat (limited to 'packages/core/src')
| -rw-r--r-- | packages/core/src/npm.ts | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/packages/core/src/npm.ts b/packages/core/src/npm.ts index 92e404276..8dac8faf0 100644 --- a/packages/core/src/npm.ts +++ b/packages/core/src/npm.ts @@ -120,13 +120,17 @@ export const layer = Layer.effect( } })() - if (yield* afs.existsSafe(dir)) { + if (yield* afs.existsSafe(path.join(dir, "node_modules", name))) { return resolveEntryPoint(name, path.join(dir, "node_modules", name)) } const tree = yield* reify({ dir, add: [pkg] }) const first = tree.edgesOut.values().next().value?.to - if (!first) return yield* new InstallFailedError({ add: [pkg], dir }) + if (!first) { + const result = resolveEntryPoint(name, path.join(dir, "node_modules", name)) + if (Option.isSome(result.entrypoint)) return result + return yield* new InstallFailedError({ add: [pkg], dir }) + } return resolveEntryPoint(first.name, first.path) }, Effect.scoped) |
