From 418003caea00c31c5678c1ec18d56ee55877e8c3 Mon Sep 17 00:00:00 2001
From: Tim Neutkens <tim@timneutkens.nl>
Date: Thu, 14 Sep 2023 15:05:52 +0200
Subject: [PATCH] Remove leftover worker code and types

---
 packages/next/src/server/lib/router-server.ts |  5 +-
 .../next/src/server/lib/server-ipc/index.ts   | 66 -------------------
 packages/next/src/server/lib/utils.ts         | 22 -------
 packages/next/src/server/lib/worker-utils.ts  | 42 ------------
 packages/next/src/server/server-utils.ts      |  5 +-
 5 files changed, 3 insertions(+), 137 deletions(-)

diff --git a/packages/next/src/server/lib/router-server.ts b/packages/next/src/server/lib/router-server.ts
index 7e24bb9bd5ce0..695f1779e7d4a 100644
--- a/packages/next/src/server/lib/router-server.ts
+++ b/packages/next/src/server/lib/router-server.ts
@@ -1,5 +1,4 @@
 import type { IncomingMessage } from 'http'
-import type { createWorker } from './server-ipc'
 
 // this must come first as it includes require hooks
 import type {
@@ -52,8 +51,8 @@ export type RenderWorker = Pick<
 >
 
 export interface RenderWorkers {
-  app?: Awaited<ReturnType<typeof createWorker>>
-  pages?: Awaited<ReturnType<typeof createWorker>>
+  app?: RenderWorker
+  pages?: RenderWorker
 }
 
 const devInstances: Record<
diff --git a/packages/next/src/server/lib/server-ipc/index.ts b/packages/next/src/server/lib/server-ipc/index.ts
index 0dba447ab3cae..cb3acbd1ccf25 100644
--- a/packages/next/src/server/lib/server-ipc/index.ts
+++ b/packages/next/src/server/lib/server-ipc/index.ts
@@ -1,14 +1,8 @@
 import type NextServer from '../../next-server'
-import type { NextConfigComplete } from '../../config-shared'
-import type { RenderWorker } from '../router-server'
-
-import { getNodeOptionsWithoutInspect } from '../utils'
 import { errorToJSON } from '../../render'
 import crypto from 'crypto'
 import isError from '../../../lib/is-error'
-import { genRenderExecArgv } from '../worker-utils'
 import { deserializeErr } from './request-utils'
-import type { Env } from '@next/env'
 
 // we can't use process.send as jest-worker relies on
 // it already and can cause unexpected message errors
@@ -82,63 +76,3 @@ export async function createIpcServer(
     ipcValidationKey,
   }
 }
-
-export const createWorker = async (
-  ipcPort: number,
-  ipcValidationKey: string,
-  isNodeDebugging: boolean | 'brk' | undefined,
-  type: 'pages' | 'app',
-  nextConfig: NextConfigComplete,
-  initialEnv: NodeJS.ProcessEnv | Env = process.env
-): Promise<RenderWorker> => {
-  const useServerActions = !!nextConfig.experimental.serverActions
-  const { Worker } =
-    require('next/dist/compiled/jest-worker') as typeof import('next/dist/compiled/jest-worker')
-
-  const worker = new Worker(require.resolve('../render-server'), {
-    numWorkers: 1,
-    // TODO: do we want to allow more than 8 OOM restarts?
-    maxRetries: 8,
-    forkOptions: {
-      env: {
-        FORCE_COLOR: '1',
-        ...initialEnv,
-        // we don't pass down NODE_OPTIONS as it can
-        // allow more memory usage than expected
-        NODE_OPTIONS: getNodeOptionsWithoutInspect()
-          .replace(/--max-old-space-size=[\d]{1,}/, '')
-          .trim(),
-        __NEXT_PRIVATE_RENDER_WORKER: type,
-        __NEXT_PRIVATE_RENDER_WORKER_CONFIG: JSON.stringify(nextConfig),
-        __NEXT_PRIVATE_ROUTER_IPC_PORT: ipcPort + '',
-        __NEXT_PRIVATE_ROUTER_IPC_KEY: ipcValidationKey,
-        __NEXT_PRIVATE_STANDALONE_CONFIG:
-          process.env.__NEXT_PRIVATE_STANDALONE_CONFIG,
-        NODE_ENV: process.env.NODE_ENV,
-        __NEXT_PRIVATE_PREBUNDLED_REACT:
-          type === 'app'
-            ? useServerActions
-              ? 'experimental'
-              : 'next'
-            : undefined,
-        ...(process.env.NEXT_CPU_PROF
-          ? { __NEXT_PRIVATE_CPU_PROFILE: `CPU.${type}-renderer` }
-          : {}),
-      },
-      execArgv: await genRenderExecArgv(isNodeDebugging, type),
-    },
-    exposedMethods: [
-      'initialize',
-      'deleteCache',
-      'deleteAppClientCache',
-      'clearModuleContext',
-      'propagateServerField',
-    ],
-  }) as any as RenderWorker &
-    InstanceType<typeof import('next/dist/compiled/jest-worker').Worker>
-
-  worker.getStderr().pipe(process.stderr)
-  worker.getStdout().pipe(process.stdout)
-
-  return worker
-}
diff --git a/packages/next/src/server/lib/utils.ts b/packages/next/src/server/lib/utils.ts
index 5c04aa698816b..3615966f857df 100644
--- a/packages/next/src/server/lib/utils.ts
+++ b/packages/next/src/server/lib/utils.ts
@@ -23,28 +23,6 @@ export const getDebugPort = () => {
   return debugPortStr ? parseInt(debugPortStr, 10) : 9229
 }
 
