Skip to content

Commit 812db57

Browse files
committed
Cleaner types
1 parent 1daf7eb commit 812db57

File tree

4 files changed

+46
-6
lines changed

4 files changed

+46
-6
lines changed

packages/next/src/client/app-index.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ import '../next-devtools/userspace/app/app-dev-overlay-setup'
55

66
import ReactDOMClient from 'react-dom/client'
77
import React, { use } from 'react'
8+
// TODO: Explicitly import from client.browser
89
// eslint-disable-next-line import/no-extraneous-dependencies
9-
import { createFromReadableStream } from 'react-server-dom-webpack/client'
10+
import { createFromReadableStream as createFromReadableStreamBrowser } from 'react-server-dom-webpack/client'
1011
import { HeadManagerContext } from '../shared/lib/head-manager-context.shared-runtime'
1112
import { onRecoverableError } from './react-client-callbacks/on-recoverable-error'
1213
import {
@@ -28,6 +29,9 @@ import { isBot } from '../shared/lib/router/utils/is-bot'
2829

2930
/// <reference types="react-dom/experimental" />
3031

32+
const createFromReadableStream =
33+
createFromReadableStreamBrowser as (typeof import('react-server-dom-webpack/client.browser'))['createFromReadableStream']
34+
3135
const appElement: HTMLElement | Document = document
3236

3337
const encoder = new TextEncoder()

packages/next/src/client/components/router-reducer/fetch-server-response.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
'use client'
22

3-
// @ts-ignore
3+
// TODO: Explicitly import from client.browser
44
// eslint-disable-next-line import/no-extraneous-dependencies
5-
import { createFromReadableStream } from 'react-server-dom-webpack/client'
5+
import { createFromReadableStream as createFromReadableStreamBrowser } from 'react-server-dom-webpack/client'
66

77
import type {
88
FlightRouterState,
@@ -32,6 +32,9 @@ import {
3232
import { getAppBuildId } from '../../app-build-id'
3333
import { setCacheBustingSearchParam } from './set-cache-busting-search-param'
3434

35+
const createFromReadableStream =
36+
createFromReadableStreamBrowser as (typeof import('react-server-dom-webpack/client.browser'))['createFromReadableStream']
37+
3538
export interface FetchServerResponseOptions {
3639
readonly flightRouterState: FlightRouterState
3740
readonly nextUrl: string | null

packages/next/src/client/components/router-reducer/reducers/server-action-reducer.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ import {
1313
RSC_CONTENT_TYPE_HEADER,
1414
} from '../../app-router-headers'
1515

16-
// Import explicitly from .browser
16+
// TODO: Explicitly import from client.browser
1717
// eslint-disable-next-line import/no-extraneous-dependencies
1818
import {
19-
createFromFetch,
19+
createFromFetch as createFromFetchBrowser,
2020
createTemporaryReferenceSet,
2121
encodeReply,
2222
} from 'react-server-dom-webpack/client'
@@ -56,6 +56,9 @@ import {
5656
} from '../../../../shared/lib/server-reference-info'
5757
import { revalidateEntireCache } from '../../segment-cache'
5858

59+
const createFromFetch =
60+
createFromFetchBrowser as (typeof import('react-server-dom-webpack/client.browser'))['createFromFetch']
61+
5962
type FetchServerActionResult = {
6063
redirectLocation: URL | undefined
6164
redirectType: RedirectType | undefined

packages/next/types/$$compiled.internal.d.ts

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,36 @@ declare module 'react-server-dom-webpack/client' {
8686
): Promise<string | FormData>
8787
}
8888

89+
declare module 'react-server-dom-webpack/client.browser' {
90+
import {
91+
createTemporaryReferenceSet,
92+
encodeReply,
93+
type CallServerCallback,
94+
type FindSourceMapURLCallback,
95+
type TemporaryReferenceSet,
96+
} from 'react-server-dom-webpack/client.edge'
97+
98+
export { createTemporaryReferenceSet, encodeReply }
99+
100+
export interface Options {
101+
callServer?: CallServerCallback
102+
environmentName?: string
103+
findSourceMapURL?: FindSourceMapURLCallback
104+
replayConsoleLogs?: boolean
105+
temporaryReferences?: TemporaryReferenceSet
106+
}
107+
108+
export function createFromFetch<T>(
109+
promiseForResponse: Promise<Response>,
110+
options?: Options
111+
): Promise<T>
112+
113+
export function createFromReadableStream<T>(
114+
stream: ReadableStream,
115+
options?: Options
116+
): Promise<T>
117+
}
118+
89119
declare module 'react-server-dom-webpack/server.edge' {
90120
export type ImportManifestEntry = {
91121
id: string | number
@@ -246,7 +276,7 @@ declare module 'react-server-dom-webpack/static' {
246276
declare module 'react-server-dom-webpack/client.edge' {
247277
export interface Options {
248278
callServer?: CallServerCallback
249-
serverConsumerManifest?: ServerConsumerManifest
279+
serverConsumerManifest: ServerConsumerManifest
250280
nonce?: string
251281
encodeFormAction?: EncodeFormActionCallback
252282
temporaryReferences?: TemporaryReferenceSet

0 commit comments

Comments
 (0)