(request: ViteNodeRequest)
| 353 | socket.setKeepAlive(true, 0) |
| 354 | |
| 355 | async function processMessage (request: ViteNodeRequest) { |
| 356 | try { |
| 357 | switch (request.type) { |
| 358 | case 'manifest': { |
| 359 | const manifestData = getManifest(nuxt, ssrServer, resolveClientEntry(clientServer.config)) |
| 360 | sendResponse<typeof request.type>(socket, request.id, manifestData) |
| 361 | return |
| 362 | } |
| 363 | case 'invalidates': { |
| 364 | collectInvalidatedSsrModules() |
| 365 | const responsePayload = Array.from(invalidates) |
| 366 | invalidates.clear() |
| 367 | sendResponse<typeof request.type>(socket, request.id, responsePayload) |
| 368 | return |
| 369 | } |
| 370 | case 'resolve': { |
| 371 | const { id: resolveId, importer } = request.payload |
| 372 | if (!resolveId) { |
| 373 | throw { status: 400, message: 'Missing id for resolve' } satisfies ErrorPartial |
| 374 | } |
| 375 | const ssrNode = nuxt.options.experimental.viteEnvironmentApi |
| 376 | ? ssrServer.environments.ssr.pluginContainer |
| 377 | : getNode(ssrServer) |
| 378 | const resolvedResult = await ssrNode.resolveId(resolveId, importer).catch(() => null) |
| 379 | sendResponse<typeof request.type>(socket, request.id, resolvedResult) |
| 380 | return |
| 381 | } |
| 382 | case 'module': { |
| 383 | if (request.payload.moduleId === '/') { |
| 384 | throw { status: 400, message: 'Invalid moduleId' } satisfies ErrorPartial |
| 385 | } |
| 386 | const ssrNode = nuxt.options.experimental.viteEnvironmentApi |
| 387 | ? ssrServer.environments.ssr |
| 388 | : getNode(ssrServer) |
| 389 | const response = await ssrNode.fetchModule(request.payload.moduleId) |
| 390 | .catch(async (err) => { |
| 391 | const errorData: Record<string, any> = { |
| 392 | code: 'VITE_ERROR', |
| 393 | id: request.payload.moduleId, |
| 394 | stack: err.stack || '', |
| 395 | message: err.message || '', |
| 396 | } |
| 397 | if (err.frame) { errorData.frame = err.frame } |
| 398 | |
| 399 | if (!errorData.frame && err.code === 'PARSE_ERROR') { |
| 400 | try { |
| 401 | const clientNode = nuxt.options.experimental.viteEnvironmentApi |
| 402 | ? ssrServer.environments.client |
| 403 | : getNode(ssrServer) |
| 404 | errorData.frame = await clientNode.transformRequest(request.payload.moduleId) |
| 405 | .then(res => `${err.message || ''}\n${res?.code}`).catch(() => undefined) |
| 406 | } catch { |
| 407 | // Ignore transform errors |
| 408 | } |
| 409 | } |
| 410 | throw { data: errorData, message: err.message || 'Error fetching module' } satisfies ErrorPartial |
| 411 | }) as Exclude<FetchResult, { cache: true }> |
| 412 | sendResponse<typeof request.type>(socket, request.id, response) |
no test coverage detected
searching dependent graphs…