Home / Function/ normalizeModuleRunnerTransport() — vite Function Reference

normalizeModuleRunnerTransport() — vite Function Reference

Architecture documentation for the normalizeModuleRunnerTransport() function in moduleRunnerTransport.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  f9bbebfe_9cba_07d9_a804_95e8776eaea9["normalizeModuleRunnerTransport()"]
  a469d907_868c_e1c2_3f7a_7aaf42cc6a7a["moduleRunnerTransport.ts"]
  f9bbebfe_9cba_07d9_a804_95e8776eaea9 -->|defined in| a469d907_868c_e1c2_3f7a_7aaf42cc6a7a
  8db7bac6_7d0a_15b2_5870_1fd0e71b9cf5["constructor()"]
  8db7bac6_7d0a_15b2_5870_1fd0e71b9cf5 -->|calls| f9bbebfe_9cba_07d9_a804_95e8776eaea9
  9eeb38dd_72eb_bc2e_d762_af3b2d96d316["createInvokeableTransport()"]
  f9bbebfe_9cba_07d9_a804_95e8776eaea9 -->|calls| 9eeb38dd_72eb_bc2e_d762_af3b2d96d316
  style f9bbebfe_9cba_07d9_a804_95e8776eaea9 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/shared/moduleRunnerTransport.ts lines 187–256

export const normalizeModuleRunnerTransport = (
  transport: ModuleRunnerTransport,
): NormalizedModuleRunnerTransport => {
  const invokeableTransport = createInvokeableTransport(transport)

  let isConnected = !invokeableTransport.connect
  let connectingPromise: Promise<void> | undefined

  return {
    ...(transport as Omit<ModuleRunnerTransport, 'connect'>),
    ...(invokeableTransport.connect
      ? {
          async connect(onMessage) {
            if (isConnected) return
            if (connectingPromise) {
              await connectingPromise
              return
            }

            const maybePromise = invokeableTransport.connect!({
              onMessage: onMessage ?? (() => {}),
              onDisconnection() {
                isConnected = false
              },
            })
            if (maybePromise) {
              connectingPromise = maybePromise
              await connectingPromise
              connectingPromise = undefined
            }
            isConnected = true
          },
        }
      : {}),
    ...(invokeableTransport.disconnect
      ? {
          async disconnect() {
            if (!isConnected) return
            if (connectingPromise) {
              await connectingPromise
            }
            isConnected = false
            await invokeableTransport.disconnect!()
          },
        }
      : {}),
    async send(data) {
      if (!invokeableTransport.send) return

      if (!isConnected) {
        if (connectingPromise) {
          await connectingPromise
        } else {
          throw new Error('send was called before connect')
        }
      }
      await invokeableTransport.send(data)
    },
    async invoke(name, data) {
      if (!isConnected) {
        if (connectingPromise) {
          await connectingPromise
        } else {
          throw new Error('invoke was called before connect')
        }
      }
      return invokeableTransport.invoke(name, data)
    },
  }
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does normalizeModuleRunnerTransport() do?
normalizeModuleRunnerTransport() is a function in the vite codebase, defined in packages/vite/src/shared/moduleRunnerTransport.ts.
Where is normalizeModuleRunnerTransport() defined?
normalizeModuleRunnerTransport() is defined in packages/vite/src/shared/moduleRunnerTransport.ts at line 187.
What does normalizeModuleRunnerTransport() call?
normalizeModuleRunnerTransport() calls 1 function(s): createInvokeableTransport.
What calls normalizeModuleRunnerTransport()?
normalizeModuleRunnerTransport() is called by 1 function(s): constructor.

Analyze Your Own Codebase

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

Try Supermodel Free