Home / Function/ createWorkerTransport() — vite Function Reference

createWorkerTransport() — vite Function Reference

Architecture documentation for the createWorkerTransport() function in server-worker-runner.spec.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  81e5b879_3bdb_6a12_d9b1_daea8e2beb81["createWorkerTransport()"]
  8cd46fdb_679a_7d1f_531c_774b779345ea["server-worker-runner.spec.ts"]
  81e5b879_3bdb_6a12_d9b1_daea8e2beb81 -->|defined in| 8cd46fdb_679a_7d1f_531c_774b779345ea
  style 81e5b879_3bdb_6a12_d9b1_daea8e2beb81 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/ssr/runtime/__tests__/server-worker-runner.spec.ts lines 7–58

const createWorkerTransport = (worker: Worker): HotChannel => {
  const handlerToWorkerListener = new WeakMap<
    HotChannelListener,
    (value: HotPayload) => void
  >()
  const client = {
    send(payload: HotPayload) {
      worker.postMessage(payload)
    },
  }

  return {
    send: (data) => worker.postMessage(data),
    on: (event: string, handler: HotChannelListener) => {
      // client is already connected
      if (event === 'vite:client:connect') return
      if (event === 'vite:client:disconnect') {
        const listener = () => {
          handler(undefined, client)
        }
        handlerToWorkerListener.set(handler, listener)
        worker.on('exit', listener)
        return
      }

      const listener = (value: HotPayload) => {
        if (value.type === 'custom' && value.event === event) {
          handler(value.data, client)
        }
      }
      handlerToWorkerListener.set(handler, listener)
      worker.on('message', listener)
    },
    off: (event, handler: HotChannelListener) => {
      if (event === 'vite:client:connect') return
      if (event === 'vite:client:disconnect') {
        const listener = handlerToWorkerListener.get(handler)
        if (listener) {
          worker.off('exit', listener)
          handlerToWorkerListener.delete(handler)
        }
        return
      }

      const listener = handlerToWorkerListener.get(handler)
      if (listener) {
        worker.off('message', listener)
        handlerToWorkerListener.delete(handler)
      }
    },
  }
}

Domain

Subdomains

Frequently Asked Questions

What does createWorkerTransport() do?
createWorkerTransport() is a function in the vite codebase, defined in packages/vite/src/node/ssr/runtime/__tests__/server-worker-runner.spec.ts.
Where is createWorkerTransport() defined?
createWorkerTransport() is defined in packages/vite/src/node/ssr/runtime/__tests__/server-worker-runner.spec.ts at line 7.

Analyze Your Own Codebase

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

Try Supermodel Free