From a0b2c4b5e815b09c8c699cab794d6e09bed85f3c Mon Sep 17 00:00:00 2001 From: Jiachi Liu Date: Fri, 21 Jan 2022 16:27:45 +0100 Subject: [PATCH] Simplify getMiddlewareInfo calls --- packages/next/server/base-server.ts | 30 ++++++--------------------- packages/next/server/next-server.ts | 32 +++++++++++++++++------------ 2 files changed, 25 insertions(+), 37 deletions(-) diff --git a/packages/next/server/base-server.ts b/packages/next/server/base-server.ts index e2280e87f4b6c..5117fa5a91ef1 100644 --- a/packages/next/server/base-server.ts +++ b/packages/next/server/base-server.ts @@ -26,7 +26,6 @@ import { parse as parseQs, stringify as stringifyQs } from 'querystring' import { format as formatUrl, parse as parseUrl } from 'url' import { getRedirectStatus, modifyRouteRegex } from '../lib/load-custom-routes' import { - CLIENT_PUBLIC_FILES_PATH, PRERENDER_MANIFEST, ROUTES_MANIFEST, SERVERLESS_DIRECTORY, @@ -139,9 +138,7 @@ export default abstract class Server { protected nextConfig: NextConfigComplete protected distDir: string protected pagesDir?: string - protected publicDir: string protected hasStaticDir: boolean - protected serverBuildDir: string protected pagesManifest?: PagesManifest protected buildId: string protected minimalMode: boolean @@ -204,12 +201,11 @@ export default abstract class Server { query?: NextParsedUrlQuery, params?: Params | null ): Promise - protected abstract getMiddlewareInfo(params: { - dev?: boolean - distDir: string - page: string - serverless: boolean - }): { name: string; paths: string[]; env: string[] } + protected abstract getMiddlewareInfo(page: string): { + name: string + paths: string[] + env: string[] + } protected abstract getPagePath(pathname: string, locales?: string[]): string protected abstract getFontManifest(): FontManifest | undefined protected abstract getMiddlewareManifest(): MiddlewareManifest | undefined @@ -294,9 +290,7 @@ export default abstract class Server { this.nextConfig = conf as NextConfigComplete this.hostname = hostname this.port = port - this.distDir = join(this.dir, this.nextConfig.distDir) - this.publicDir = join(this.dir, CLIENT_PUBLIC_FILES_PATH) this.hasStaticDir = !minimalMode && this.getHasStaticDir() // Only serverRuntimeConfig needs the default @@ -351,11 +345,6 @@ export default abstract class Server { publicRuntimeConfig, }) - this.serverBuildDir = join( - this.distDir, - this._isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY - ) - this.pagesManifest = this.getPagesManifest() this.middlewareManifest = this.getMiddlewareManifest() @@ -659,14 +648,7 @@ export default abstract class Server { _isSSR?: boolean ): Promise { try { - return ( - this.getMiddlewareInfo({ - dev: this.renderOpts.dev, - distDir: this.distDir, - page: pathname, - serverless: this._isLikeServerless, - }).paths.length > 0 - ) + return this.getMiddlewareInfo(pathname).paths.length > 0 } catch (_) {} return false diff --git a/packages/next/server/next-server.ts b/packages/next/server/next-server.ts index 4bcc035503841..b052f7833b26d 100644 --- a/packages/next/server/next-server.ts +++ b/packages/next/server/next-server.ts @@ -24,6 +24,8 @@ import { MIDDLEWARE_MANIFEST, CLIENT_STATIC_FILES_PATH, CLIENT_STATIC_FILES_RUNTIME, + CLIENT_PUBLIC_FILES_PATH, + SERVERLESS_DIRECTORY, } from '../shared/lib/constants' import { PagesManifest } from '../build/webpack/plugins/pages-manifest-plugin' import { recursiveReadDirSync } from './lib/recursive-readdir-sync' @@ -84,6 +86,9 @@ export interface NodeRequestHandler { } export default class NextNodeServer extends BaseServer { + protected publicDir: string + protected serverBuildDir: string + constructor(options: Options) { super(options) /** @@ -101,6 +106,12 @@ export default class NextNodeServer extends BaseServer { if (this.renderOpts.optimizeCss) { process.env.__NEXT_OPTIMIZE_CSS = JSON.stringify(true) } + + this.publicDir = join(this.dir, CLIENT_PUBLIC_FILES_PATH) + this.serverBuildDir = join( + this.distDir, + this._isLikeServerless ? SERVERLESS_DIRECTORY : SERVER_DIRECTORY + ) } private compression = @@ -759,13 +770,13 @@ export default class NextNodeServer extends BaseServer { return filesystemUrls.has(resolved) } - protected getMiddlewareInfo(params: { - dev?: boolean - distDir: string - page: string - serverless: boolean - }) { - return getMiddlewareInfo(params) + protected getMiddlewareInfo(page: string) { + return getMiddlewareInfo({ + dev: this.renderOpts.dev, + page, + distDir: this.distDir, + serverless: this._isLikeServerless, + }) } protected getMiddlewareManifest(): MiddlewareManifest | undefined { @@ -1010,12 +1021,7 @@ export default class NextNodeServer extends BaseServer { await this.ensureMiddleware(middleware.page, middleware.ssr) - const middlewareInfo = this.getMiddlewareInfo({ - dev: this.renderOpts.dev, - distDir: this.distDir, - page: middleware.page, - serverless: this._isLikeServerless, - }) + const middlewareInfo = this.getMiddlewareInfo(middleware.page) result = await run({ name: middlewareInfo.name,