Home / Function/ updateModuleInfo() — vite Function Reference

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

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