Home / Class/ ESModulesEvaluator Class — vite Architecture

ESModulesEvaluator Class — vite Architecture

Architecture documentation for the ESModulesEvaluator class in esmEvaluator.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  691bc863_91cf_722d_7965_18911f33919d["ESModulesEvaluator"]
  18923f93_cfa8_2d16_b71c_25bd600b0c6a["esmEvaluator.ts"]
  691bc863_91cf_722d_7965_18911f33919d -->|defined in| 18923f93_cfa8_2d16_b71c_25bd600b0c6a
  b7db8dad_5087_15c0_4295_7bd1de779635["runInlinedModule()"]
  691bc863_91cf_722d_7965_18911f33919d -->|method| b7db8dad_5087_15c0_4295_7bd1de779635
  c112c314_3799_38c3_1ecc_d56fb8562692["runExternalModule()"]
  691bc863_91cf_722d_7965_18911f33919d -->|method| c112c314_3799_38c3_1ecc_d56fb8562692

Relationship Graph

Source Code

packages/vite/src/module-runner/esmEvaluator.ts lines 15–50

export class ESModulesEvaluator implements ModuleEvaluator {
  public readonly startOffset: number =
    getAsyncFunctionDeclarationPaddingLineCount()

  async runInlinedModule(
    context: ModuleRunnerContext,
    code: string,
  ): Promise<any> {
    // use AsyncFunction instead of vm module to support broader array of environments out of the box
    const initModule = new AsyncFunction(
      ssrModuleExportsKey,
      ssrImportMetaKey,
      ssrImportKey,
      ssrDynamicImportKey,
      ssrExportAllKey,
      ssrExportNameKey,
      // source map should already be inlined by Vite
      '"use strict";' + code,
    )

    await initModule(
      context[ssrModuleExportsKey],
      context[ssrImportMetaKey],
      context[ssrImportKey],
      context[ssrDynamicImportKey],
      context[ssrExportAllKey],
      context[ssrExportNameKey],
    )

    Object.seal(context[ssrModuleExportsKey])
  }

  runExternalModule(filepath: string): Promise<any> {
    return import(filepath)
  }
}

Domain

Frequently Asked Questions

What is the ESModulesEvaluator class?
ESModulesEvaluator is a class in the vite codebase, defined in packages/vite/src/module-runner/esmEvaluator.ts.
Where is ESModulesEvaluator defined?
ESModulesEvaluator is defined in packages/vite/src/module-runner/esmEvaluator.ts at line 15.

Analyze Your Own Codebase

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

Try Supermodel Free