Home / Function/ transformGlobImport() — vite Function Reference

transformGlobImport() — vite Function Reference

Architecture documentation for the transformGlobImport() function in importMetaGlob.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  a6007673_0baa_9293_6af0_ff74ed056981["transformGlobImport()"]
  b68d9c02_4026_8cfa_8eb1_35ec4a8f23cb["importMetaGlob.ts"]
  a6007673_0baa_9293_6af0_ff74ed056981 -->|defined in| b68d9c02_4026_8cfa_8eb1_35ec4a8f23cb
  01ea698c_723c_af06_e469_c7d7c469b6bb["rolldownScanPlugin()"]
  01ea698c_723c_af06_e469_c7d7c469b6bb -->|calls| a6007673_0baa_9293_6af0_ff74ed056981
  c5cada27_b602_8e85_58cc_b778b0c71441["importGlobPlugin()"]
  c5cada27_b602_8e85_58cc_b778b0c71441 -->|calls| a6007673_0baa_9293_6af0_ff74ed056981
  f094d39d_cd97_2548_86c3_38902c2f3301["slash()"]
  a6007673_0baa_9293_6af0_ff74ed056981 -->|calls| f094d39d_cd97_2548_86c3_38902c2f3301
  fc2f4c59_b983_3dec_cceb_38cdd7d53c60["isVirtualModule()"]
  a6007673_0baa_9293_6af0_ff74ed056981 -->|calls| fc2f4c59_b983_3dec_cceb_38cdd7d53c60
  e4ded9fb_6262_73a6_ae73_068c08e2b994["parseImportGlob()"]
  a6007673_0baa_9293_6af0_ff74ed056981 -->|calls| e4ded9fb_6262_73a6_ae73_068c08e2b994
  b2546add_ed59_4395_9214_0c3fc0d07b41["getCommonBase()"]
  a6007673_0baa_9293_6af0_ff74ed056981 -->|calls| b2546add_ed59_4395_9214_0c3fc0d07b41
  style a6007673_0baa_9293_6af0_ff74ed056981 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/plugins/importMetaGlob.ts lines 412–599

export async function transformGlobImport(
  code: string,
  id: string,
  root: string,
  resolveId: IdResolver,
  restoreQueryExtension = false,
  logger?: Logger,
): Promise<TransformGlobImportResult | null> {
  id = slash(id)
  root = slash(root)
  const isVirtual = isVirtualModule(id)
  const dir = isVirtual ? undefined : dirname(id)
  const matches = await parseImportGlob(
    code,
    isVirtual ? undefined : id,
    root,
    resolveId,
    logger,
  )
  const matchedFiles = new Set<string>()

  if (!matches.length) return null

  const s = new MagicString(code)

  const staticImports = (
    await Promise.all(
      matches.map(
        async ({
          globsResolved,
          isRelative,
          options,
          index,
          start,
          end,
          onlyKeys,
          onlyValues,
        }) => {
          const cwd = getCommonBase(globsResolved) ?? root
          const files = (
            await glob(globsResolved, {
              absolute: true,
              cwd,
              dot: !!options.exhaustive,
              expandDirectories: false,
              ignore: options.exhaustive ? [] : ['**/node_modules/**'],
            })
          )
            .filter((file) => file !== id)
            .sort()

          const objectProps: string[] = []
          const staticImports: string[] = []

          const resolvePaths = (file: string) => {
            if (!dir) {
              if (!options.base && isRelative)
                throw new Error(
                  "In virtual modules, all globs must start with '/'",
                )
              const importPath = `/${relative(root, file)}`
              let filePath = options.base
                ? `${relative(posix.join(root, options.base), file)}`
                : importPath
              if (
                options.base &&
                !filePath.startsWith('./') &&
                !filePath.startsWith('../')
              ) {
                filePath = `./${filePath}`
              }
              return { filePath, importPath }
            }

            let importPath = relative(dir, file)
            if (!importPath.startsWith('./') && !importPath.startsWith('../')) {
              importPath = `./${importPath}`
            }

            let filePath: string
            if (options.base) {

Domain

Subdomains

Frequently Asked Questions

What does transformGlobImport() do?
transformGlobImport() is a function in the vite codebase, defined in packages/vite/src/node/plugins/importMetaGlob.ts.
Where is transformGlobImport() defined?
transformGlobImport() is defined in packages/vite/src/node/plugins/importMetaGlob.ts at line 412.
What does transformGlobImport() call?
transformGlobImport() calls 4 function(s): getCommonBase, isVirtualModule, parseImportGlob, slash.
What calls transformGlobImport()?
transformGlobImport() is called by 2 function(s): importGlobPlugin, rolldownScanPlugin.

Analyze Your Own Codebase

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

Try Supermodel Free