Island AI

API Reference

useJsonStream

interface UseJsonStreamProps<T extends z.ZodObject> {
  schema: T
  defaultData?: ZodStreamDefaultData<T>
  onBeforeStart?: () => void
  onStop?: () => void
  onReceive?: (data: ZodStreamChunk<T>) => void
  onEnd?: (data: z.output<T>) => void
}
 
interface UseJsonStreamResult<T extends z.ZodObject> {
  data: ZodStreamValue<T>
  loading: boolean
  startStream: (options: StartStreamArgs) => Promise<void>
  stopStream: () => void
}

data and onReceive are progressive input views. onEnd is validated output.

consumeJsonStream

function consumeJsonStream<T extends z.ZodObject>(params: {
  stream: ReadableStream<Uint8Array>
  schema: T
  onReceive?: (data: ZodStreamChunk<T>) => void
}): Promise<{
  data: z.output<T>
  lastChunk: ZodStreamChunk<T>
}>

useStream

interface StartStreamArgs {
  url: string
  body?: object
  headers?: Record<string, string>
  method?: "GET" | "POST"
}

Non-2xx responses reject with StreamRequestError, which exposes status and statusText.

On this page