Home / File/ evaluatedModules.ts — vite Source File

evaluatedModules.ts — vite Source File

Architecture documentation for evaluatedModules.ts, a typescript file in the vite codebase. 11 imports, 3 dependents.

File typescript ModuleRunner SSRRuntime 11 imports 3 dependents 1 functions 2 classes

Entity Profile

Dependency Diagram

graph LR
  9f67d7a4_f300_a592_a5b0_c8f97c2d3564["evaluatedModules.ts"]
  abfc9e70_3c15_b3f0_a595_3cf27afb7e64["utils.ts"]
  9f67d7a4_f300_a592_a5b0_c8f97c2d3564 --> abfc9e70_3c15_b3f0_a595_3cf27afb7e64
  10b9dea8_362c_1af2_93be_afa4dd9aed9e["cleanUrl"]
  9f67d7a4_f300_a592_a5b0_c8f97c2d3564 --> 10b9dea8_362c_1af2_93be_afa4dd9aed9e
  f094d39d_cd97_2548_86c3_38902c2f3301["slash"]
  9f67d7a4_f300_a592_a5b0_c8f97c2d3564 --> f094d39d_cd97_2548_86c3_38902c2f3301
  795dec35_22f9_80f5_ccab_9c2d170af0d3["unwrapId"]
  9f67d7a4_f300_a592_a5b0_c8f97c2d3564 --> 795dec35_22f9_80f5_ccab_9c2d170af0d3
  ffe942a0_fdea_ef58_0f68_6f1fec25f285["constants.ts"]
  9f67d7a4_f300_a592_a5b0_c8f97c2d3564 --> ffe942a0_fdea_ef58_0f68_6f1fec25f285
  81939ddb_795d_a69b_d1ea_fb1af459ccc2["utils.ts"]
  9f67d7a4_f300_a592_a5b0_c8f97c2d3564 --> 81939ddb_795d_a69b_d1ea_fb1af459ccc2
  1f98cd6a_b860_9dfb_69e1_70665d44d35c["decodeBase64"]
  9f67d7a4_f300_a592_a5b0_c8f97c2d3564 --> 1f98cd6a_b860_9dfb_69e1_70665d44d35c
  d4f6d186_baf8_38ee_e63e_b58f4d86f016["decoder.ts"]
  9f67d7a4_f300_a592_a5b0_c8f97c2d3564 --> d4f6d186_baf8_38ee_e63e_b58f4d86f016
  d26160cf_98b0_224e_37f8_05fe0a3df273["DecodedMap"]
  9f67d7a4_f300_a592_a5b0_c8f97c2d3564 --> d26160cf_98b0_224e_37f8_05fe0a3df273
  bf48f7e9_65f6_54c3_7dce_f44769180bd7["types.ts"]
  9f67d7a4_f300_a592_a5b0_c8f97c2d3564 --> bf48f7e9_65f6_54c3_7dce_f44769180bd7
  f370aa53_30b9_8599_b1b3_ad6da4a977aa["ResolvedResult"]
  9f67d7a4_f300_a592_a5b0_c8f97c2d3564 --> f370aa53_30b9_8599_b1b3_ad6da4a977aa
  29e248d2_9983_1037_00e6_8bcd9ee87840["runner.ts"]
  29e248d2_9983_1037_00e6_8bcd9ee87840 --> 9f67d7a4_f300_a592_a5b0_c8f97c2d3564
  95cae2f2_ad8c_91c1_5a74_93d939dbc47b["interceptor.ts"]
  95cae2f2_ad8c_91c1_5a74_93d939dbc47b --> 9f67d7a4_f300_a592_a5b0_c8f97c2d3564
  bf48f7e9_65f6_54c3_7dce_f44769180bd7["types.ts"]
  bf48f7e9_65f6_54c3_7dce_f44769180bd7 --> 9f67d7a4_f300_a592_a5b0_c8f97c2d3564
  style 9f67d7a4_f300_a592_a5b0_c8f97c2d3564 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { cleanUrl, isWindows, slash, unwrapId } from '../shared/utils'
import { SOURCEMAPPING_URL } from '../shared/constants'
import { decodeBase64 } from './utils'
import { DecodedMap } from './sourcemap/decoder'
import type { ResolvedResult } from './types'

const MODULE_RUNNER_SOURCEMAPPING_REGEXP = new RegExp(
  `//# ${SOURCEMAPPING_URL}=data:application/json;base64,(.+)`,
)

export class EvaluatedModuleNode {
  public importers: Set<string> = new Set()
  public imports: Set<string> = new Set()
  public evaluated = false
  public meta: ResolvedResult | undefined
  public promise: Promise<any> | undefined
  public exports: any | undefined
  public file: string
  public map: DecodedMap | undefined

  constructor(
    public id: string,
    public url: string,
  ) {
    this.file = cleanUrl(id)
  }
}

export class EvaluatedModules {
  public readonly idToModuleMap: Map<string, EvaluatedModuleNode> = new Map()
  public readonly fileToModulesMap: Map<string, Set<EvaluatedModuleNode>> =
    new Map()
  public readonly urlToIdModuleMap: Map<string, EvaluatedModuleNode> = new Map()

  /**
   * Returns the module node by the resolved module ID. Usually, module ID is
   * the file system path with query and/or hash. It can also be a virtual module.
   *
   * Module runner graph will have 1 to 1 mapping with the server module graph.
   * @param id Resolved module ID
   */
  public getModuleById(id: string): EvaluatedModuleNode | undefined {
    return this.idToModuleMap.get(id)
  }

  /**
   * Returns all modules related to the file system path. Different modules
   * might have different query parameters or hash, so it's possible to have
   * multiple modules for the same file.
   * @param file The file system path of the module
   */
  public getModulesByFile(file: string): Set<EvaluatedModuleNode> | undefined {
    return this.fileToModulesMap.get(file)
  }

  /**
   * Returns the module node by the URL that was used in the import statement.
   * Unlike module graph on the server, the URL is not resolved and is used as is.
   * @param url Server URL that was used in the import statement
   */
// ... (99 more lines)

Domain

Subdomains

Frequently Asked Questions

What does evaluatedModules.ts do?
evaluatedModules.ts is a source file in the vite codebase, written in typescript. It belongs to the ModuleRunner domain, SSRRuntime subdomain.
What functions are defined in evaluatedModules.ts?
evaluatedModules.ts defines 1 function(s): normalizeModuleId.
What does evaluatedModules.ts depend on?
evaluatedModules.ts imports 11 module(s): DecodedMap, ResolvedResult, cleanUrl, constants.ts, decodeBase64, decoder.ts, slash, types.ts, and 3 more.
What files import evaluatedModules.ts?
evaluatedModules.ts is imported by 3 file(s): interceptor.ts, runner.ts, types.ts.
Where is evaluatedModules.ts in the architecture?
evaluatedModules.ts is located at packages/vite/src/module-runner/evaluatedModules.ts (domain: ModuleRunner, subdomain: SSRRuntime, directory: packages/vite/src/module-runner).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free