mirror of
https://github.com/anomalyco/opencode.git
synced 2026-08-15 07:48:24 -04:00
15 lines
509 B
TypeScript
15 lines
509 B
TypeScript
import type { Effect, Scope } from "effect"
|
|
|
|
export interface Registration {
|
|
readonly dispose: Effect.Effect<void>
|
|
}
|
|
|
|
export type Hooks<Spec, Failures extends Record<keyof Spec, unknown> = Record<keyof Spec, never>> = <
|
|
Name extends keyof Spec,
|
|
>(
|
|
name: Name,
|
|
callback: (input: Spec[Name]) => Effect.Effect<void, Failures[Name]>,
|
|
) => Effect.Effect<Registration, never, Scope.Scope>
|
|
|
|
export type Transform<Input> = (callback: (input: Input) => void) => Effect.Effect<Registration, never, Scope.Scope>
|