dynamicImportVars.ts — vite Source File
Architecture documentation for dynamicImportVars.ts, a typescript file in the vite codebase. 22 imports, 2 dependents.
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
Functions
Dependencies
- Environment
- ResolvedConfig
- config.ts
- constants.ts
- createBackCompatIdResolver
- environment.ts
- es-module-lexer
- experimental
- filter
- idResolver.ts
- importAnalysis.ts
- magic-string
- node:path
- normalizePath
- parseAst
- perEnvironmentPlugin
- perEnvironmentState
- plugin-dynamic-import-vars
- plugin.ts
- transformStableResult
- utils.ts
- worker.ts
Imported By
Source
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