From 91922c44eb6e0a835d32c0ee7eccf183c6c53e35 Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Mon, 4 Sep 2023 11:40:40 +0200 Subject: [PATCH 1/2] Add serverError action to list of HMR events (#54964) Adds `serverError` to the list of HMR actions, missed this in the earlier PRs as it wasn't using `hotReloader.send`. Also ensures on-demand-entry-handler reuses the hotReloader.send method. --- packages/next/src/client/page-bootstrap.ts | 2 +- packages/next/src/server/dev/hot-reloader-types.ts | 7 +++++++ .../next/src/server/dev/hot-reloader-webpack.ts | 1 + .../next/src/server/dev/on-demand-entry-handler.ts | 14 ++++++++------ 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/packages/next/src/client/page-bootstrap.ts b/packages/next/src/client/page-bootstrap.ts index fd209eaf8a11..43a44d19ba81 100644 --- a/packages/next/src/client/page-bootstrap.ts +++ b/packages/next/src/client/page-bootstrap.ts @@ -17,7 +17,7 @@ export function pageBootrap(assetPrefix: string) { let buildIndicatorHandler: (obj: Record) => void = () => {} function devPagesHmrListener(payload: any) { - if (payload.action === 'serverError' && payload.errorJSON) { + if (payload.action === 'serverError') { const { stack, message } = JSON.parse(payload.errorJSON) const error = new Error(message) error.stack = stack diff --git a/packages/next/src/server/dev/hot-reloader-types.ts b/packages/next/src/server/dev/hot-reloader-types.ts index 5f9f3ae3eda3..18f27a50c456 100644 --- a/packages/next/src/server/dev/hot-reloader-types.ts +++ b/packages/next/src/server/dev/hot-reloader-types.ts @@ -18,6 +18,12 @@ export const enum HMR_ACTIONS_SENT_TO_BROWSER { PONG = 'pong', DEV_PAGES_MANIFEST_UPDATE = 'devPagesManifestUpdate', TURBOPACK_MESSAGE = 'turbopack-message', + SERVER_ERROR = 'serverError', +} + +interface ServerErrorAction { + action: HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ERROR + errorJSON: string } interface TurboPackMessageAction { @@ -96,6 +102,7 @@ export type HMR_ACTION_TYPES = | MiddlewareChangesAction | ServerOnlyChangesAction | DevPagesManifestUpdateAction + | ServerErrorAction export interface NextJsHotReloaderInterface { activeWebpackConfigs?: Array>> diff --git a/packages/next/src/server/dev/hot-reloader-webpack.ts b/packages/next/src/server/dev/hot-reloader-webpack.ts index df536185baed..bc413bc153b1 100644 --- a/packages/next/src/server/dev/hot-reloader-webpack.ts +++ b/packages/next/src/server/dev/hot-reloader-webpack.ts @@ -1385,6 +1385,7 @@ export default class HotReloader implements NextJsHotReloaderInterface { }) this.onDemandEntries = onDemandEntryHandler({ + hotReloader: this, multiCompiler: this.multiCompiler, pagesDir: this.pagesDir, appDir: this.appDir, diff --git a/packages/next/src/server/dev/on-demand-entry-handler.ts b/packages/next/src/server/dev/on-demand-entry-handler.ts index ce32c66e4c73..da7372ac73ae 100644 --- a/packages/next/src/server/dev/on-demand-entry-handler.ts +++ b/packages/next/src/server/dev/on-demand-entry-handler.ts @@ -35,6 +35,8 @@ import { } from '../../shared/lib/constants' import { RouteMatch } from '../future/route-matches/route-match' import { isAppPageRouteMatch } from '../future/route-matches/app-page-route-match' +import { HMR_ACTIONS_SENT_TO_BROWSER } from './hot-reloader-types' +import HotReloader from './hot-reloader-webpack' const debug = origDebug('next:on-demand-entry-handler') @@ -498,6 +500,7 @@ async function findRoutePathData( } export function onDemandEntryHandler({ + hotReloader, maxInactiveAge, multiCompiler, nextConfig, @@ -506,6 +509,7 @@ export function onDemandEntryHandler({ rootDir, appDir, }: { + hotReloader: HotReloader maxInactiveAge: number multiCompiler: webpack.MultiCompiler nextConfig: NextConfigComplete @@ -947,12 +951,10 @@ export function onDemandEntryHandler({ // New error occurred: buffered error is flushed and new error occurred if (!bufferedHmrServerError && error) { - client.send( - JSON.stringify({ - action: 'serverError', - errorJSON: stringifyError(error), - }) - ) + hotReloader.send({ + action: HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ERROR, + errorJSON: stringifyError(error), + }) bufferedHmrServerError = null } From fd91ac4f45e865b288605afdae890ac6fa762bcf Mon Sep 17 00:00:00 2001 From: Jiachi Liu Date: Mon, 4 Sep 2023 13:09:12 +0200 Subject: [PATCH 2/2] Update codeowners (#54966) add huozhi to `next-swc` package scope --- .github/CODEOWNERS | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ba611c1430e2..8bd62490a460 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -30,8 +30,8 @@ /packages/next/src/build/ @timneutkens @ijjk @shuding @huozhi @vercel/web-tooling /packages/next/src/telemetry/ @timneutkens @ijjk @shuding @padmaia -/packages/next-swc/ @timneutkens @ijjk @shuding @vercel/web-tooling -Cargo.toml @timneutkens @ijjk @shuding @vercel/web-tooling -Cargo.lock @timneutkens @ijjk @shuding @vercel/web-tooling -/.cargo/config.toml @timneutkens @ijjk @shuding @vercel/web-tooling -/.config/nextest.toml @timneutkens @ijjk @shuding @vercel/web-tooling +/packages/next-swc/ @timneutkens @ijjk @shuding @huozhi @vercel/web-tooling +Cargo.toml @timneutkens @ijjk @shuding @huozhi @vercel/web-tooling +Cargo.lock @timneutkens @ijjk @shuding @huozhi @vercel/web-tooling +/.cargo/config.toml @timneutkens @ijjk @shuding @huozhi @vercel/web-tooling +/.config/nextest.toml @timneutkens @ijjk @shuding @huozhi @vercel/web-tooling