summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2026-04-18 10:42:33 -0400
committerDax Raad <[email protected]>2026-04-18 10:42:33 -0400
commit1ee712e549f8e31e38d70abd600ed48010659f8a (patch)
tree0d74d8c3fdd0d1c7fa063b1529193bfc4c5454b8
parent55315bdffaae45d8a983b90836308ad460fc45e4 (diff)
downloadopencode-1ee712e549f8e31e38d70abd600ed48010659f8a.tar.gz
opencode-1ee712e549f8e31e38d70abd600ed48010659f8a.zip
core: fix early return when node_modules is missing during package install
-rw-r--r--packages/opencode/src/npm/index.ts18
1 files changed, 11 insertions, 7 deletions
diff --git a/packages/opencode/src/npm/index.ts b/packages/opencode/src/npm/index.ts
index d92099bc3..0760e768b 100644
--- a/packages/opencode/src/npm/index.ts
+++ b/packages/opencode/src/npm/index.ts
@@ -150,13 +150,17 @@ export const layer = Layer.effect(
if (!canWrite) return
const add = input?.add.map((pkg) => [pkg.name, pkg.version].filter(Boolean).join("@")) ?? []
- yield* Effect.gen(function* () {
- const nodeModulesExists = yield* afs.existsSafe(path.join(dir, "node_modules"))
- if (!nodeModulesExists) {
- yield* reify({ add, dir })
- return
- }
- }).pipe(Effect.withSpan("Npm.checkNodeModules"))
+ if (
+ yield* Effect.gen(function* () {
+ const nodeModulesExists = yield* afs.existsSafe(path.join(dir, "node_modules"))
+ if (!nodeModulesExists) {
+ yield* reify({ add, dir })
+ return true
+ }
+ return false
+ }).pipe(Effect.withSpan("Npm.checkNodeModules"))
+ )
+ return
yield* Effect.gen(function* () {
const pkg = yield* afs.readJson(path.join(dir, "package.json")).pipe(Effect.orElseSucceed(() => ({})))