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