summaryrefslogtreecommitdiffhomepage
path: root/packages/core/src
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2026-05-01 15:49:14 -0500
committerGitHub <[email protected]>2026-05-01 15:49:14 -0500
commit478156456e92c3db04803953127b4a4af2db064c (patch)
tree29f628ad58e57d5feee65f7f25271e676939c06d /packages/core/src
parent6252412d94c91c83bb76f98686f4c987903019e9 (diff)
downloadopencode-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.ts8
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)