Unified · Split
| @@ -58,6 +58,7 @@ export type ExecutionEngine = { · 57 unmodified lines | |||
| 58 | * Wrap a Promise-style executor into the Effect shape the engine consumes. | 58 | * Wrap a Promise-style executor into the Effect shape the engine consumes. |
| 59 | */ | 59 | */ |
| 60 | const fromPromise = <A>(try_: () => Promise<A>): Effect.Effect<A> => | 60 | const fromPromise = <A>(try_: () => Promise<A>): Effect.Effect<A> => |
| 61 | // oxlint-disable-next-line executor/no-effect-escape-hatch -- boundary: Promise executor facade has already erased the SDK typed error channel | ||
| 61 | Effect.tryPromise({ try: try_, catch: (cause) => cause }).pipe(Effect.orDie); | 62 | Effect.tryPromise({ try: try_, catch: (cause) => cause }).pipe(Effect.orDie); |
| 62 | 63 | ||
| 63 | type EffectInvokeOptions = Parameters<EffectExecutor["tools"]["invoke"]>[2]; | 64 | type EffectInvokeOptions = Parameters<EffectExecutor["tools"]["invoke"]>[2]; |
| @@ -144,6 +145,7 @@ export const toPromiseExecutionEngine = <E extends Cause.YieldableError>( · 80 unmodified lines | |||
| 144 | Effect.runPromise( | 145 | Effect.runPromise( |
| 145 | engine.execute(code, { | 146 | engine.execute(code, { |
| 146 | onElicitation: (ctx) => | 147 | onElicitation: (ctx) => |
| 148 | // oxlint-disable-next-line executor/no-effect-escape-hatch -- boundary: host-provided Promise elicitation callback is outside the Effect error model | ||
| 147 | Effect.tryPromise(() => options.onElicitation(ctx)).pipe(Effect.orDie), | 149 | Effect.tryPromise(() => options.onElicitation(ctx)).pipe(Effect.orDie), |
| 148 | }), | 150 | }), |
| 149 | ), | 151 | ), |
| @@ -285,6 +285,7 @@ export function ExecutorPluginsProvider( · 284 unmodified lines | |||
| 285 | const usePluginsCtx = (hookName: string): ExecutorPluginsContextValue => { | 285 | const usePluginsCtx = (hookName: string): ExecutorPluginsContextValue => { |
| 286 | const ctx = useContext(ExecutorPluginsContext); | 286 | const ctx = useContext(ExecutorPluginsContext); |
| 287 | if (!ctx) { | 287 | if (!ctx) { |
| 288 | // oxlint-disable-next-line executor/no-try-catch-or-throw, executor/no-error-constructor -- boundary: React hook invariant | ||
| 288 | throw new Error( | 289 | throw new Error( |
| 289 | `${hookName} must be called inside an <ExecutorPluginsProvider>.`, | 290 | `${hookName} must be called inside an <ExecutorPluginsProvider>.`, |
| 290 | ); | 291 | ); |