Home / Function/ createResolveIdHandler() — vite Function Reference

createResolveIdHandler() — vite Function Reference

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

Entity Profile

Dependency Diagram

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

Relationship Graph

Source Code

packages/vite/src/node/optimizer/pluginConverter.ts lines 191–244

function createResolveIdHandler(
  options: esbuild.OnResolveOptions,
  callback: EsbuildOnResolveCallback,
): ResolveIdHandler {
  return async function (id, importer, opts) {
    const [importerWithoutNamespace, importerNamespace] =
      idToPathAndNamespace(importer)
    if (
      options.namespace !== undefined &&
      options.namespace !== importerNamespace
    ) {
      return
    }
    if (options.filter !== undefined && !options.filter.test(id)) {
      return
    }

    const result = await callback({
      path: id,
      importer: importerWithoutNamespace ?? '',
      namespace: importerNamespace,
      resolveDir: dirname(importerWithoutNamespace ?? ''),
      kind:
        importerWithoutNamespace === undefined
          ? 'entry-point'
          : opts.kind === 'new-url' || opts.kind === 'hot-accept'
            ? 'dynamic-import'
            : opts.kind,
      pluginData: {},
      with: {},
    })
    if (!result) return
    if (result.errors && result.errors.length > 0) {
      throw new AggregateError(result.errors)
    }
    if (
      (result.warnings && result.warnings.length > 0) ||
      (result.watchDirs && result.watchDirs.length > 0) ||
      !result.path
    ) {
      throw new Error('not implemented')
    }
    for (const file of result.watchFiles ?? []) {
      this.addWatchFile(file)
    }

    return {
      id: result.namespace ? `${result.namespace}:${result.path}` : result.path,
      external: result.external,
      moduleSideEffects: result.sideEffects,
      namespace: result.namespace,
    }
  }
}

Subdomains

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free