Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions packages/vite/src/node/server/environment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,10 @@ import { EnvironmentModuleGraph } from './moduleGraph'
import type { EnvironmentModuleNode } from './moduleGraph'
import type { HotChannel, NormalizedHotChannel } from './hmr'
import { getShortName, normalizeHotChannel, updateModules } from './hmr'
import type { TransformResult } from './transformRequest'
import type {
TransformOptionsInternal,
TransformResult,
} from './transformRequest'
import { transformRequest } from './transformRequest'
import type { EnvironmentPluginContainer } from './pluginContainer'
import {
Expand Down Expand Up @@ -206,8 +209,12 @@ export class DevEnvironment extends BaseEnvironment {
}
}

transformRequest(url: string): Promise<TransformResult | null> {
return transformRequest(this, url)
transformRequest(
url: string,
/** @internal */
options?: TransformOptionsInternal,
): Promise<TransformResult | null> {
return transformRequest(this, url, options)
}

async warmupRequest(url: string): Promise<void> {
Expand Down
36 changes: 5 additions & 31 deletions packages/vite/src/node/server/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ import { ssrTransform } from '../ssr/ssrTransform'
import { reloadOnTsconfigChange } from '../plugins/esbuild'
import { bindCLIShortcuts } from '../shortcuts'
import type { BindCLIShortcutsOptions } from '../shortcuts'
import { ERR_OUTDATED_OPTIMIZED_DEP } from '../../shared/constants'
import {
CLIENT_DIR,
DEFAULT_DEV_PORT,
Expand All @@ -67,7 +66,6 @@ import type { MinimalPluginContextWithoutEnvironment } from '../plugin'
import type { PluginContainer } from './pluginContainer'
import {
BasicMinimalPluginContext,
ERR_CLOSED_SERVER,
basePluginContextMeta,
createPluginContainer,
} from './pluginContainer'
Expand All @@ -93,12 +91,11 @@ import { timeMiddleware } from './middlewares/time'
import { ModuleGraph } from './mixedModuleGraph'
import type { ModuleNode } from './mixedModuleGraph'
import { notFoundMiddleware } from './middlewares/notFound'
import { buildErrorMessage, errorMiddleware } from './middlewares/error'
import { errorMiddleware } from './middlewares/error'
import type { HmrOptions, NormalizedHotChannel } from './hmr'
import { handleHMRUpdate, updateModules } from './hmr'
import { openBrowser as _openBrowser } from './openBrowser'
import type { TransformOptions, TransformResult } from './transformRequest'
import { transformRequest } from './transformRequest'
import { searchForPackageRoot, searchForWorkspaceRoot } from './searchRoot'
import type { DevEnvironment } from './environment'
import { hostValidationMiddleware } from './middlewares/hostCheck'
Expand Down Expand Up @@ -594,41 +591,18 @@ export async function _createServer(
},
})
},
// environment.transformRequest and .warmupRequest don't take an options param for now,
// so the logic and error handling needs to be duplicated here.
// The only param in options that could be important is `html`, but we may remove it as
// that is part of the internal control flow for the vite dev server to be able to bail
// out and do the html fallback
transformRequest(url, options) {
warnFutureDeprecation(
config,
'removeServerTransformRequest',
'server.transformRequest() is deprecated. Use environment.transformRequest() instead.',
)
const environment = server.environments[options?.ssr ? 'ssr' : 'client']
return transformRequest(environment, url, options)
return environment.transformRequest(url)
},
async warmupRequest(url, options) {
try {
const environment = server.environments[options?.ssr ? 'ssr' : 'client']
await transformRequest(environment, url, options)
} catch (e) {
if (
e?.code === ERR_OUTDATED_OPTIMIZED_DEP ||
e?.code === ERR_CLOSED_SERVER
) {
// these are expected errors
return
}
// Unexpected error, log the issue but avoid an unhandled exception
server.config.logger.error(
buildErrorMessage(e, [`Pre-transform error: ${e.message}`], false),
{
error: e,
timestamp: true,
},
)
}
warmupRequest(url, options) {
const environment = server.environments[options?.ssr ? 'ssr' : 'client']
return environment.warmupRequest(url)
},
transformIndexHtml(url, html, originalUrl) {
return devHtmlTransformFn(server, url, html, originalUrl)
Expand Down
8 changes: 2 additions & 6 deletions packages/vite/src/node/server/middlewares/transform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,7 @@ import {
removeTimestampQuery,
} from '../../utils'
import { send } from '../send'
import {
ERR_DENIED_ID,
ERR_LOAD_URL,
transformRequest,
} from '../transformRequest'
import { ERR_DENIED_ID, ERR_LOAD_URL } from '../transformRequest'
import { applySourcemapIgnoreList } from '../sourcemap'
import { isHTMLProxy } from '../../plugins/html'
import {
Expand Down Expand Up @@ -262,7 +258,7 @@ export function transformMiddleware(
}

// resolve, load and transform using the plugin container
const result = await transformRequest(environment, url, {
const result = await environment.transformRequest(url, {
allowId(id) {
return (
id.startsWith('\0') ||
Expand Down
15 changes: 6 additions & 9 deletions packages/vite/src/node/server/transformRequest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ export interface TransformOptions {
* @deprecated inferred from environment
*/
ssr?: boolean
}

export interface TransformOptionsInternal {
/**
* @internal
*/
Expand All @@ -69,14 +72,8 @@ export interface TransformOptions {
export function transformRequest(
environment: DevEnvironment,
url: string,
options: TransformOptions = {},
options: TransformOptionsInternal = {},
): Promise<TransformResult | null> {
// Backward compatibility when only `ssr` is passed
if (!options.ssr) {
// Backward compatibility
options = { ...options, ssr: environment.config.consumer === 'server' }
}

if (environment._closing && environment.config.dev.recoverable)
throwClosedServerError()

Expand Down Expand Up @@ -147,7 +144,7 @@ export function transformRequest(
async function doTransform(
environment: DevEnvironment,
url: string,
options: TransformOptions,
options: TransformOptionsInternal,
timestamp: number,
) {
url = removeTimestampQuery(url)
Expand Down Expand Up @@ -237,7 +234,7 @@ async function loadAndTransform(
environment: DevEnvironment,
id: string,
url: string,
options: TransformOptions,
options: TransformOptionsInternal,
timestamp: number,
mod?: EnvironmentModuleNode,
resolved?: PartialResolvedId,
Expand Down
Loading