SSRCompatModuleRunner Class — vite Architecture
Architecture documentation for the SSRCompatModuleRunner class in ssrModuleLoader.ts from the vite codebase.
Entity Profile
Dependency Diagram
graph TD 2f2ffab9_0c5f_ca70_13c6_2a3b12222c1a["SSRCompatModuleRunner"] b7a0ff91_0490_7aed_6486_84da56e8e026["ssrModuleLoader.ts"] 2f2ffab9_0c5f_ca70_13c6_2a3b12222c1a -->|defined in| b7a0ff91_0490_7aed_6486_84da56e8e026 f297b990_b9f9_4d71_aa05_07419a0a6688["constructor()"] 2f2ffab9_0c5f_ca70_13c6_2a3b12222c1a -->|method| f297b990_b9f9_4d71_aa05_07419a0a6688 db0aa369_b936_6eb9_c3a5_194f8492fe5b["directRequest()"] 2f2ffab9_0c5f_ca70_13c6_2a3b12222c1a -->|method| db0aa369_b936_6eb9_c3a5_194f8492fe5b
Relationship Graph
Source Code
packages/vite/src/node/ssr/ssrModuleLoader.ts lines 69–110
class SSRCompatModuleRunner extends ModuleRunner {
constructor(private environment: DevEnvironment) {
super(
{
transport: createServerModuleRunnerTransport({
channel: environment.hot as NormalizedServerHotChannel,
}),
createImportMeta: createNodeImportMeta,
sourcemapInterceptor: false,
hmr: false,
},
new ESModulesEvaluator(),
)
}
protected override async directRequest(
url: string,
mod: EvaluatedModuleNode,
callstack: string[],
): Promise<any> {
const id = mod.meta && 'id' in mod.meta && mod.meta.id
// serverId doesn't exist for external modules
if (!id) {
return super.directRequest(url, mod, callstack)
}
const viteMod = this.environment.moduleGraph.getModuleById(id)
if (!viteMod) {
return super.directRequest(id, mod, callstack)
}
try {
const exports = await super.directRequest(id, mod, callstack)
viteMod.ssrModule = exports
return exports
} catch (err) {
viteMod.ssrError = err
throw err
}
}
}
Domain
Source
Frequently Asked Questions
What is the SSRCompatModuleRunner class?
SSRCompatModuleRunner is a class in the vite codebase, defined in packages/vite/src/node/ssr/ssrModuleLoader.ts.
Where is SSRCompatModuleRunner defined?
SSRCompatModuleRunner is defined in packages/vite/src/node/ssr/ssrModuleLoader.ts at line 69.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free