diff options
| author | Dax Raad <[email protected]> | 2026-04-18 10:42:33 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2026-04-18 10:42:33 -0400 |
| commit | 1ee712e549f8e31e38d70abd600ed48010659f8a (patch) | |
| tree | 0d74d8c3fdd0d1c7fa063b1529193bfc4c5454b8 | |
| parent | 55315bdffaae45d8a983b90836308ad460fc45e4 (diff) | |
| download | opencode-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.ts | 18 |
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(() => ({}))) |
