Skip to content

Commit

Permalink
refactor: prerenderPlugin
Browse files Browse the repository at this point in the history
  • Loading branch information
hi-ogawa committed Jul 5, 2024
1 parent 29e4f4d commit 9f14962
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 18 deletions.
27 changes: 18 additions & 9 deletions packages/react-server/src/features/prerender/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,28 +27,37 @@ type PrerenderEntry = {
data: string;
};

export function prerenderPlugin({
manager,
prerender,
}: {
export function prerenderPlugin(options: {
manager: PluginStateManager;
prerender: PrerenderFn;
prerender?: PrerenderFn;
}): Plugin[] {
return [
{
name: prerenderPlugin + ":build",
enforce: "post",
apply: () => manager.buildType === "ssr",
apply: () => !!options.prerender && options.manager.buildType === "ssr",
config: () => {
return {
build: {
rollupOptions: {
input: {
__entry_ssr: "@hiogawa/react-server/entry/ssr",
},
},
},
};
},
writeBundle: {
sequential: true,
handler() {
return processPrerender(prerender);
tinyassert(options.prerender);
return processPrerender(options.prerender);
},
},
},
{
name: prerenderPlugin + ":preview",
apply: (_config, env) => !!env.isPreview,
apply: (_config, env) => !!options.prerender && !!env.isPreview,
configurePreviewServer(server) {
const outDir = server.config.build.outDir;
server.middlewares.use((req, _res, next) => {
Expand Down Expand Up @@ -149,7 +158,7 @@ export function pprPlugin(options: {
build: {
rollupOptions: {
input: {
// create a separate entry to replace content during writeBundle
__entry_ssr: "@hiogawa/react-server/entry/ssr",
__ppr_manifest: "virtual:ppr-manifest",
},
},
Expand Down
10 changes: 1 addition & 9 deletions packages/react-server/src/plugin/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -296,12 +296,6 @@ export function vitePluginReactServer(options?: {
outDir: env.isSsrBuild ? "dist/server" : "dist/client",
rollupOptions: env.isSsrBuild
? {
input:
options?.prerender || options?.ppr
? {
__entry_ssr: "@hiogawa/react-server/entry/ssr",
}
: undefined,
output: OUTPUT_SERVER_JS_EXT,
}
: {
Expand Down Expand Up @@ -427,9 +421,7 @@ export function vitePluginReactServer(options?: {
...vitePluginClientUseClient({ manager }),
...vitePluginServerAssets({ manager, entryBrowser, entryServer }),
...routeManifestPluginClient({ manager }),
...(options?.prerender
? prerenderPlugin({ manager, prerender: options.prerender })
: []),
...prerenderPlugin({ manager, prerender: options?.prerender }),
...pprPlugin({ manager, ppr: options?.ppr }),
validateImportPlugin({
"client-only": true,
Expand Down

0 comments on commit 9f14962

Please sign in to comment.