createClientConfigValueReplacer() — vite Function Reference
Architecture documentation for the createClientConfigValueReplacer() function in clientInjections.ts from the vite codebase.
Entity Profile
Dependency Diagram
graph TD 3928ac07_6613_c9d3_38dd_625918721277["createClientConfigValueReplacer()"] 706c7fc5_ca45_d178_75a9_66940b856450["clientInjections.ts"] 3928ac07_6613_c9d3_38dd_625918721277 -->|defined in| 706c7fc5_ca45_d178_75a9_66940b856450 911f8f87_f452_e725_a168_2bab39345c79["clientInjectionsPlugin()"] 911f8f87_f452_e725_a168_2bab39345c79 -->|calls| 3928ac07_6613_c9d3_38dd_625918721277 b2ef9799_cd96_ba83_06a5_28e8fa51363d["getHmrImplementation()"] b2ef9799_cd96_ba83_06a5_28e8fa51363d -->|calls| 3928ac07_6613_c9d3_38dd_625918721277 369388dc_006d_6dcb_70b4_e174e2ad592f["resolveHostname()"] 3928ac07_6613_c9d3_38dd_625918721277 -->|calls| 369388dc_006d_6dcb_70b4_e174e2ad592f 2aff86e8_0c9d_22cb_6536_c1321e1aaa1d["isObject()"] 3928ac07_6613_c9d3_38dd_625918721277 -->|calls| 2aff86e8_0c9d_22cb_6536_c1321e1aaa1d 43a88687_ed40_ba3a_51ef_35208bc0caa6["escapeReplacement()"] 3928ac07_6613_c9d3_38dd_625918721277 -->|calls| 43a88687_ed40_ba3a_51ef_35208bc0caa6 style 3928ac07_6613_c9d3_38dd_625918721277 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/vite/src/node/plugins/clientInjections.ts lines 68–134
async function createClientConfigValueReplacer(
config: ResolvedConfig,
): Promise<(code: string) => string> {
const resolvedServerHostname = (await resolveHostname(config.server.host))
.name
const resolvedServerPort = config.server.port!
const devBase = config.base
const serverHost = `${resolvedServerHostname}:${resolvedServerPort}${devBase}`
let hmrConfig = config.server.hmr
hmrConfig = isObject(hmrConfig) ? hmrConfig : undefined
const host = hmrConfig?.host || null
const protocol = hmrConfig?.protocol || null
const timeout = hmrConfig?.timeout || 30000
const overlay = hmrConfig?.overlay !== false
const isHmrServerSpecified = !!hmrConfig?.server
const hmrConfigName = path.basename(config.configFile || 'vite.config.js')
// hmr.clientPort -> hmr.port
// -> (24678 if middleware mode and HMR server is not specified) -> new URL(import.meta.url).port
let port = hmrConfig?.clientPort || hmrConfig?.port || null
if (config.server.middlewareMode && !isHmrServerSpecified) {
port ||= 24678
}
let directTarget = hmrConfig?.host || resolvedServerHostname
directTarget += `:${hmrConfig?.port || resolvedServerPort}`
directTarget += devBase
let hmrBase = devBase
if (hmrConfig?.path) {
hmrBase = path.posix.join(hmrBase, hmrConfig.path)
}
const modeReplacement = escapeReplacement(config.mode)
const baseReplacement = escapeReplacement(devBase)
const serverHostReplacement = escapeReplacement(serverHost)
const hmrProtocolReplacement = escapeReplacement(protocol)
const hmrHostnameReplacement = escapeReplacement(host)
const hmrPortReplacement = escapeReplacement(port)
const hmrDirectTargetReplacement = escapeReplacement(directTarget)
const hmrBaseReplacement = escapeReplacement(hmrBase)
const hmrTimeoutReplacement = escapeReplacement(timeout)
const hmrEnableOverlayReplacement = escapeReplacement(overlay)
const hmrConfigNameReplacement = escapeReplacement(hmrConfigName)
const wsTokenReplacement = escapeReplacement(config.webSocketToken)
const bundleDevReplacement = escapeReplacement(
config.experimental.bundledDev || false,
)
return (code) =>
code
.replace(`__MODE__`, modeReplacement)
.replace(/__BASE__/g, baseReplacement)
.replace(`__SERVER_HOST__`, serverHostReplacement)
.replace(`__HMR_PROTOCOL__`, hmrProtocolReplacement)
.replace(`__HMR_HOSTNAME__`, hmrHostnameReplacement)
.replace(`__HMR_PORT__`, hmrPortReplacement)
.replace(`__HMR_DIRECT_TARGET__`, hmrDirectTargetReplacement)
.replace(`__HMR_BASE__`, hmrBaseReplacement)
.replace(`__HMR_TIMEOUT__`, hmrTimeoutReplacement)
.replace(`__HMR_ENABLE_OVERLAY__`, hmrEnableOverlayReplacement)
.replace(`__HMR_CONFIG_NAME__`, hmrConfigNameReplacement)
.replace(`__WS_TOKEN__`, wsTokenReplacement)
.replaceAll(`__BUNDLED_DEV__`, bundleDevReplacement)
}
Domain
Subdomains
Source
Frequently Asked Questions
What does createClientConfigValueReplacer() do?
createClientConfigValueReplacer() is a function in the vite codebase, defined in packages/vite/src/node/plugins/clientInjections.ts.
Where is createClientConfigValueReplacer() defined?
createClientConfigValueReplacer() is defined in packages/vite/src/node/plugins/clientInjections.ts at line 68.
What does createClientConfigValueReplacer() call?
createClientConfigValueReplacer() calls 3 function(s): escapeReplacement, isObject, resolveHostname.
What calls createClientConfigValueReplacer()?
createClientConfigValueReplacer() is called by 2 function(s): clientInjectionsPlugin, getHmrImplementation.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free