-
-
Notifications
You must be signed in to change notification settings - Fork 88
feat: toServerSentEventsResponse #177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
π WalkthroughWalkthroughThis PR renames the SSE helper from Changes
Estimated code review effortπ― 3 (Moderate) | β±οΈ ~45 minutes Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touchesβ Passed checks (3 passed)
β¨ Finishing touches
π§ͺ Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
View your CI Pipeline Execution β for commit eb41d52
βοΈ Nx Cloud last updated this comment at |
@tanstack/ai
@tanstack/ai-anthropic
@tanstack/ai-client
@tanstack/ai-devtools-core
@tanstack/ai-gemini
@tanstack/ai-ollama
@tanstack/ai-openai
@tanstack/ai-react
@tanstack/ai-react-ui
@tanstack/ai-solid
@tanstack/ai-solid-ui
@tanstack/ai-svelte
@tanstack/ai-vue
@tanstack/ai-vue-ui
@tanstack/react-ai-devtools
@tanstack/solid-ai-devtools
commit: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
π Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
π Files selected for processing (29)
docs/adapters/anthropic.mddocs/adapters/gemini.mddocs/adapters/ollama.mddocs/adapters/openai.mddocs/api/ai.mddocs/config.jsondocs/getting-started/quick-start.mddocs/guides/agentic-cycle.mddocs/guides/connection-adapters.mddocs/guides/runtime-adapter-switching.mddocs/guides/server-tools.mddocs/guides/streaming.mddocs/guides/tool-approval.mddocs/guides/tool-architecture.mddocs/guides/tools.mddocs/protocol/sse-protocol.mddocs/reference/functions/toServerSentEventsResponse.mddocs/reference/functions/toStreamResponse.mddocs/reference/index.mdexamples/README.mdexamples/ts-react-chat/src/routes/api.tanchat.tsexamples/ts-solid-chat/src/routes/api.chat.tsexamples/ts-svelte-chat/src/routes/api/chat/+server.tspackages/typescript/ai-solid/README.mdpackages/typescript/ai/src/index.tspackages/typescript/ai/src/stream-to-response.tspackages/typescript/ai/tests/stream-to-response.test.tstesting/panel/src/routes/api.addon-chat.tstesting/panel/src/routes/api.chat.ts
π€ Files with no reviewable changes (1)
- docs/reference/functions/toStreamResponse.md
π§° Additional context used
π Path-based instructions (5)
**/*.{ts,tsx}
π CodeRabbit inference engine (CLAUDE.md)
**/*.{ts,tsx}: Use tree-shakeable adapter architecture for provider implementations - export specialized adapters (text, embedding, summarize, image) as separate imports from/adapterssubpath rather than monolithic adapters
Use Zod for runtime schema validation and type inference, particularly for tool input/output definitions withtoolDefinition()and Zod schema inference
Implement isomorphic tool system usingtoolDefinition()with.server()and.client()implementations for dual-environment execution
Use type-safe per-model configuration with provider options typed based on selected model to ensure compile-time safety
Implement stream processing with StreamProcessor for handling chunked responses and support partial JSON parsing for streaming AI responses
Files:
examples/ts-solid-chat/src/routes/api.chat.tspackages/typescript/ai/tests/stream-to-response.test.tsexamples/ts-react-chat/src/routes/api.tanchat.tsexamples/ts-svelte-chat/src/routes/api/chat/+server.tstesting/panel/src/routes/api.addon-chat.tspackages/typescript/ai/src/stream-to-response.tstesting/panel/src/routes/api.chat.tspackages/typescript/ai/src/index.ts
**/*.{ts,tsx,js,jsx}
π CodeRabbit inference engine (CLAUDE.md)
Use camelCase for function and variable names throughout the codebase
Files:
examples/ts-solid-chat/src/routes/api.chat.tspackages/typescript/ai/tests/stream-to-response.test.tsexamples/ts-react-chat/src/routes/api.tanchat.tsexamples/ts-svelte-chat/src/routes/api/chat/+server.tstesting/panel/src/routes/api.addon-chat.tspackages/typescript/ai/src/stream-to-response.tstesting/panel/src/routes/api.chat.tspackages/typescript/ai/src/index.ts
examples/**
π CodeRabbit inference engine (CLAUDE.md)
Examples are not built by Nx and should be run independently from their directories with
pnpm devorpnpm install && pnpm dev
Files:
examples/ts-solid-chat/src/routes/api.chat.tsexamples/README.mdexamples/ts-react-chat/src/routes/api.tanchat.tsexamples/ts-svelte-chat/src/routes/api/chat/+server.ts
**/*.test.ts
π CodeRabbit inference engine (CLAUDE.md)
Write unit tests using Vitest alongside source files with
.test.tsnaming convention
Files:
packages/typescript/ai/tests/stream-to-response.test.ts
packages/typescript/*/src/index.ts
π CodeRabbit inference engine (CLAUDE.md)
Export tree-shakeable adapters with clear subpath exports in package.json (e.g.,
@tanstack/ai/adapters,@tanstack/ai-openai/adapters) to minimize bundle size
Files:
packages/typescript/ai/src/index.ts
π§ Learnings (9)
π Common learnings
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to **/*.{ts,tsx} : Implement stream processing with StreamProcessor for handling chunked responses and support partial JSON parsing for streaming AI responses
π Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to **/*.{ts,tsx} : Implement stream processing with StreamProcessor for handling chunked responses and support partial JSON parsing for streaming AI responses
Applied to files:
docs/reference/index.mddocs/getting-started/quick-start.mddocs/guides/agentic-cycle.mddocs/adapters/ollama.mdexamples/ts-solid-chat/src/routes/api.chat.tsdocs/guides/tools.mdexamples/README.mddocs/api/ai.mdpackages/typescript/ai-solid/README.mddocs/guides/runtime-adapter-switching.mddocs/protocol/sse-protocol.mddocs/reference/functions/toServerSentEventsResponse.mddocs/guides/server-tools.mddocs/adapters/gemini.mddocs/adapters/openai.mdpackages/typescript/ai/tests/stream-to-response.test.tsexamples/ts-react-chat/src/routes/api.tanchat.tsdocs/guides/tool-architecture.mddocs/guides/streaming.mdexamples/ts-svelte-chat/src/routes/api/chat/+server.tsdocs/guides/connection-adapters.mddocs/adapters/anthropic.mdtesting/panel/src/routes/api.addon-chat.tspackages/typescript/ai/src/stream-to-response.tsdocs/guides/tool-approval.mdtesting/panel/src/routes/api.chat.tspackages/typescript/ai/src/index.ts
π Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to packages/typescript/*/src/index.ts : Export tree-shakeable adapters with clear subpath exports in package.json (e.g., `tanstack/ai/adapters`, `tanstack/ai-openai/adapters`) to minimize bundle size
Applied to files:
docs/getting-started/quick-start.mdexamples/ts-solid-chat/src/routes/api.chat.tsexamples/README.mddocs/guides/runtime-adapter-switching.mddocs/adapters/openai.mdexamples/ts-react-chat/src/routes/api.tanchat.tsdocs/adapters/anthropic.mdpackages/typescript/ai/src/index.ts
π Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Implement framework integrations using the headless `tanstack/ai-client` for state management with framework-specific hooks (useChat) on top
Applied to files:
docs/getting-started/quick-start.mddocs/adapters/ollama.mdexamples/ts-solid-chat/src/routes/api.chat.tsdocs/guides/tools.mdexamples/README.mdpackages/typescript/ai-solid/README.mddocs/guides/runtime-adapter-switching.mddocs/protocol/sse-protocol.mddocs/guides/server-tools.mddocs/adapters/gemini.mddocs/adapters/openai.mdexamples/ts-react-chat/src/routes/api.tanchat.tsdocs/guides/tool-architecture.mdexamples/ts-svelte-chat/src/routes/api/chat/+server.tsdocs/adapters/anthropic.mdtesting/panel/src/routes/api.addon-chat.tstesting/panel/src/routes/api.chat.ts
π Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to .eslintrc* : Use ESLint with custom TanStack config for linting all TypeScript and JavaScript files
Applied to files:
docs/getting-started/quick-start.md
π Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to packages/typescript/*/src/adapters/*.ts : Create individual adapter implementations for each provider capability (text, embed, summarize, image) with separate exports to enable tree-shaking
Applied to files:
docs/guides/runtime-adapter-switching.mddocs/adapters/anthropic.md
π Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to **/*.{ts,tsx} : Use tree-shakeable adapter architecture for provider implementations - export specialized adapters (text, embedding, summarize, image) as separate imports from `/adapters` subpath rather than monolithic adapters
Applied to files:
docs/guides/runtime-adapter-switching.mddocs/adapters/anthropic.md
π Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to **/*.test.ts : Write unit tests using Vitest alongside source files with `.test.ts` naming convention
Applied to files:
packages/typescript/ai/tests/stream-to-response.test.ts
π Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to **/*.{ts,tsx} : Implement isomorphic tool system using `toolDefinition()` with `.server()` and `.client()` implementations for dual-environment execution
Applied to files:
docs/guides/tool-approval.mdpackages/typescript/ai/src/index.ts
𧬠Code graph analysis (7)
examples/ts-solid-chat/src/routes/api.chat.ts (2)
packages/typescript/ai/src/stream-to-response.ts (1)
toServerSentEventsResponse(123-137)packages/typescript/ai/src/index.ts (1)
toServerSentEventsResponse(58-58)
packages/typescript/ai/tests/stream-to-response.test.ts (2)
packages/typescript/ai/src/stream-to-response.ts (1)
toServerSentEventsResponse(123-137)packages/typescript/ai/src/index.ts (1)
toServerSentEventsResponse(58-58)
examples/ts-react-chat/src/routes/api.tanchat.ts (1)
packages/typescript/ai/src/stream-to-response.ts (1)
toServerSentEventsResponse(123-137)
examples/ts-svelte-chat/src/routes/api/chat/+server.ts (3)
packages/typescript/ai/src/stream-to-response.ts (1)
toServerSentEventsResponse(123-137)packages/typescript/ai/src/index.ts (1)
toServerSentEventsResponse(58-58)packages/typescript/ai-svelte/src/index.ts (1)
stream(13-13)
testing/panel/src/routes/api.addon-chat.ts (2)
packages/typescript/ai/src/stream-to-response.ts (1)
toServerSentEventsResponse(123-137)packages/typescript/ai/src/index.ts (1)
toServerSentEventsResponse(58-58)
packages/typescript/ai/src/stream-to-response.ts (2)
packages/typescript/ai/src/index.ts (4)
toServerSentEventsResponse(58-58)toServerSentEventsStream(57-57)toHttpResponse(60-60)toHttpStream(59-59)packages/typescript/ai/src/types.ts (1)
StreamChunk(740-748)
testing/panel/src/routes/api.chat.ts (2)
packages/typescript/ai/src/stream-to-response.ts (1)
toServerSentEventsResponse(123-137)packages/typescript/ai/src/index.ts (1)
toServerSentEventsResponse(58-58)
π Additional comments (31)
packages/typescript/ai-solid/README.md (1)
160-175: LGTM! Documentation updated consistently.All example code has been updated correctly to use
toServerSentEventsResponseinstead oftoStreamResponse. The import statements and function calls are consistent across all examples.Also applies to: 314-330, 355-388
packages/typescript/ai/src/stream-to-response.ts (2)
105-137: LGTM! SSE response helper correctly implemented.The
toServerSentEventsResponsefunction correctly:
- Wraps the stream with SSE formatting via
toServerSentEventsStream- Sets required SSE headers (
Content-Type: text/event-stream,Cache-Control: no-cache,Connection: keep-alive)- Supports AbortController for cancellation
- Allows header overrides through the init parameter
233-240: LGTM! HTTP stream response correctly implemented.The
toHttpResponsefunction correctly delegates totoHttpStreamand constructs a Response with the provided initialization options. The simpler pattern (spreading entireinit) is appropriate here since no default headers need to be set.docs/guides/connection-adapters.md (1)
14-14: LGTM! Documentation link updated correctly.The reference link has been updated to point to the new
toServerSentEventsResponse()function with the correct anchor. The text now mentions both helper functions appropriately.docs/guides/agentic-cycle.md (1)
131-131: LGTM! Example updated correctly.The agentic cycle example now uses
toServerSentEventsResponseinstead oftoStreamResponse, consistent with the API rename.docs/guides/tool-approval.md (1)
60-73: LGTM! Tool approval guide updated consistently.Both the import statement (line 60) and the function usage (line 73) have been updated correctly to use
toServerSentEventsResponse.docs/adapters/anthropic.md (1)
59-70: LGTM! Anthropic adapter documentation updated correctly.The chat completion example has been updated with the correct import (line 59) and usage (line 70) of
toServerSentEventsResponse.docs/reference/index.md (1)
149-149: LGTM! API reference index updated correctly.The function reference link has been updated from
toStreamResponsetotoServerSentEventsResponse, aligning with the API rename.docs/guides/server-tools.md (1)
144-157: LGTM! Server tools guide updated consistently.Both the import statement (line 144) and the function usage (line 157) have been updated correctly to use
toServerSentEventsResponse.docs/guides/streaming.md (1)
30-45: API documentation updates look good.The server-side streaming section correctly reflects the renamed API with consistent import and usage patterns. The example remains clear and functional.
docs/api/ai.md (1)
134-183: Comprehensive API documentation for toServerSentEventsResponse.The new function documentation clearly explains the SSE response formatting (data: prefix, double newlines, [DONE] marker) and provides proper parameter/return type documentation. The example is functional and concise.
docs/reference/functions/toServerSentEventsResponse.md (1)
1-46: Well-structured reference documentation for new API function.The reference page properly documents the function signature, behavior (SSE formatting), parameters, return type, and includes a practical example. The source file link (line 12) aids maintainability.
Verify that the source location reference (line 12:
stream-to-response.ts:123) points to the correct function definition and line number in the codebase.docs/adapters/ollama.md (1)
72-88: Ollama adapter example correctly updated.The chat completion example properly reflects the API rename and demonstrates typical server-side streaming pattern with Ollama. The example is concise and functional.
examples/README.md (1)
308-321: Examples README correctly shows updated TypeScript backend pattern.The SSE streaming backend example properly reflects the API rename. Showing comparable Python and PHP implementations provides good context for multi-language development.
docs/guides/tools.md (1)
172-197: Tools guide server-side example correctly updated.The server-side tool usage example properly reflects the API rename and clearly shows tool passing and response streaming. Pairing with client-side example (lines 200-240) provides complete pattern.
docs/guides/tool-architecture.md (1)
67-88: Tool architecture guide server example properly updated.The API route example correctly reflects the API rename and integrates well with the preceding flow diagram. The tool passing and streaming response pattern is clearly demonstrated.
docs/guides/runtime-adapter-switching.md (1)
15-101: Runtime adapter switching guide comprehensively updated.All example variations (simple approach, full example, image adapters, summarize adapters) correctly reflect the toServerSentEventsResponse API. The guide effectively demonstrates provider switching while showcasing the renamed function across different contexts.
docs/getting-started/quick-start.md (1)
26-26: LGTM! Documentation updated to reflect the new API.The import and usage of
toServerSentEventsResponsecorrectly replaces the previous API across both TanStack Start and Next.js examples. The function signature and behavior remain consistent.Also applies to: 59-59, 81-81, 109-109
docs/adapters/gemini.md (1)
59-59: LGTM! Adapter documentation correctly updated.The Gemini adapter example now uses
toServerSentEventsResponse, consistent with the API refactoring across the codebase.Also applies to: 70-70
docs/adapters/openai.md (1)
59-59: LGTM! Adapter documentation correctly updated.The OpenAI adapter example now uses
toServerSentEventsResponse, maintaining consistency with the API changes.Also applies to: 70-70
testing/panel/src/routes/api.addon-chat.ts (1)
2-2: LGTM! Simplified response handling with improved API.The migration from
toServerSentEventsStreamtotoServerSentEventsResponsesimplifies the code by encapsulating Response creation and SSE header setup. TheabortControlleris now properly passed via the init object.Also applies to: 70-70
testing/panel/src/routes/api.chat.ts (1)
8-8: LGTM! Response handling correctly updated.The migration to
toServerSentEventsResponseis properly implemented, simplifying the streaming response creation while maintaining the existing abort controller semantics.Also applies to: 234-234
packages/typescript/ai/src/index.ts (1)
56-61: LGTM! Public API surface correctly updated.The exports now reflect the new API:
toServerSentEventsResponsereplaces the previoustoStreamResponsetoHttpResponseis introduced as a new general HTTP streaming helperThis is a breaking change, but the PR description confirms a changeset was generated to properly communicate this to users.
packages/typescript/ai/tests/stream-to-response.test.ts (1)
4-4: LGTM! Test suite properly updated for the API rename.All test cases have been correctly updated to use
toServerSentEventsResponsewhile maintaining the same test coverage and expectations. The describe block and all call sites are consistent with the new API.Also applies to: 318-466
examples/ts-react-chat/src/routes/api.tanchat.ts (1)
6-6: LGTM! Example correctly updated to use the new API.The React chat example now uses
toServerSentEventsResponse, properly simplifying the response handling while maintaining abort controller support.Also applies to: 125-125
docs/config.json (1)
258-259: LGTM! Documentation reference updated correctly.The navigation config properly reflects the API rename from
toStreamResponsetotoServerSentEventsResponse, ensuring documentation links remain valid.docs/protocol/sse-protocol.md (1)
167-192: LGTM! Documentation accurately reflects the new API.The documentation correctly updates from
toStreamResponsetotoServerSentEventsResponseand accurately describes the simplified API that now returns a complete Response object with headers configured. The code examples demonstrate proper usage of the new signature.examples/ts-solid-chat/src/routes/api.chat.ts (2)
2-2: LGTM! Correct import for the new API.The import correctly switches to
toServerSentEventsResponse, which is the new unified function that returns a complete Response object.
74-74: LGTM! Proper usage of the new API.The migration correctly uses
toServerSentEventsResponse(stream, { abortController }), which simplifies the code by eliminating manual Response construction. The function now handles SSE headers internally and returns a ready-to-use Response object.examples/ts-svelte-chat/src/routes/api/chat/+server.ts (2)
5-5: LGTM! Import updated correctly.The import correctly uses
toServerSentEventsResponsefrom@tanstack/ai, consistent with the API migration across the codebase.
119-119: LGTM! Consistent API migration.The usage of
toServerSentEventsResponse(stream, { abortController })is correct and consistent with the migration pattern used in other examples (e.g.,examples/ts-solid-chat). The new API successfully simplifies response handling by encapsulating SSE headers and stream management.
AlemTuzlak
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should address what the AI suggested, other than that looks good
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
π§Ή Nitpick comments (1)
packages/typescript/ai/src/stream-to-response.ts (1)
245-252: DestructureabortControllerbefore spreadinginit.The function spreads
...init(line 250) into the Response constructor, butinitincludes the non-standardabortControllerproperty. While the Response constructor likely ignores unknown properties, this is inconsistent withtoServerSentEventsResponse(line 127), which explicitly destructuresabortControllerout before spreading.For consistency and cleaner API usage, destructure
abortControllerfirst:π Proposed refactor
export function toHttpResponse( stream: AsyncIterable<StreamChunk>, init?: ResponseInit & { abortController?: AbortController }, ): Response { - return new Response(toHttpStream(stream, init?.abortController), { - ...init, - }) + const { abortController, ...responseInit } = init ?? {} + return new Response(toHttpStream(stream, abortController), { + ...responseInit, + }) }
π Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
π Files selected for processing (1)
packages/typescript/ai/src/stream-to-response.ts
π§° Additional context used
π Path-based instructions (2)
**/*.{ts,tsx}
π CodeRabbit inference engine (CLAUDE.md)
**/*.{ts,tsx}: Use tree-shakeable adapter architecture for provider implementations - export specialized adapters (text, embedding, summarize, image) as separate imports from/adapterssubpath rather than monolithic adapters
Use Zod for runtime schema validation and type inference, particularly for tool input/output definitions withtoolDefinition()and Zod schema inference
Implement isomorphic tool system usingtoolDefinition()with.server()and.client()implementations for dual-environment execution
Use type-safe per-model configuration with provider options typed based on selected model to ensure compile-time safety
Implement stream processing with StreamProcessor for handling chunked responses and support partial JSON parsing for streaming AI responses
Files:
packages/typescript/ai/src/stream-to-response.ts
**/*.{ts,tsx,js,jsx}
π CodeRabbit inference engine (CLAUDE.md)
Use camelCase for function and variable names throughout the codebase
Files:
packages/typescript/ai/src/stream-to-response.ts
π§ Learnings (2)
π Common learnings
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to **/*.{ts,tsx} : Implement stream processing with StreamProcessor for handling chunked responses and support partial JSON parsing for streaming AI responses
π Learning: 2025-12-13T17:09:09.794Z
Learnt from: CR
Repo: TanStack/ai PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-13T17:09:09.794Z
Learning: Applies to **/*.{ts,tsx} : Implement stream processing with StreamProcessor for handling chunked responses and support partial JSON parsing for streaming AI responses
Applied to files:
packages/typescript/ai/src/stream-to-response.ts
β° Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Preview
- GitHub Check: Test
π Additional comments (1)
packages/typescript/ai/src/stream-to-response.ts (1)
123-149: LGTM! Header handling correctly addresses previous feedback.The implementation properly handles all
HeadersInittypes (Headers instance, string[][], plain object) by normalizing throughnew Headers(headers)before merging (lines 138-143). The destructuring pattern (line 127) cleanly separates the non-standardabortControllerfrom standardResponseInitproperties.
π― Changes
toServerSentEventsResponse wasn't a real replacement for toServerReponse. This one is, and it has stream versions for SSE and httpStream if you want to handle the Response yourself.
β Checklist
pnpm run test:pr.π Release Impact
Summary by CodeRabbit
Refactor
Documentation
Tests
βοΈ Tip: You can customize this high-level summary in your review settings.