Home / File/ worker.mjs — vite Source File

worker.mjs — vite Source File

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

File javascript ViteCore ConfigEngine 2 imports 3 functions

Entity Profile

Dependency Diagram

graph LR
  4467f80b_1e00_b0f4_f750_4811fbed3aa0["worker.mjs"]
  6dfa768a_efc1_54e5_b2de_25126290d891["node:worker_threads"]
  4467f80b_1e00_b0f4_f750_4811fbed3aa0 --> 6dfa768a_efc1_54e5_b2de_25126290d891
  9ca835cf_b489_83a7_91dd_00ed2ef4e6f6["module-runner"]
  4467f80b_1e00_b0f4_f750_4811fbed3aa0 --> 9ca835cf_b489_83a7_91dd_00ed2ef4e6f6
  style 4467f80b_1e00_b0f4_f750_4811fbed3aa0 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'

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('vite/module-runner').ModuleRunnerTransport} */
const messagePortTransport = {
  connect({ onMessage, onDisconnection }) {
    pPort.on('message', onMessage)
    pPort.on('close', onDisconnection)
  },
  send(data) {
    pPort.postMessage(data)
  },
}

const runner = new ModuleRunner(
  {
    transport: messagePortTransport,
    createImportMeta: createNodeImportMeta,
  },
  new ESModulesEvaluator(),
)

const channel = new BroadcastChannel('vite-worker')
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

  • module-runner
  • node:worker_threads

Frequently Asked Questions

What does worker.mjs do?
worker.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.mjs?
worker.mjs defines 3 function(s): channel, messagePortTransport.connect, messagePortTransport.send.
What does worker.mjs depend on?
worker.mjs imports 2 module(s): module-runner, node:worker_threads.
Where is worker.mjs in the architecture?
worker.mjs is located at packages/vite/src/node/ssr/runtime/__tests__/fixtures/worker.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