From 418003caea00c31c5678c1ec18d56ee55877e8c3 Mon Sep 17 00:00:00 2001 From: Tim Neutkens 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 7e24bb9bd5ce..695f1779e7d4 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> - pages?: Awaited> + 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 0dba447ab3ca..cb3acbd1ccf2 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 => { - 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 - - 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 5c04aa698816..3615966f857d 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 b550d38e7644..91fdf6f6275e 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 => { return new Promise((resolve, reject) => { @@ -17,43 +15,3 @@ export const getFreePort = async (): Promise => { }) }) } - -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 4bfb79cfb62d..d723a56ad8b2 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