Home / Class/ SSRCompatModuleRunner Class — vite Architecture

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

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