Home / Function/ createBackwardCompatibleModuleMap() — vite Function Reference

createBackwardCompatibleModuleMap() — vite Function Reference

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

Entity Profile

Dependency Diagram

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

Relationship Graph

Source Code

packages/vite/src/node/server/mixedModuleGraph.ts lines 591–646

function createBackwardCompatibleModuleMap(
  moduleGraph: ModuleGraph,
  prop: 'urlToModuleMap' | 'idToModuleMap' | 'etagToModuleMap',
  getModuleMap: () => Map<string, EnvironmentModuleNode>,
): Map<string, ModuleNode> {
  return {
    [Symbol.iterator]() {
      return this.entries()
    },
    get(key) {
      const clientModule = moduleGraph._client[prop].get(key)
      const ssrModule = moduleGraph._ssr[prop].get(key)
      if (!clientModule && !ssrModule) {
        return
      }
      return moduleGraph.getBackwardCompatibleModuleNodeDual(
        clientModule,
        ssrModule,
      )
    },
    set(key, mod) {
      const clientModule = mod._clientModule
      if (clientModule) {
        moduleGraph._client[prop].set(key, clientModule)
      }
      const ssrModule = mod._ssrModule
      if (ssrModule) {
        moduleGraph._ssr[prop].set(key, ssrModule)
      }
    },
    keys() {
      return getModuleMap().keys()
    },
    values() {
      return mapIterator(getModuleMap().values(), (mod) =>
        moduleGraph.getBackwardCompatibleModuleNode(mod),
      )
    },
    entries() {
      return mapIterator(getModuleMap().entries(), ([key, mod]) => [
        key,
        moduleGraph.getBackwardCompatibleModuleNode(mod),
      ])
    },
    get size() {
      return getModuleMap().size
    },
    forEach(callback, thisArg) {
      return getModuleMap().forEach((mod, key) => {
        const backwardCompatibleMod =
          moduleGraph.getBackwardCompatibleModuleNode(mod)
        callback.call(thisArg, backwardCompatibleMod, key, this)
      })
    },
  } as Map<string, ModuleNode>
}

Domain

Subdomains

Called By

Frequently Asked Questions

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