-export const genRouterWorkerExecArgv = async (
-  isNodeDebugging: boolean | 'brk'
-) => {
-  const execArgv = process.execArgv.filter((localArg) => {
-    return (
-      !localArg.startsWith('--inspect') && !localArg.startsWith('--inspect-brk')
-    )
-  })
-
-  if (isNodeDebugging) {
-    let debugPort = getDebugPort() + 1
-
-    // Process will log it's own debugger port
-
-    execArgv.push(
-      `--inspect${isNodeDebugging === 'brk' ? '-brk' : ''}=${debugPort}`
-    )
-  }
-
-  return execArgv
-}
-
 const NODE_INSPECT_RE = /--inspect(-brk)?(=\S+)?( |$)/
 export function getNodeOptionsWithoutInspect() {
   return (process.env.NODE_OPTIONS || '').replace(NODE_INSPECT_RE, '')
diff --git a/packages/next/src/server/lib/worker-utils.ts b/packages/next/src/server/lib/worker-utils.ts
index b550d38e76444..91fdf6f6275e8 100644
--- a/packages/next/src/server/lib/worker-utils.ts
+++ b/packages/next/src/server/lib/worker-utils.ts
@@ -1,6 +1,4 @@
-import * as Log from '../../build/output/log'
 import http from 'http'
-import { getDebugPort } from './utils'
 
 export const getFreePort = async (): Promise<number> => {
   return new Promise((resolve, reject) => {
@@ -17,43 +15,3 @@ export const getFreePort = async (): Promise<number> => {
     })
   })
 }
-
-export const genRenderExecArgv = async (
-  isNodeDebugging: string | boolean | undefined,
-  type: 'pages' | 'app'
-) => {
-  const execArgv = process.execArgv.filter((localArg) => {
-    return (
-      !localArg.startsWith('--inspect') && !localArg.startsWith('--inspect-brk')
-    )
-  })
-
-  if (isNodeDebugging) {
-    const isDebugging =
-      process.execArgv.some((localArg) => localArg.startsWith('--inspect')) ||
-      process.env.NODE_OPTIONS?.match?.(/--inspect(=\S+)?( |$)/)
-
-    const isDebuggingWithBrk =
-      process.execArgv.some((localArg) =>
-        localArg.startsWith('--inspect-brk')
-      ) || process.env.NODE_OPTIONS?.match?.(/--inspect-brk(=\S+)?( |$)/)
-
-    if (isDebugging || isDebuggingWithBrk) {
-      let debugPort = getDebugPort()
-
-      debugPort += type === 'pages' ? 1 : 2
-
-      Log.info(
-        `the --inspect${
-          isDebuggingWithBrk ? '-brk' : ''
-        } option was detected, the Next.js server${
-          type === 'pages' ? ' for pages' : type === 'app' ? ' for app' : ''
-        } should be inspected at port ${debugPort}.`
-      )
-
-      execArgv.push(`--inspect${isDebuggingWithBrk ? '-brk' : ''}=${debugPort}`)
-    }
-  }
-
-  return execArgv
-}
diff --git a/packages/next/src/server/server-utils.ts b/packages/next/src/server/server-utils.ts
index 4bfb79cfb62d3..d723a56ad8b27 100644
--- a/packages/next/src/server/server-utils.ts
+++ b/packages/next/src/server/server-utils.ts
@@ -114,10 +114,7 @@ export function getUtils({
     defaultRouteMatches = dynamicRouteMatcher(page) as ParsedUrlQuery
   }
 
-  function handleRewrites(
-    req: BaseNextRequest | IncomingMessage,
-    parsedUrl: UrlWithParsedQuery
-  ) {
+  function handleRewrites(req: BaseNextRequest, parsedUrl: UrlWithParsedQuery) {
     const rewriteParams = {}
     let fsPathname = parsedUrl.pathname