Home / Function/ transform() — vite Function Reference

transform() — vite Function Reference

Architecture documentation for the transform() function in pluginContainer.ts from the vite codebase.

Function typescript ViteCore ConfigEngine calls 15 called by 3

Entity Profile

Dependency Diagram

graph TD
  dcf6f9d5_316b_0287_6984_8729d3e6c0aa["transform()"]
  285b1044_dd20_6f59_7cf5_0ad094eeacee["EnvironmentPluginContainer"]
  dcf6f9d5_316b_0287_6984_8729d3e6c0aa -->|defined in| 285b1044_dd20_6f59_7cf5_0ad094eeacee
  e1266b03_e0f1_635b_5994_e16420bc0263["transform()"]
  e1266b03_e0f1_635b_5994_e16420bc0263 -->|calls| dcf6f9d5_316b_0287_6984_8729d3e6c0aa
  94464637_e13d_00af_69ed_f92d6e6cc584["load()"]
  94464637_e13d_00af_69ed_f92d6e6cc584 -->|calls| dcf6f9d5_316b_0287_6984_8729d3e6c0aa
  bdac5327_5085_933f_41df_0fc270134a38["loadAndTransform()"]
  bdac5327_5085_933f_41df_0fc270134a38 -->|calls| dcf6f9d5_316b_0287_6984_8729d3e6c0aa
  dd2702df_a5d5_5b3e_9167_da46e2046bc0["_getAddedImports()"]
  dcf6f9d5_316b_0287_6984_8729d3e6c0aa -->|calls| dd2702df_a5d5_5b3e_9167_da46e2046bc0
  740b85c6_7fbd_cec6_1dc6_e19314ddecba["handleHookPromise()"]
  dcf6f9d5_316b_0287_6984_8729d3e6c0aa -->|calls| 740b85c6_7fbd_cec6_1dc6_e19314ddecba
  e1266b03_e0f1_635b_5994_e16420bc0263["transform()"]
  dcf6f9d5_316b_0287_6984_8729d3e6c0aa -->|calls| e1266b03_e0f1_635b_5994_e16420bc0263
  c42acd29_f3d2_c03f_de55_553d650a5fbf["throwClosedServerError()"]
  dcf6f9d5_316b_0287_6984_8729d3e6c0aa -->|calls| c42acd29_f3d2_c03f_de55_553d650a5fbf
  52da5dad_0e46_dc8f_fae0_b17308d247cc["getCachedFilterForPlugin()"]
  dcf6f9d5_316b_0287_6984_8729d3e6c0aa -->|calls| 52da5dad_0e46_dc8f_fae0_b17308d247cc
  3ac77420_8a39_d233_cf59_650944f4a9fa["isFutureDeprecationEnabled()"]
  dcf6f9d5_316b_0287_6984_8729d3e6c0aa -->|calls| 3ac77420_8a39_d233_cf59_650944f4a9fa
  43459d27_10c2_86a0_84b1_ecf5663dca68["warnFutureDeprecation()"]
  dcf6f9d5_316b_0287_6984_8729d3e6c0aa -->|calls| 43459d27_10c2_86a0_84b1_ecf5663dca68
  b7368e97_ca47_08c0_9ca2_49c2fa72e70d["_updateActiveInfo()"]
  dcf6f9d5_316b_0287_6984_8729d3e6c0aa -->|calls| b7368e97_ca47_08c0_9ca2_49c2fa72e70d
  58719e23_70bd_67e0_1ed8_f61c19ec725b["getHookHandler()"]
  dcf6f9d5_316b_0287_6984_8729d3e6c0aa -->|calls| 58719e23_70bd_67e0_1ed8_f61c19ec725b
  14c1c6b3_e4b1_62ce_7196_077ecd00ef57["timeFrom()"]
  dcf6f9d5_316b_0287_6984_8729d3e6c0aa -->|calls| 14c1c6b3_e4b1_62ce_7196_077ecd00ef57
  0850ad90_f980_60a3_ab1f_b17433109b74["prettifyUrl()"]
  dcf6f9d5_316b_0287_6984_8729d3e6c0aa -->|calls| 0850ad90_f980_60a3_ab1f_b17433109b74
  style dcf6f9d5_316b_0287_6984_8729d3e6c0aa fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/server/pluginContainer.ts lines 529–620

  async transform(
    code: string,
    id: string,
    options?: {
      inMap?: SourceDescription['map']
      moduleType?: string
    },
  ): Promise<{
    code: string
    map: SourceMap | { mappings: '' } | null
    moduleType?: ModuleType
  }> {
    let ssr = this.environment.config.consumer === 'server'
    const topLevelConfig = this.environment.getTopLevelConfig()
    const optionsWithSSR = options
      ? { ...options, ssr, moduleType: options.moduleType ?? 'js' }
      : { ssr, moduleType: 'js' }
    const inMap = options?.inMap

    const ctx = new TransformPluginContext(this, id, code, inMap as SourceMap)
    ctx._addedImports = this._getAddedImports(id)

    for (const plugin of this.getSortedPlugins('transform')) {
      if (this._closed && this.environment.config.dev.recoverable)
        throwClosedServerError()

      const filter = getCachedFilterForPlugin(plugin, 'transform')
      if (filter && !filter(id, code, optionsWithSSR.moduleType)) continue

      if (
        isFutureDeprecationEnabled(
          topLevelConfig,
          'removePluginHookSsrArgument',
        )
      ) {
        Object.defineProperty(optionsWithSSR, 'ssr', {
          get() {
            warnFutureDeprecation(
              topLevelConfig,
              'removePluginHookSsrArgument',
              `Used in plugin "${plugin.name}".`,
            )
            return ssr
          },
          set(v) {
            ssr = v
          },
        })
      }

      ctx._updateActiveInfo(plugin, id, code)
      const start = debugPluginTransform ? performance.now() : 0
      let result: TransformResult | string | undefined
      const handler = getHookHandler(plugin.transform)
      try {
        result = await this.handleHookPromise(
          handler.call(ctx as any, code, id, optionsWithSSR),
        )
      } catch (e) {
        ctx.error(e)
      }
      if (!result) continue
      debugPluginTransform?.(
        timeFrom(start),
        plugin.name,
        prettifyUrl(id, this.environment.config.root),
      )
      if (isObject(result)) {
        if (result.code !== undefined) {
          code = result.code as string
          if (result.map) {
            if (debugSourcemapCombine) {
              // @ts-expect-error inject plugin name for debug purpose
              result.map.name = plugin.name
            }
            ctx.sourcemapChain.push(result.map)
          }
        }
        if (result.moduleType !== undefined) {
          optionsWithSSR.moduleType = result.moduleType
        }

Domain

Subdomains

Frequently Asked Questions

What does transform() do?
transform() is a function in the vite codebase, defined in packages/vite/src/node/server/pluginContainer.ts.
Where is transform() defined?
transform() is defined in packages/vite/src/node/server/pluginContainer.ts at line 529.
What does transform() call?
transform() calls 15 function(s): _getAddedImports, _getCombinedSourcemap, _updateActiveInfo, _updateModuleInfo, error, getCachedFilterForPlugin, getHookHandler, handleHookPromise, and 7 more.
What calls transform()?
transform() is called by 3 function(s): load, loadAndTransform, transform.

Analyze Your Own Codebase

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

Try Supermodel Free