Home / File/ esmEvaluator.ts — vite Source File

esmEvaluator.ts — vite Source File

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

File typescript ModuleRunner SSRRuntime 7 imports 1 dependents 1 classes

Entity Profile

Dependency Diagram

graph LR
  18923f93_cfa8_2d16_b71c_25bd600b0c6a["esmEvaluator.ts"]
  abfc9e70_3c15_b3f0_a595_3cf27afb7e64["utils.ts"]
  18923f93_cfa8_2d16_b71c_25bd600b0c6a --> abfc9e70_3c15_b3f0_a595_3cf27afb7e64
  bc4936d5_9806_eecc_f112_eaccbd5e9e22["AsyncFunction"]
  18923f93_cfa8_2d16_b71c_25bd600b0c6a --> bc4936d5_9806_eecc_f112_eaccbd5e9e22
  5e52ec6f_63e2_b740_3c2e_d26349936491["getAsyncFunctionDeclarationPaddingLineCount"]
  18923f93_cfa8_2d16_b71c_25bd600b0c6a --> 5e52ec6f_63e2_b740_3c2e_d26349936491
  f2a679fd_2590_a443_0e85_9ad632d972ea["constants.ts"]
  18923f93_cfa8_2d16_b71c_25bd600b0c6a --> f2a679fd_2590_a443_0e85_9ad632d972ea
  bf48f7e9_65f6_54c3_7dce_f44769180bd7["types.ts"]
  18923f93_cfa8_2d16_b71c_25bd600b0c6a --> bf48f7e9_65f6_54c3_7dce_f44769180bd7
  c5340d3a_575f_78ea_3039_ccc5d90d87cc["ModuleEvaluator"]
  18923f93_cfa8_2d16_b71c_25bd600b0c6a --> c5340d3a_575f_78ea_3039_ccc5d90d87cc
  9408a75f_6e63_874d_d8a6_c580bcca145c["ModuleRunnerContext"]
  18923f93_cfa8_2d16_b71c_25bd600b0c6a --> 9408a75f_6e63_874d_d8a6_c580bcca145c
  29e248d2_9983_1037_00e6_8bcd9ee87840["runner.ts"]
  29e248d2_9983_1037_00e6_8bcd9ee87840 --> 18923f93_cfa8_2d16_b71c_25bd600b0c6a
  style 18923f93_cfa8_2d16_b71c_25bd600b0c6a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import {
  AsyncFunction,
  getAsyncFunctionDeclarationPaddingLineCount,
} from '../shared/utils'
import {
  ssrDynamicImportKey,
  ssrExportAllKey,
  ssrExportNameKey,
  ssrImportKey,
  ssrImportMetaKey,
  ssrModuleExportsKey,
} from './constants'
import type { ModuleEvaluator, ModuleRunnerContext } from './types'

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

Subdomains

Frequently Asked Questions

What does esmEvaluator.ts do?
esmEvaluator.ts is a source file in the vite codebase, written in typescript. It belongs to the ModuleRunner domain, SSRRuntime subdomain.
What does esmEvaluator.ts depend on?
esmEvaluator.ts imports 7 module(s): AsyncFunction, ModuleEvaluator, ModuleRunnerContext, constants.ts, getAsyncFunctionDeclarationPaddingLineCount, types.ts, utils.ts.
What files import esmEvaluator.ts?
esmEvaluator.ts is imported by 1 file(s): runner.ts.
Where is esmEvaluator.ts in the architecture?
esmEvaluator.ts is located at packages/vite/src/module-runner/esmEvaluator.ts (domain: ModuleRunner, subdomain: SSRRuntime, directory: packages/vite/src/module-runner).

Analyze Your Own Codebase

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

Try Supermodel Free