rsnext/packages/next/build/webpack/loaders/next-flight-client-entry-loader.ts
Shu Ding b122178ead
Decouple entries for server components and client components (#36860)
* (wip)

* dev mode

* build mode

* update comment

* fix tests

* fix _N_SSP and _N_SSG exports

* fix missing variables

* fix api route bug

* fix compiler stats

* fix lint errors

* add extra cache group for edge server

* fix test

* fix test

* fix views route meta and entries

* fix linter error

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-05-13 19:48:53 +02:00

27 lines
722 B
TypeScript

export default async function transformSource(this: any): Promise<string> {
let { modules, runtime, ssr } = this.getOptions()
if (!Array.isArray(modules)) {
modules = modules ? [modules] : []
}
return (
modules
.map(
(request: string) => `import(/* webpackMode: "eager" */ '${request}')`
)
.join(';') +
`
export const __next_rsc__ = {
server: false,
__webpack_require__
};
export default function RSC() {};
` +
// Currently for the Edge runtime, we treat all RSC pages as SSR pages.
(runtime === 'edge'
? 'export const __N_SSP = true;'
: ssr
? `export const __N_SSP = true;`
: `export const __N_SSG = true;`)
)
}