updateModuleInfo() — vite Function Reference
Architecture documentation for the updateModuleInfo() function in moduleGraph.ts from the vite codebase.
Entity Profile
Dependency Diagram
graph TD aa7d5861_e3d7_fc0a_68dc_8a1f7d5e6b62["updateModuleInfo()"] cdb618b6_fede_c732_1a58_98b86b491151["EnvironmentModuleGraph"] aa7d5861_e3d7_fc0a_68dc_8a1f7d5e6b62 -->|defined in| cdb618b6_fede_c732_1a58_98b86b491151 946fc4c1_3a7b_9d6a_6a0f_ab4355ad25c9["cssAnalysisPlugin()"] 946fc4c1_3a7b_9d6a_6a0f_ab4355ad25c9 -->|calls| aa7d5861_e3d7_fc0a_68dc_8a1f7d5e6b62 77ccd6ac_9a63_b9a5_0b1b_b3bd2ee25604["ensureEntryFromUrl()"] aa7d5861_e3d7_fc0a_68dc_8a1f7d5e6b62 -->|calls| 77ccd6ac_9a63_b9a5_0b1b_b3bd2ee25604 style aa7d5861_e3d7_fc0a_68dc_8a1f7d5e6b62 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/vite/src/node/server/moduleGraph.ts lines 252–331
async updateModuleInfo(
mod: EnvironmentModuleNode,
importedModules: Set<string | EnvironmentModuleNode>,
importedBindings: Map<string, Set<string>> | null,
acceptedModules: Set<string | EnvironmentModuleNode>,
acceptedExports: Set<string> | null,
isSelfAccepting: boolean,
/** @internal */
staticImportedUrls?: Set<string>,
): Promise<Set<EnvironmentModuleNode> | undefined> {
mod.isSelfAccepting = isSelfAccepting
const prevImports = mod.importedModules
let noLongerImported: Set<EnvironmentModuleNode> | undefined
let resolvePromises = []
let resolveResults = new Array(importedModules.size)
let index = 0
// update import graph
for (const imported of importedModules) {
const nextIndex = index++
if (typeof imported === 'string') {
resolvePromises.push(
this.ensureEntryFromUrl(imported).then((dep) => {
dep.importers.add(mod)
resolveResults[nextIndex] = dep
}),
)
} else {
imported.importers.add(mod)
resolveResults[nextIndex] = imported
}
}
if (resolvePromises.length) {
await Promise.all(resolvePromises)
}
const nextImports = new Set(resolveResults)
mod.importedModules = nextImports
// remove the importer from deps that were imported but no longer are.
prevImports.forEach((dep) => {
if (!mod.importedModules.has(dep)) {
dep.importers.delete(mod)
if (!dep.importers.size) {
// dependency no longer imported
;(noLongerImported || (noLongerImported = new Set())).add(dep)
}
}
})
// update accepted hmr deps
resolvePromises = []
resolveResults = new Array(acceptedModules.size)
index = 0
for (const accepted of acceptedModules) {
const nextIndex = index++
if (typeof accepted === 'string') {
resolvePromises.push(
this.ensureEntryFromUrl(accepted).then((dep) => {
resolveResults[nextIndex] = dep
}),
)
} else {
resolveResults[nextIndex] = accepted
}
}
if (resolvePromises.length) {
await Promise.all(resolvePromises)
}
mod.acceptedHmrDeps = new Set(resolveResults)
mod.staticImportedUrls = staticImportedUrls
// update accepted hmr exports
mod.acceptedHmrExports = acceptedExports
mod.importedBindings = importedBindings
return noLongerImported
}
Domain
Subdomains
Defined In
Calls
Called By
Source
Frequently Asked Questions
What does updateModuleInfo() do?
updateModuleInfo() is a function in the vite codebase, defined in packages/vite/src/node/server/moduleGraph.ts.
Where is updateModuleInfo() defined?
updateModuleInfo() is defined in packages/vite/src/node/server/moduleGraph.ts at line 252.
What does updateModuleInfo() call?
updateModuleInfo() calls 1 function(s): ensureEntryFromUrl.
What calls updateModuleInfo()?
updateModuleInfo() is called by 1 function(s): cssAnalysisPlugin.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free