Skip to content

Commit 24e6a0c

Browse files
authored
refactor: use environment transform request (#20430)
1 parent d240f27 commit 24e6a0c

File tree

4 files changed

+23
-49
lines changed

4 files changed

+23
-49
lines changed

packages/vite/src/node/server/environment.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ import { EnvironmentModuleGraph } from './moduleGraph'
2222
import type { EnvironmentModuleNode } from './moduleGraph'
2323
import type { HotChannel, NormalizedHotChannel } from './hmr'
2424
import { getShortName, normalizeHotChannel, updateModules } from './hmr'
25-
import type { TransformResult } from './transformRequest'
25+
import type {
26+
TransformOptionsInternal,
27+
TransformResult,
28+
} from './transformRequest'
2629
import { transformRequest } from './transformRequest'
2730
import type { EnvironmentPluginContainer } from './pluginContainer'
2831
import {
@@ -206,8 +209,12 @@ export class DevEnvironment extends BaseEnvironment {
206209
}
207210
}
208211

209-
transformRequest(url: string): Promise<TransformResult | null> {
210-
return transformRequest(this, url)
212+
transformRequest(
213+
url: string,
214+
/** @internal */
215+
options?: TransformOptionsInternal,
216+
): Promise<TransformResult | null> {
217+
return transformRequest(this, url, options)
211218
}
212219

213220
async warmupRequest(url: string): Promise<void> {

packages/vite/src/node/server/index.ts

Lines changed: 5 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ import { ssrTransform } from '../ssr/ssrTransform'
4545
import { reloadOnTsconfigChange } from '../plugins/esbuild'
4646
import { bindCLIShortcuts } from '../shortcuts'
4747
import type { BindCLIShortcutsOptions } from '../shortcuts'
48-
import { ERR_OUTDATED_OPTIMIZED_DEP } from '../../shared/constants'
4948
import {
5049
CLIENT_DIR,
5150
DEFAULT_DEV_PORT,
@@ -67,7 +66,6 @@ import type { MinimalPluginContextWithoutEnvironment } from '../plugin'
6766
import type { PluginContainer } from './pluginContainer'
6867
import {
6968
BasicMinimalPluginContext,
70-
ERR_CLOSED_SERVER,
7169
basePluginContextMeta,
7270
createPluginContainer,
7371
} from './pluginContainer'
@@ -93,12 +91,11 @@ import { timeMiddleware } from './middlewares/time'
9391
import { ModuleGraph } from './mixedModuleGraph'
9492
import type { ModuleNode } from './mixedModuleGraph'
9593
import { notFoundMiddleware } from './middlewares/notFound'
96-
import { buildErrorMessage, errorMiddleware } from './middlewares/error'
94+
import { errorMiddleware } from './middlewares/error'
9795
import type { HmrOptions, NormalizedHotChannel } from './hmr'
9896
import { handleHMRUpdate, updateModules } from './hmr'
9997
import { openBrowser as _openBrowser } from './openBrowser'
10098
import type { TransformOptions, TransformResult } from './transformRequest'
101-
import { transformRequest } from './transformRequest'
10299
import { searchForPackageRoot, searchForWorkspaceRoot } from './searchRoot'
103100
import type { DevEnvironment } from './environment'
104101
import { hostValidationMiddleware } from './middlewares/hostCheck'
@@ -594,41 +591,18 @@ export async function _createServer(
594591
},
595592
})
596593
},
597-
// environment.transformRequest and .warmupRequest don't take an options param for now,
598-
// so the logic and error handling needs to be duplicated here.
599-
// The only param in options that could be important is `html`, but we may remove it as
600-
// that is part of the internal control flow for the vite dev server to be able to bail
601-
// out and do the html fallback
602594
transformRequest(url, options) {
603595
warnFutureDeprecation(
604596
config,
605597
'removeServerTransformRequest',
606598
'server.transformRequest() is deprecated. Use environment.transformRequest() instead.',
607599
)
608600
const environment = server.environments[options?.ssr ? 'ssr' : 'client']
609-
return transformRequest(environment, url, options)
601+
return environment.transformRequest(url)
610602
},
611-
async warmupRequest(url, options) {
612-
try {
613-
const environment = server.environments[options?.ssr ? 'ssr' : 'client']
614-
await transformRequest(environment, url, options)
615-
} catch (e) {
616-
if (
617-
e?.code === ERR_OUTDATED_OPTIMIZED_DEP ||
618-
e?.code === ERR_CLOSED_SERVER
619-
) {
620-
// these are expected errors
621-
return
622-
}
623-
// Unexpected error, log the issue but avoid an unhandled exception
624-
server.config.logger.error(
625-
buildErrorMessage(e, [`Pre-transform error: ${e.message}`], false),
626-
{
627-
error: e,
628-
timestamp: true,
629-
},
630-
)
631-
}
603+
warmupRequest(url, options) {
604+
const environment = server.environments[options?.ssr ? 'ssr' : 'client']
605+
return environment.warmupRequest(url)
632606
},
633607
transformIndexHtml(url, html, originalUrl) {
634608
return devHtmlTransformFn(server, url, html, originalUrl)

packages/vite/src/node/server/middlewares/transform.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,7 @@ import {
1818
removeTimestampQuery,
1919
} from '../../utils'
2020
import { send } from '../send'
21-
import {
22-
ERR_DENIED_ID,
23-
ERR_LOAD_URL,
24-
transformRequest,
25-
} from '../transformRequest'
21+
import { ERR_DENIED_ID, ERR_LOAD_URL } from '../transformRequest'
2622
import { applySourcemapIgnoreList } from '../sourcemap'
2723
import { isHTMLProxy } from '../../plugins/html'
2824
import {
@@ -262,7 +258,7 @@ export function transformMiddleware(
262258
}
263259

264260
// resolve, load and transform using the plugin container
265-
const result = await transformRequest(environment, url, {
261+
const result = await environment.transformRequest(url, {
266262
allowId(id) {
267263
return (
268264
id.startsWith('\0') ||

packages/vite/src/node/server/transformRequest.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ export interface TransformOptions {
5353
* @deprecated inferred from environment
5454
*/
5555
ssr?: boolean
56+
}
57+
58+
export interface TransformOptionsInternal {
5659
/**
5760
* @internal
5861
*/
@@ -69,14 +72,8 @@ export interface TransformOptions {
6972
export function transformRequest(
7073
environment: DevEnvironment,
7174
url: string,
72-
options: TransformOptions = {},
75+
options: TransformOptionsInternal = {},
7376
): Promise<TransformResult | null> {
74-
// Backward compatibility when only `ssr` is passed
75-
if (!options.ssr) {
76-
// Backward compatibility
77-
options = { ...options, ssr: environment.config.consumer === 'server' }
78-
}
79-
8077
if (environment._closing && environment.config.dev.recoverable)
8178
throwClosedServerError()
8279

@@ -147,7 +144,7 @@ export function transformRequest(
147144
async function doTransform(
148145
environment: DevEnvironment,
149146
url: string,
150-
options: TransformOptions,
147+
options: TransformOptionsInternal,
151148
timestamp: number,
152149
) {
153150
url = removeTimestampQuery(url)
@@ -237,7 +234,7 @@ async function loadAndTransform(
237234
environment: DevEnvironment,
238235
id: string,
239236
url: string,
240-
options: TransformOptions,
237+
options: TransformOptionsInternal,
241238
timestamp: number,
242239
mod?: EnvironmentModuleNode,
243240
resolved?: PartialResolvedId,

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy