Home / File/ dynamicImportVars.ts — vite Source File

dynamicImportVars.ts — vite Source File

Architecture documentation for dynamicImportVars.ts, a typescript file in the vite codebase. 22 imports, 2 dependents.

File typescript PluginSystem LegacySupport 22 imports 2 dependents 4 functions

Entity Profile

Dependency Diagram

graph LR
  e962fae7_53df_5265_a6c6_b9cfe28d06e1["dynamicImportVars.ts"]
  5abb8c87_ffcb_f2d4_7421_e36705d9e5c7["plugin.ts"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> 5abb8c87_ffcb_f2d4_7421_e36705d9e5c7
  dfa3f5a8_b519_cb65_4b7e_9d4824406fd4["perEnvironmentPlugin"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> dfa3f5a8_b519_cb65_4b7e_9d4824406fd4
  7da774f9_eca5_d54e_6e01_6bee7d460a2b["config.ts"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> 7da774f9_eca5_d54e_6e01_6bee7d460a2b
  eb5604c2_58e1_1c00_5a1a_5d97ea5236ad["ResolvedConfig"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> eb5604c2_58e1_1c00_5a1a_5d97ea5236ad
  545df65b_7f67_94d3_e2e8_a592d5e64b8f["constants.ts"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> 545df65b_7f67_94d3_e2e8_a592d5e64b8f
  55b2a3d2_8787_d760_1a76_1d2854a39807["idResolver.ts"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> 55b2a3d2_8787_d760_1a76_1d2854a39807
  7ee86c21_2650_c869_2f5d_720909757e00["createBackCompatIdResolver"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> 7ee86c21_2650_c869_2f5d_720909757e00
  031bc221_67a8_c579_f2bf_bb30a08beeb2["utils.ts"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> 031bc221_67a8_c579_f2bf_bb30a08beeb2
  a4adb1a7_cf54_091f_eb63_8217e684a8e1["normalizePath"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> a4adb1a7_cf54_091f_eb63_8217e684a8e1
  6841c80c_8127_d8ce_ac5d_bb48de9eee42["transformStableResult"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> 6841c80c_8127_d8ce_ac5d_bb48de9eee42
  0c33ff62_54e9_5c90_902b_b26728e71fca["environment.ts"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> 0c33ff62_54e9_5c90_902b_b26728e71fca
  7e6f7c83_3515_4e0d_5362_4eb9515b4a86["Environment"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> 7e6f7c83_3515_4e0d_5362_4eb9515b4a86
  16a00926_f0e9_60f1_3006_9132a6d78745["perEnvironmentState"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> 16a00926_f0e9_60f1_3006_9132a6d78745
  5a7b98e4_4eb1_dfca_508b_2d43e2a077e6["importAnalysis.ts"]
  e962fae7_53df_5265_a6c6_b9cfe28d06e1 --> 5a7b98e4_4eb1_dfca_508b_2d43e2a077e6
  style e962fae7_53df_5265_a6c6_b9cfe28d06e1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { posix } from 'node:path'
import MagicString from 'magic-string'
import { init, parse as parseImports } from 'es-module-lexer'
import type { ImportSpecifier } from 'es-module-lexer'
import { parseAst } from 'rolldown/parseAst'
import { dynamicImportToGlob } from '@rollup/plugin-dynamic-import-vars'
import { viteDynamicImportVarsPlugin as nativeDynamicImportVarsPlugin } from 'rolldown/experimental'
import { exactRegex } from 'rolldown/filter'
import { type Plugin, perEnvironmentPlugin } from '../plugin'
import type { ResolvedConfig } from '../config'
import { CLIENT_ENTRY } from '../constants'
import { createBackCompatIdResolver } from '../idResolver'
import {
  createFilter,
  normalizePath,
  rawRE,
  requestQueryMaybeEscapedSplitRE,
  requestQuerySplitRE,
  transformStableResult,
  urlRE,
} from '../utils'
import type { Environment } from '../environment'
import { perEnvironmentState } from '../environment'
import { hasViteIgnoreRE } from './importAnalysis'
import { workerOrSharedWorkerRE } from './worker'

export const dynamicImportHelperId = '\0vite/dynamic-import-helper.js'

const relativePathRE = /^\.{1,2}\//
// fast path to check if source contains a dynamic import. we check for a
// trailing slash too as a dynamic import statement can have comments between
// the `import` and the `(`.
const hasDynamicImportRE = /\bimport\s*[(/]/

interface DynamicImportRequest {
  query?: string | Record<string, string>
  import?: string
}

interface DynamicImportPattern {
  globParams: DynamicImportRequest | null
  userPattern: string
  rawPattern: string
}

const dynamicImportHelper = (
  glob: Record<string, any>,
  path: string,
  segs: number,
) => {
  const v = glob[path]
  if (v) {
    return typeof v === 'function' ? v() : Promise.resolve(v)
  }
  return new Promise((_, reject) => {
    ;(typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
      reject.bind(
        null,
        new Error(
          'Unknown variable dynamic import: ' +
// ... (239 more lines)

Domain

Subdomains

Frequently Asked Questions

What does dynamicImportVars.ts do?
dynamicImportVars.ts is a source file in the vite codebase, written in typescript. It belongs to the PluginSystem domain, LegacySupport subdomain.
What functions are defined in dynamicImportVars.ts?
dynamicImportVars.ts defines 4 function(s): dynamicImportHelper, dynamicImportVarsPlugin, parseDynamicImportPattern, transformDynamicImport.
What does dynamicImportVars.ts depend on?
dynamicImportVars.ts imports 22 module(s): Environment, ResolvedConfig, config.ts, constants.ts, createBackCompatIdResolver, environment.ts, es-module-lexer, experimental, and 14 more.
What files import dynamicImportVars.ts?
dynamicImportVars.ts is imported by 2 file(s): index.ts, parse.spec.ts.
Where is dynamicImportVars.ts in the architecture?
dynamicImportVars.ts is located at packages/vite/src/node/plugins/dynamicImportVars.ts (domain: PluginSystem, subdomain: LegacySupport, directory: packages/vite/src/node/plugins).

Analyze Your Own Codebase

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

Try Supermodel Free