---
changelog:
  category: Release
  version: 1.8.8
date: '2025-09-11T12:03:51Z'
seo:
  description: >-
    oRPC provides a utility function consumeEventIterator to consume an event
    iterator with lifecycle callbacks. This prevents structuredClone from
    failing on…
title: v1.8.8
type: changelog
---
### `consumeEventIterator` utility [docs](https://orpc.dinwwwh.com/docs/client/event-iterator#using-consumeeventiterator)

oRPC provides a utility function `consumeEventIterator` to consume an event iterator with lifecycle callbacks.

```ts
import { consumeEventIterator } from '@orpc/client'

const cancel = consumeEventIterator(client.streaming(), {
  onEvent: (event) => {
    console.log(event.message)
  },
  onError: (error) => {
    console.error(error)
  },
  onSuccess: (value) => {
    console.log(value)
  },
  onFinish: (state) => {
    console.log(state)
  },
})

setTimeout(async () => {
  // Stop the stream after 1 second
  await cancel()
}, 1000)
```

### optimize `withEventMeta` to avoid unnecessary proxies event iterator data

This prevents `structuredClone` from failing on proxy event iterator data, which the [AI SDK](https://ai-sdk.dev/)depends on.

```ts
const { messages, sendMessage, status } = useChat({
  transport: {
    async sendMessages(options) {
      return eventIteratorToStream(await client.chat({
        chatId: options.chatId,
        messages: options.messages,
      }, { signal: options.abortSignal }))
    },
    reconnectToStream(options) {
      throw new Error('Unsupported')
    },
  },
})
```

---

> [!NOTE]
> If you find oRPC valuable and would like to support its development, you can do so [here](https://github.com/sponsors/dinwwwh).

### &nbsp;&nbsp;&nbsp;🚀 Features

- **client**: ConsumeEventIterator utility &nbsp;-&nbsp; by @dinwwwh in https://github.com/middleapi/orpc/issues/976 [<samp>(965aa)</samp>](https://github.com/middleapi/orpc/commit/965aae5f)

### &nbsp;&nbsp;&nbsp;🐞 Bug Fixes

- **standard-server**:
  - Throw error for waiting operation if event iterator cancelled &nbsp;-&nbsp; by @dinwwwh in https://github.com/middleapi/orpc/issues/974 [<samp>(06aad)</samp>](https://github.com/middleapi/orpc/commit/06aad3a0)
  - Optimize withEventMeta to avoid unnecessary proxies event iterator data &nbsp;-&nbsp; by @dinwwwh in https://github.com/middleapi/orpc/issues/979 [<samp>(cedbd)</samp>](https://github.com/middleapi/orpc/commit/cedbd4c5)

##### &nbsp;&nbsp;&nbsp;&nbsp;[View changes on GitHub](https://github.com/middleapi/orpc/compare/v1.8.7...v1.8.8)
