Home / File/ runnerImport.ts — vite Source File

runnerImport.ts — vite Source File

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

File typescript ViteCore ConfigEngine 7 imports 2 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  b5e1db85_5394_4902_e419_6145447db3eb["runnerImport.ts"]
  7da774f9_eca5_d54e_6e01_6bee7d460a2b["config.ts"]
  b5e1db85_5394_4902_e419_6145447db3eb --> 7da774f9_eca5_d54e_6e01_6bee7d460a2b
  6729b047_29e8_ba18_f1ca_c87655a130d3["InlineConfig"]
  b5e1db85_5394_4902_e419_6145447db3eb --> 6729b047_29e8_ba18_f1ca_c87655a130d3
  58c4a210_68fe_1b4d_ed49_d59203f97ef1["resolveConfig"]
  b5e1db85_5394_4902_e419_6145447db3eb --> 58c4a210_68fe_1b4d_ed49_d59203f97ef1
  e21da89c_08b2_d4be_4023_7ef3ad334bdb["runnableEnvironment.ts"]
  b5e1db85_5394_4902_e419_6145447db3eb --> e21da89c_08b2_d4be_4023_7ef3ad334bdb
  197f4a26_efd8_e49d_88ae_a9f5707d4b33["createRunnableDevEnvironment"]
  b5e1db85_5394_4902_e419_6145447db3eb --> 197f4a26_efd8_e49d_88ae_a9f5707d4b33
  031bc221_67a8_c579_f2bf_bb30a08beeb2["utils.ts"]
  b5e1db85_5394_4902_e419_6145447db3eb --> 031bc221_67a8_c579_f2bf_bb30a08beeb2
  657661b0_3b17_9113_8464_fda5dfafd706["mergeConfig"]
  b5e1db85_5394_4902_e419_6145447db3eb --> 657661b0_3b17_9113_8464_fda5dfafd706
  8e5be4f8_47ed_25d2_b54a_787696793bf1["runnerImport.spec.ts"]
  8e5be4f8_47ed_25d2_b54a_787696793bf1 --> b5e1db85_5394_4902_e419_6145447db3eb
  7da774f9_eca5_d54e_6e01_6bee7d460a2b["config.ts"]
  7da774f9_eca5_d54e_6e01_6bee7d460a2b --> b5e1db85_5394_4902_e419_6145447db3eb
  style b5e1db85_5394_4902_e419_6145447db3eb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { InlineConfig } from '../config'
import { resolveConfig } from '../config'
import { createRunnableDevEnvironment } from '../server/environments/runnableEnvironment'
import { mergeConfig } from '../utils'

interface RunnerImportResult<T> {
  module: T
  dependencies: string[]
}

/**
 * Import any file using the default Vite environment.
 * @experimental
 */
export async function runnerImport<T>(
  moduleId: string,
  inlineConfig?: InlineConfig,
): Promise<RunnerImportResult<T>> {
  const isModuleSyncConditionEnabled = (await import('#module-sync-enabled'))
    .default
  const config = await resolveConfig(
    mergeConfig(inlineConfig || {}, {
      configFile: false,
      envDir: false,
      cacheDir: process.cwd(),
      environments: {
        inline: {
          consumer: 'server',
          dev: {
            moduleRunnerTransform: true,
          },
          resolve: {
            external: true,
            mainFields: [],
            conditions: [
              'node',
              ...(isModuleSyncConditionEnabled ? ['module-sync'] : []),
            ],
          },
        },
      },
    } satisfies InlineConfig),
    'serve',
  )
  const environment = createRunnableDevEnvironment('inline', config, {
    runnerOptions: {
      hmr: {
        logger: false,
      },
    },
    hot: false,
  })
  await environment.init()
  try {
    const module = await environment.runner.import(moduleId)
    const modules = [
      ...environment.runner.evaluatedModules.urlToIdModuleMap.values(),
    ]
    const dependencies = modules
      .filter((m) => {
        // ignore all externalized modules
        if (!m.meta || 'externalize' in m.meta) {
          return false
        }
        // ignore the current module
        return m.exports !== module
      })
      .map((m) => m.file)
    return {
      module,
      dependencies,
    }
  } finally {
    await environment.close()
  }
}

Domain

Subdomains

Functions

Frequently Asked Questions

What does runnerImport.ts do?
runnerImport.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 runnerImport.ts?
runnerImport.ts defines 1 function(s): runnerImport.
What does runnerImport.ts depend on?
runnerImport.ts imports 7 module(s): InlineConfig, config.ts, createRunnableDevEnvironment, mergeConfig, resolveConfig, runnableEnvironment.ts, utils.ts.
What files import runnerImport.ts?
runnerImport.ts is imported by 2 file(s): config.ts, runnerImport.spec.ts.
Where is runnerImport.ts in the architecture?
runnerImport.ts is located at packages/vite/src/node/ssr/runnerImport.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