Home / Function/ createBackwardCompatibleFileToModulesMap() — vite Function Reference

createBackwardCompatibleFileToModulesMap() — vite Function Reference

Architecture documentation for the createBackwardCompatibleFileToModulesMap() function in mixedModuleGraph.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  f69e7359_4c92_c290_7870_d78b5ebc9060["createBackwardCompatibleFileToModulesMap()"]
  cd2f5017_5d73_e10a_7c43_22b962517f0c["mixedModuleGraph.ts"]
  f69e7359_4c92_c290_7870_d78b5ebc9060 -->|defined in| cd2f5017_5d73_e10a_7c43_22b962517f0c
  3acdf189_b419_0a41_c750_a3225ac83e3d["constructor()"]
  3acdf189_b419_0a41_c750_a3225ac83e3d -->|calls| f69e7359_4c92_c290_7870_d78b5ebc9060
  d1f8b612_857c_d18a_b763_92f90bf93d2b["get()"]
  f69e7359_4c92_c290_7870_d78b5ebc9060 -->|calls| d1f8b612_857c_d18a_b763_92f90bf93d2b
  57bd050c_f162_f6af_9491_3a9b3bcd5ca2["set()"]
  f69e7359_4c92_c290_7870_d78b5ebc9060 -->|calls| 57bd050c_f162_f6af_9491_3a9b3bcd5ca2
  d8391f75_fffc_b831_70c9_fb964a1caf82["getBackwardCompatibleModuleNode()"]
  f69e7359_4c92_c290_7870_d78b5ebc9060 -->|calls| d8391f75_fffc_b831_70c9_fb964a1caf82
  b0a4d406_602a_9986_f073_0dd8b083afb9["mapIterator()"]
  f69e7359_4c92_c290_7870_d78b5ebc9060 -->|calls| b0a4d406_602a_9986_f073_0dd8b083afb9
  style f69e7359_4c92_c290_7870_d78b5ebc9060 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/server/mixedModuleGraph.ts lines 648–741

function createBackwardCompatibleFileToModulesMap(
  moduleGraph: ModuleGraph,
): Map<string, Set<ModuleNode>> {
  const getFileToModulesMap = (): Map<string, Set<EnvironmentModuleNode>> => {
    // A good approximation to the previous logic that returned the union of
    // the importedModules and importers from both the browser and server
    if (!moduleGraph._ssr.fileToModulesMap.size) {
      return moduleGraph._client.fileToModulesMap
    }
    const map = new Map(moduleGraph._client.fileToModulesMap)
    for (const [key, modules] of moduleGraph._ssr.fileToModulesMap) {
      const modulesSet = map.get(key)
      if (!modulesSet) {
        map.set(key, modules)
      } else {
        for (const ssrModule of modules) {
          let hasModule = false
          for (const clientModule of modulesSet) {
            hasModule ||= clientModule.id === ssrModule.id
            if (hasModule) {
              break
            }
          }
          if (!hasModule) {
            modulesSet.add(ssrModule)
          }
        }
      }
    }
    return map
  }
  const getBackwardCompatibleModules = (
    modules: Set<EnvironmentModuleNode>,
  ): Set<ModuleNode> =>
    new Set(
      [...modules].map((mod) =>
        moduleGraph.getBackwardCompatibleModuleNode(mod),
      ),
    )

  return {
    [Symbol.iterator]() {
      return this.entries()
    },
    get(key) {
      const clientModules = moduleGraph._client.fileToModulesMap.get(key)
      const ssrModules = moduleGraph._ssr.fileToModulesMap.get(key)
      if (!clientModules && !ssrModules) {
        return
      }
      const modules = clientModules ?? new Set<EnvironmentModuleNode>()
      if (ssrModules) {
        for (const ssrModule of ssrModules) {
          if (ssrModule.id) {
            let found = false
            for (const mod of modules) {
              found ||= mod.id === ssrModule.id
              if (found) {
                break
              }
            }
            if (!found) {
              modules.add(ssrModule)
            }
          }
        }
      }
      return getBackwardCompatibleModules(modules)
    },
    keys() {
      return getFileToModulesMap().keys()
    },
    values() {
      return mapIterator(
        getFileToModulesMap().values(),
        getBackwardCompatibleModules,
      )
    },
    entries() {
      return mapIterator(getFileToModulesMap().entries(), ([key, modules]) => [
        key,

Domain

Subdomains

Called By

Frequently Asked Questions

What does createBackwardCompatibleFileToModulesMap() do?
createBackwardCompatibleFileToModulesMap() is a function in the vite codebase, defined in packages/vite/src/node/server/mixedModuleGraph.ts.
Where is createBackwardCompatibleFileToModulesMap() defined?
createBackwardCompatibleFileToModulesMap() is defined in packages/vite/src/node/server/mixedModuleGraph.ts at line 648.
What does createBackwardCompatibleFileToModulesMap() call?
createBackwardCompatibleFileToModulesMap() calls 4 function(s): get, getBackwardCompatibleModuleNode, mapIterator, set.
What calls createBackwardCompatibleFileToModulesMap()?
createBackwardCompatibleFileToModulesMap() 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