Home / File/ pluginConverter.ts — vite Source File

pluginConverter.ts — vite Source File

Architecture documentation for pluginConverter.ts, a typescript file in the vite codebase. 3 imports, 1 dependents.

File typescript DependencyOptimizer Scanner 3 imports 1 dependents 6 functions

Entity Profile

Dependency Diagram

graph LR
  b8dcab0c_e45e_1664_f34c_62cebf0403f4["pluginConverter.ts"]
  51e96894_3556_ed5c_1ede_97d449867adf["node:path"]
  b8dcab0c_e45e_1664_f34c_62cebf0403f4 --> 51e96894_3556_ed5c_1ede_97d449867adf
  ad02d466_758f_96b8_f6f8_1ea08b652ceb["esbuild"]
  b8dcab0c_e45e_1664_f34c_62cebf0403f4 --> ad02d466_758f_96b8_f6f8_1ea08b652ceb
  693ca867_249b_3e5a_0ce1_8930413b7fcd["rolldown"]
  b8dcab0c_e45e_1664_f34c_62cebf0403f4 --> 693ca867_249b_3e5a_0ce1_8930413b7fcd
  7da774f9_eca5_d54e_6e01_6bee7d460a2b["config.ts"]
  7da774f9_eca5_d54e_6e01_6bee7d460a2b --> b8dcab0c_e45e_1664_f34c_62cebf0403f4
  style b8dcab0c_e45e_1664_f34c_62cebf0403f4 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { dirname } from 'node:path'
import type * as esbuild from 'esbuild'
import type {
  ImportKind,
  LoadResult,
  PartialResolvedId,
  PluginContext,
  ResolveIdResult,
  Plugin as RolldownPlugin,
  RolldownPluginOption,
} from 'rolldown'

type MaybePromise<T> = T | Promise<T>
type EsbuildOnResolveCallback = (
  args: esbuild.OnResolveArgs,
) => MaybePromise<esbuild.OnResolveResult | null | undefined>
type EsbuildOnLoadCallback = (
  args: esbuild.OnLoadArgs,
) => MaybePromise<esbuild.OnLoadResult | null | undefined>
type ResolveIdHandler = (
  this: PluginContext,
  id: string,
  importer: string | undefined,
  opts: { kind: ImportKind },
) => MaybePromise<
  | (PartialResolvedId & { namespace?: string })
  | Exclude<ResolveIdResult, PartialResolvedId>
>
type LoadHandler = (this: PluginContext, id: string) => MaybePromise<LoadResult>

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
                ? [
                    {
// ... (252 more lines)

Subdomains

Dependencies

  • esbuild
  • node:path
  • rolldown

Frequently Asked Questions

What does pluginConverter.ts do?
pluginConverter.ts is a source file in the vite codebase, written in typescript. It belongs to the DependencyOptimizer domain, Scanner subdomain.
What functions are defined in pluginConverter.ts?
pluginConverter.ts defines 6 function(s): args, convertEsbuildPluginToRolldownPlugin, createLoadHandler, createResolveIdHandler, id, idToPathAndNamespace.
What does pluginConverter.ts depend on?
pluginConverter.ts imports 3 module(s): esbuild, node:path, rolldown.
What files import pluginConverter.ts?
pluginConverter.ts is imported by 1 file(s): config.ts.
Where is pluginConverter.ts in the architecture?
pluginConverter.ts is located at packages/vite/src/node/optimizer/pluginConverter.ts (domain: DependencyOptimizer, subdomain: Scanner, directory: packages/vite/src/node/optimizer).

Analyze Your Own Codebase

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

Try Supermodel Free