Home / Function/ convertEsbuildPluginToRolldownPlugin() — vite Function Reference

convertEsbuildPluginToRolldownPlugin() — vite Function Reference

Architecture documentation for the convertEsbuildPluginToRolldownPlugin() function in pluginConverter.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  9f6f139c_8c3d_b748_997b_26d6d6e67035["convertEsbuildPluginToRolldownPlugin()"]
  b8dcab0c_e45e_1664_f34c_62cebf0403f4["pluginConverter.ts"]
  9f6f139c_8c3d_b748_997b_26d6d6e67035 -->|defined in| b8dcab0c_e45e_1664_f34c_62cebf0403f4
  da55cbc2_af3e_f66d_6a2e_f785d784a425["applyDepOptimizationOptionCompat()"]
  da55cbc2_af3e_f66d_6a2e_f785d784a425 -->|calls| 9f6f139c_8c3d_b748_997b_26d6d6e67035
  eb06e8c3_f076_d27b_2e82_e6b6e87be239["createResolveIdHandler()"]
  9f6f139c_8c3d_b748_997b_26d6d6e67035 -->|calls| eb06e8c3_f076_d27b_2e82_e6b6e87be239
  428f2e15_3be7_8055_9526_1da80db25615["createLoadHandler()"]
  9f6f139c_8c3d_b748_997b_26d6d6e67035 -->|calls| 428f2e15_3be7_8055_9526_1da80db25615
  1cebaeb4_7ad4_b30a_cf3d_ce32068ff869["idToPathAndNamespace()"]
  9f6f139c_8c3d_b748_997b_26d6d6e67035 -->|calls| 1cebaeb4_7ad4_b30a_cf3d_ce32068ff869
  style 9f6f139c_8c3d_b748_997b_26d6d6e67035 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/optimizer/pluginConverter.ts lines 31–189

export function convertEsbuildPluginToRolldownPlugin(
  esbuildPlugin: esbuild.Plugin,
): RolldownPlugin {
  const onStartCallbacks: Array<() => void> = []
  const onEndCallbacks: Array<(buildResult: esbuild.BuildResult) => void> = []
  const onDisposeCallbacks: Array<() => void> = []
  let resolveIdHandlers: ResolveIdHandler[]
  let loadHandlers: LoadHandler[]

  let isSetupDone = false
  const setup = async (
    plugins: RolldownPluginOption[],
    platform: 'browser' | 'node' | 'neutral',
  ) => {
    const onResolveCallbacks: Array<
      [options: esbuild.OnResolveOptions, callback: EsbuildOnResolveCallback]
    > = []
    const onLoadCallbacks: Array<
      [options: esbuild.OnLoadOptions, callback: EsbuildOnLoadCallback]
    > = []

    const pluginBuild: esbuild.PluginBuild = {
      initialOptions: new Proxy(
        {
          platform,
          plugins:
            plugins?.flatMap((p) =>
              p && 'name' in p
                ? [
                    {
                      name: p.name,
                      // eslint-disable-next-line @typescript-eslint/no-empty-function
                      setup() {},
                    },
                  ]
                : [],
            ) ?? [],
        },
        {
          get(target, p, _receiver) {
            if (p in target) return (target as any)[p]
            throw new Error('Not implemented')
          },
        },
      ) as esbuild.BuildOptions,
      resolve() {
        throw new Error('Not implemented')
      },
      onStart(callback) {
        onStartCallbacks.push(callback)
      },
      onEnd(callback) {
        onEndCallbacks.push(callback)
      },
      onResolve(options, callback) {
        onResolveCallbacks.push([options, callback])
      },
      onLoad(options, callback) {
        onLoadCallbacks.push([options, callback])
      },
      onDispose(callback) {
        onDisposeCallbacks.push(callback)
      },
      get esbuild(): esbuild.PluginBuild['esbuild'] {
        throw new Error('Not implemented')
      },
      set esbuild(_: unknown) {
        throw new Error('Not implemented')
      },
    }

    await esbuildPlugin.setup(pluginBuild)

    resolveIdHandlers = onResolveCallbacks.map(([options, callback]) =>
      createResolveIdHandler(options, callback),
    )
    loadHandlers = onLoadCallbacks.map(([options, callback]) =>
      createLoadHandler(options, callback),
    )
    isSetupDone = true
  }

Subdomains

Frequently Asked Questions

What does convertEsbuildPluginToRolldownPlugin() do?
convertEsbuildPluginToRolldownPlugin() is a function in the vite codebase, defined in packages/vite/src/node/optimizer/pluginConverter.ts.
Where is convertEsbuildPluginToRolldownPlugin() defined?
convertEsbuildPluginToRolldownPlugin() is defined in packages/vite/src/node/optimizer/pluginConverter.ts at line 31.
What does convertEsbuildPluginToRolldownPlugin() call?
convertEsbuildPluginToRolldownPlugin() calls 3 function(s): createLoadHandler, createResolveIdHandler, idToPathAndNamespace.
What calls convertEsbuildPluginToRolldownPlugin()?
convertEsbuildPluginToRolldownPlugin() is called by 1 function(s): applyDepOptimizationOptionCompat.

Analyze Your Own Codebase

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

Try Supermodel Free