Home / File/ worker.invoke.mjs — vite Source File

worker.invoke.mjs — vite Source File

Architecture documentation for worker.invoke.mjs, a javascript file in the vite codebase. 3 imports, 0 dependents.

File javascript ViteCore ConfigEngine 3 imports 3 functions

Entity Profile

Dependency Diagram

graph LR
  b639e53c_3b14_1a24_88b7_fa09f3154fda["worker.invoke.mjs"]
  6dfa768a_efc1_54e5_b2de_25126290d891["node:worker_threads"]
  b639e53c_3b14_1a24_88b7_fa09f3154fda --> 6dfa768a_efc1_54e5_b2de_25126290d891
  9ca835cf_b489_83a7_91dd_00ed2ef4e6f6["module-runner"]
  b639e53c_3b14_1a24_88b7_fa09f3154fda --> 9ca835cf_b489_83a7_91dd_00ed2ef4e6f6
  30cf8c63_cbf8_e8bc_f0b6_84fb7d391fd1["birpc"]
  b639e53c_3b14_1a24_88b7_fa09f3154fda --> 30cf8c63_cbf8_e8bc_f0b6_84fb7d391fd1
  style b639e53c_3b14_1a24_88b7_fa09f3154fda fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

// @ts-check

import { BroadcastChannel, parentPort } from 'node:worker_threads'
import {
  ESModulesEvaluator,
  ModuleRunner,
  createNodeImportMeta,
} from 'vite/module-runner'
import { createBirpc } from 'birpc'

if (!parentPort) {
  throw new Error('File "worker.js" must be run in a worker thread')
}

/** @type {import('worker_threads').MessagePort} */
const pPort = parentPort

/** @type {import('birpc').BirpcReturn<{ invoke: (data: any) => any }>} */
const rpc = createBirpc(
  {},
  {
    post: (data) => pPort.postMessage(data),
    on: (data) => pPort.on('message', data),
  },
)

const runner = new ModuleRunner(
  {
    transport: {
      invoke(data) {
        return rpc.invoke(data)
      },
    },
    createImportMeta: createNodeImportMeta,
    hmr: false,
  },
  new ESModulesEvaluator(),
)

const channel = new BroadcastChannel('vite-worker:invoke')
channel.onmessage = async (message) => {
  try {
    const mod = await runner.import(message.data.id)
    channel.postMessage({ result: mod.default })
  } catch (e) {
    channel.postMessage({ error: e.stack })
  }
}
parentPort.postMessage('ready')

Domain

Subdomains

Dependencies

  • birpc
  • module-runner
  • node:worker_threads

Frequently Asked Questions

What does worker.invoke.mjs do?
worker.invoke.mjs is a source file in the vite codebase, written in javascript. It belongs to the ViteCore domain, ConfigEngine subdomain.
What functions are defined in worker.invoke.mjs?
worker.invoke.mjs defines 3 function(s): channel, rpc.on, rpc.post.
What does worker.invoke.mjs depend on?
worker.invoke.mjs imports 3 module(s): birpc, module-runner, node:worker_threads.
Where is worker.invoke.mjs in the architecture?
worker.invoke.mjs is located at packages/vite/src/node/ssr/runtime/__tests__/fixtures/worker.invoke.mjs (domain: ViteCore, subdomain: ConfigEngine, directory: packages/vite/src/node/ssr/runtime/__tests__/fixtures).

Analyze Your Own Codebase

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

Try Supermodel Free