diff --git a/src/node/entry.tsx b/src/node/entry.tsx index ce6b8d0..218323f 100644 --- a/src/node/entry.tsx +++ b/src/node/entry.tsx @@ -14,6 +14,7 @@ import type ServerConfig from '@services/server-config'; export interface IInitServerRequestOut> { appProps?: T; hasEarlyHints?: boolean; + shouldSkip?: boolean; } export interface IEntrypointOptions> { diff --git a/src/node/server.ts b/src/node/server.ts index 07025b7..b19272b 100644 --- a/src/node/server.ts +++ b/src/node/server.ts @@ -97,9 +97,13 @@ async function createServer(config: ServerConfig): Promise { prepareServer.loadEntrypoint(), prepareServer.loadHtml(req), ]); - const { appProps, hasEarlyHints } = (await onRequest?.(req, res)) ?? {}; + const { appProps, hasEarlyHints, shouldSkip } = (await onRequest?.(req, res)) ?? {}; const [header, footer] = clientHtml; + if (shouldSkip) { + return next(); + } + const context: IRequestContext = { req, res,