diff options
| author | opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> | 2026-04-23 16:00:01 +0000 |
|---|---|---|
| committer | opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> | 2026-04-23 16:00:01 +0000 |
| commit | 353532b1c16bd5677efd2c352f502178f0c5094c (patch) | |
| tree | fbd1de07a853dff2ce2a18b890b5f91f15af7ee5 /packages | |
| parent | 9df7c78ebe051a3e71ec6aa27e38a4baa0bbb4bc (diff) | |
| download | opencode-353532b1c16bd5677efd2c352f502178f0c5094c.tar.gz opencode-353532b1c16bd5677efd2c352f502178f0c5094c.zip | |
chore: generate
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/opencode/src/installation/index.ts | 4 | ||||
| -rw-r--r-- | packages/opencode/src/npm/index.ts | 35 | ||||
| -rw-r--r-- | packages/opencode/test/npm.test.ts | 8 |
3 files changed, 25 insertions, 22 deletions
diff --git a/packages/opencode/src/installation/index.ts b/packages/opencode/src/installation/index.ts index e39b14b8f..787f9ea8c 100644 --- a/packages/opencode/src/installation/index.ts +++ b/packages/opencode/src/installation/index.ts @@ -136,7 +136,9 @@ export const layer: Layer.Layer<Service, never, HttpClient.HttpClient | ChildPro const args = method === "bun" ? ["pm", "view", spec, "version", "--json"] : ["view", spec, "version", "--json"] const result = yield* run([method, ...args]) if (result.code !== 0 || !result.stdout.trim()) { - return yield* new UpgradeFailedError({ stderr: result.stderr || result.stdout || `Failed to resolve ${spec}` }) + return yield* new UpgradeFailedError({ + stderr: result.stderr || result.stdout || `Failed to resolve ${spec}`, + }) } return yield* Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.String))(result.stdout) }) diff --git a/packages/opencode/src/npm/index.ts b/packages/opencode/src/npm/index.ts index b259acf0b..4b1f80707 100644 --- a/packages/opencode/src/npm/index.ts +++ b/packages/opencode/src/npm/index.ts @@ -110,25 +110,22 @@ export const layer = Layer.effect( const flock = yield* EffectFlock.Service const spawner = yield* ChildProcessSpawner.ChildProcessSpawner const directory = (pkg: string) => path.join(global.cache, "packages", sanitize(pkg)) - const runView = Effect.fnUntraced( - function* (cmd: string[]) { - const handle = yield* spawner.spawn( - ChildProcess.make(cmd[0], cmd.slice(1), { - extendEnv: true, - }), - ) - const [stdout, stderr] = yield* Effect.all( - [Stream.mkString(Stream.decodeText(handle.stdout)), Stream.mkString(Stream.decodeText(handle.stderr))], - { concurrency: 2 }, - ) - const code = yield* handle.exitCode - if (code !== 0 || !stdout.trim()) { - return yield* Effect.fail(stderr || stdout || `Failed to run ${cmd.join(" ")}`) - } - return yield* Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.String))(stdout) - }, - Effect.scoped, - ) + const runView = Effect.fnUntraced(function* (cmd: string[]) { + const handle = yield* spawner.spawn( + ChildProcess.make(cmd[0], cmd.slice(1), { + extendEnv: true, + }), + ) + const [stdout, stderr] = yield* Effect.all( + [Stream.mkString(Stream.decodeText(handle.stdout)), Stream.mkString(Stream.decodeText(handle.stderr))], + { concurrency: 2 }, + ) + const code = yield* handle.exitCode + if (code !== 0 || !stdout.trim()) { + return yield* Effect.fail(stderr || stdout || `Failed to run ${cmd.join(" ")}`) + } + return yield* Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.String))(stdout) + }, Effect.scoped) const viewLatestVersion = Effect.fnUntraced(function* (pkg: string) { return yield* runView(["npm", "view", pkg, "dist-tags.latest", "--json"]).pipe( Effect.catch(() => diff --git a/packages/opencode/test/npm.test.ts b/packages/opencode/test/npm.test.ts index b7680bb70..b27d668c8 100644 --- a/packages/opencode/test/npm.test.ts +++ b/packages/opencode/test/npm.test.ts @@ -103,7 +103,9 @@ describe("Npm.outdated", () => { return "" }) - const result = await Effect.runPromise(Npm.Service.use((svc) => svc.outdated("example", "1.0.0")).pipe(Effect.provide(layer))) + const result = await Effect.runPromise( + Npm.Service.use((svc) => svc.outdated("example", "1.0.0")).pipe(Effect.provide(layer)), + ) expect(result).toBe(true) expect(calls).toContainEqual(["npm", "view", "example", "dist-tags.latest", "--json"]) @@ -130,7 +132,9 @@ describe("Npm.outdated", () => { return "" }) - const result = await Effect.runPromise(Npm.Service.use((svc) => svc.outdated("example", "1.0.0")).pipe(Effect.provide(layer))) + const result = await Effect.runPromise( + Npm.Service.use((svc) => svc.outdated("example", "1.0.0")).pipe(Effect.provide(layer)), + ) expect(result).toBe(true) expect(calls).toContainEqual(["npm", "view", "example", "dist-tags.latest", "--json"]) |
