Home / File/ fetchModule.ts — vite Source File

fetchModule.ts — vite Source File

Architecture documentation for fetchModule.ts, a typescript file in the vite codebase. 16 imports, 1 dependents.

File typescript ViteCore ConfigEngine 16 imports 1 dependents 2 functions

Entity Profile

Dependency Diagram

graph LR
  4b293f94_dc8f_b625_ac09_35b43008310b["fetchModule.ts"]
  dcff87b0_a8ea_57a2_3b29_a7b8f19986f3["resolve.ts"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> dcff87b0_a8ea_57a2_3b29_a7b8f19986f3
  310b19b4_2716_b45b_716d_edfca3064152["tryNodeResolve"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> 310b19b4_2716_b45b_716d_edfca3064152
  031bc221_67a8_c579_f2bf_bb30a08beeb2["utils.ts"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> 031bc221_67a8_c579_f2bf_bb30a08beeb2
  5d2580c9_3b65_7396_afe1_ab2aa13f8ed9["isBuiltin"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> 5d2580c9_3b65_7396_afe1_ab2aa13f8ed9
  23257aa1_5e3f_7e6e_1b43_875b139e4ec5["isExternalUrl"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> 23257aa1_5e3f_7e6e_1b43_875b139e4ec5
  a3a231c1_e1f6_f7c0_6d09_1d3c7fbf6ac6["isFilePathESM"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> a3a231c1_e1f6_f7c0_6d09_1d3c7fbf6ac6
  abfc9e70_3c15_b3f0_a595_3cf27afb7e64["utils.ts"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> abfc9e70_3c15_b3f0_a595_3cf27afb7e64
  795dec35_22f9_80f5_ccab_9c2d170af0d3["unwrapId"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> 795dec35_22f9_80f5_ccab_9c2d170af0d3
  ffe942a0_fdea_ef58_0f68_6f1fec25f285["constants.ts"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> ffe942a0_fdea_ef58_0f68_6f1fec25f285
  18244f7c_8357_ba88_c896_32c6447f1faf["sourcemap.ts"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> 18244f7c_8357_ba88_c896_32c6447f1faf
  0857a370_8db0_3f2b_ac58_b48c57bd6a12["genSourceMapUrl"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> 0857a370_8db0_3f2b_ac58_b48c57bd6a12
  7916c84f_5621_2b3b_d220_a171ebce997f["environment.ts"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> 7916c84f_5621_2b3b_d220_a171ebce997f
  f634223d_ed8e_a65b_08f8_a839ec17994a["DevEnvironment"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> f634223d_ed8e_a65b_08f8_a839ec17994a
  6feed3e8_55b8_cce7_b5ef_e40b872585f7["node:url"]
  4b293f94_dc8f_b625_ac09_35b43008310b --> 6feed3e8_55b8_cce7_b5ef_e40b872585f7
  style 4b293f94_dc8f_b625_ac09_35b43008310b fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { pathToFileURL } from 'node:url'
import type { FetchResult } from 'vite/module-runner'
import type { EnvironmentModuleNode, TransformResult } from '..'
import { tryNodeResolve } from '../plugins/resolve'
import { isBuiltin, isExternalUrl, isFilePathESM } from '../utils'
import { unwrapId } from '../../shared/utils'
import {
  MODULE_RUNNER_SOURCEMAPPING_SOURCE,
  SOURCEMAPPING_URL,
} from '../../shared/constants'
import { genSourceMapUrl } from '../server/sourcemap'
import type { DevEnvironment } from '../server/environment'

export interface FetchModuleOptions {
  cached?: boolean
  inlineSourceMap?: boolean
  startOffset?: number
}

/**
 * Fetch module information for Vite runner.
 * @experimental
 */
export async function fetchModule(
  environment: DevEnvironment,
  url: string,
  importer?: string,
  options: FetchModuleOptions = {},
): Promise<FetchResult> {
  if (
    url.startsWith('data:') ||
    isBuiltin(environment.config.resolve.builtins, url)
  ) {
    return { externalize: url, type: 'builtin' }
  }

  // handle file urls from not statically analyzable dynamic import
  const isFileUrl = url.startsWith('file://')

  if (isExternalUrl(url) && !isFileUrl) {
    return { externalize: url, type: 'network' }
  }

  // if there is no importer, the file is an entry point
  // entry points are always internalized
  if (!isFileUrl && importer && url[0] !== '.' && url[0] !== '/') {
    const { isProduction, root } = environment.config
    const { externalConditions, dedupe, preserveSymlinks } =
      environment.config.resolve

    const resolved = tryNodeResolve(url, importer, {
      mainFields: ['main'],
      conditions: externalConditions,
      externalConditions,
      external: [],
      noExternal: [],
      extensions: ['.js', '.cjs', '.json'],
      dedupe,
      preserveSymlinks,
      tsconfigPaths: false,
// ... (94 more lines)

Domain

Subdomains

Frequently Asked Questions

What does fetchModule.ts do?
fetchModule.ts is a source file in the vite codebase, written in typescript. It belongs to the ViteCore domain, ConfigEngine subdomain.
What functions are defined in fetchModule.ts?
fetchModule.ts defines 2 function(s): fetchModule, inlineSourceMap.
What does fetchModule.ts depend on?
fetchModule.ts imports 16 module(s): .., DevEnvironment, constants.ts, environment.ts, genSourceMapUrl, isBuiltin, isExternalUrl, isFilePathESM, and 8 more.
What files import fetchModule.ts?
fetchModule.ts is imported by 1 file(s): environment.ts.
Where is fetchModule.ts in the architecture?
fetchModule.ts is located at packages/vite/src/node/ssr/fetchModule.ts (domain: ViteCore, subdomain: ConfigEngine, directory: packages/vite/src/node/ssr).

Analyze Your Own Codebase

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

Try Supermodel Free