fix(provider): type model not found errors (#27334)
This commit is contained in:
17
packages/opencode/src/effect/promise.ts
Normal file
17
packages/opencode/src/effect/promise.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { Cause, Effect } from "effect"
|
||||
|
||||
export function refineRejection<A, E>(
|
||||
evaluate: (signal: AbortSignal) => PromiseLike<A>,
|
||||
refine: (cause: unknown) => E | undefined,
|
||||
) {
|
||||
return Effect.tryPromise(evaluate).pipe(
|
||||
Effect.catch((error) => {
|
||||
const cause = Cause.isUnknownError(error) ? error.cause : error
|
||||
const refined = refine(cause)
|
||||
if (refined !== undefined) return Effect.fail(refined)
|
||||
return Effect.die(cause)
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
export * as EffectPromise from "./promise"
|
||||
Reference in New Issue
Block a user