createHMRHandlerForRunner() — vite Function Reference
Architecture documentation for the createHMRHandlerForRunner() function in hmrHandler.ts from the vite codebase.
Entity Profile
Dependency Diagram
graph TD 4cffe7ac_42fc_d6b8_b38b_87a95e695952["createHMRHandlerForRunner()"] 569b12a9_015e_564e_efd3_205cedee54dd["hmrHandler.ts"] 4cffe7ac_42fc_d6b8_b38b_87a95e695952 -->|defined in| 569b12a9_015e_564e_efd3_205cedee54dd 8db7bac6_7d0a_15b2_5870_1fd0e71b9cf5["constructor()"] 8db7bac6_7d0a_15b2_5870_1fd0e71b9cf5 -->|calls| 4cffe7ac_42fc_d6b8_b38b_87a95e695952 78565810_c101_62d5_659a_9f46c4ad9d97["createHMRHandler()"] 4cffe7ac_42fc_d6b8_b38b_87a95e695952 -->|calls| 78565810_c101_62d5_659a_9f46c4ad9d97 2ca9c642_f3d6_040e_5699_d9c42ffa44e7["isClosed()"] 4cffe7ac_42fc_d6b8_b38b_87a95e695952 -->|calls| 2ca9c642_f3d6_040e_5699_d9c42ffa44e7 795dec35_22f9_80f5_ccab_9c2d170af0d3["unwrapId()"] 4cffe7ac_42fc_d6b8_b38b_87a95e695952 -->|calls| 795dec35_22f9_80f5_ccab_9c2d170af0d3 d1c0dc20_450c_ceda_3165_c052a37fc95f["getModulesEntrypoints()"] 4cffe7ac_42fc_d6b8_b38b_87a95e695952 -->|calls| d1c0dc20_450c_ceda_3165_c052a37fc95f 16304d96_41aa_6521_c9c0_02b27125f159["getModulesByFile()"] 4cffe7ac_42fc_d6b8_b38b_87a95e695952 -->|calls| 16304d96_41aa_6521_c9c0_02b27125f159 f094d39d_cd97_2548_86c3_38902c2f3301["slash()"] 4cffe7ac_42fc_d6b8_b38b_87a95e695952 -->|calls| f094d39d_cd97_2548_86c3_38902c2f3301 9dce4d17_eb31_93ad_eebc_55418c6acdde["findAllEntrypoints()"] 4cffe7ac_42fc_d6b8_b38b_87a95e695952 -->|calls| 9dce4d17_eb31_93ad_eebc_55418c6acdde style 4cffe7ac_42fc_d6b8_b38b_87a95e695952 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/vite/src/module-runner/hmrHandler.ts lines 7–85
export function createHMRHandlerForRunner(
runner: ModuleRunner,
): (payload: HotPayload) => Promise<void> {
return createHMRHandler(async (payload) => {
const hmrClient = runner.hmrClient
if (!hmrClient || runner.isClosed()) return
switch (payload.type) {
case 'connected':
hmrClient.logger.debug(`connected.`)
break
case 'update':
await hmrClient.notifyListeners('vite:beforeUpdate', payload)
await Promise.all(
payload.updates.map(async (update): Promise<void> => {
if (update.type === 'js-update') {
// runner always caches modules by their full path without /@id/ prefix
update.acceptedPath = unwrapId(update.acceptedPath)
update.path = unwrapId(update.path)
return hmrClient.queueUpdate(update)
}
hmrClient.logger.error('css hmr is not supported in runner mode.')
}),
)
await hmrClient.notifyListeners('vite:afterUpdate', payload)
break
case 'custom': {
await hmrClient.notifyListeners(payload.event, payload.data)
break
}
case 'full-reload': {
const { triggeredBy } = payload
const clearEntrypointUrls = triggeredBy
? getModulesEntrypoints(
runner,
getModulesByFile(runner, slash(triggeredBy)),
)
: findAllEntrypoints(runner)
if (!clearEntrypointUrls.size) break
hmrClient.logger.debug(`program reload`)
await hmrClient.notifyListeners('vite:beforeFullReload', payload)
runner.evaluatedModules.clear()
for (const url of clearEntrypointUrls) {
try {
await runner.import(url)
} catch (err) {
if (err.code !== ERR_OUTDATED_OPTIMIZED_DEP) {
hmrClient.logger.error(
`An error happened during full reload\n${err.message}\n${err.stack}`,
)
}
}
}
break
}
case 'prune':
await hmrClient.notifyListeners('vite:beforePrune', payload)
await hmrClient.prunePaths(payload.paths)
break
case 'error': {
await hmrClient.notifyListeners('vite:error', payload)
const err = payload.err
hmrClient.logger.error(
`Internal Server Error\n${err.message}\n${err.stack}`,
)
break
}
case 'ping': // noop
break
default: {
const check: never = payload
return check
}
}
})
}
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does createHMRHandlerForRunner() do?
createHMRHandlerForRunner() is a function in the vite codebase, defined in packages/vite/src/module-runner/hmrHandler.ts.
Where is createHMRHandlerForRunner() defined?
createHMRHandlerForRunner() is defined in packages/vite/src/module-runner/hmrHandler.ts at line 7.
What does createHMRHandlerForRunner() call?
createHMRHandlerForRunner() calls 7 function(s): createHMRHandler, findAllEntrypoints, getModulesByFile, getModulesEntrypoints, isClosed, slash, unwrapId.
What calls createHMRHandlerForRunner()?
createHMRHandlerForRunner() is called by 1 function(s): constructor.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free