Skip to content

Commit

Permalink
Remove leftover worker code and types
Browse files Browse the repository at this point in the history
  • Loading branch information
timneutkens committed Sep 14, 2023
1 parent 9953db4 commit 418003c
Show file tree
Hide file tree
Showing 5 changed files with 3 additions and 137 deletions.
5 changes: 2 additions & 3 deletions 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 {
Expand Down Expand Up @@ -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<
Expand Down
66 changes: 0 additions & 66 deletions 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
Expand Down Expand Up @@ -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
}
22 changes: 0 additions & 22 deletions packages/next/src/server/lib/utils.ts
Expand Up @@ -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, '')
Expand Down
42 changes: 0 additions & 42 deletions 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) => {
Expand All @@ -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
}
5 changes: 1 addition & 4 deletions packages/next/src/server/server-utils.ts
Expand Up @@ -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

Expand Down

0 comments on commit 418003c

Please sign in to comment.