esmEvaluator.ts — vite Source File
Architecture documentation for esmEvaluator.ts, a typescript file in the vite codebase. 7 imports, 1 dependents.
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
Classes
Dependencies
Imported By
Source
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