Home / File/ workerImportMetaUrl.ts — vite Source File

workerImportMetaUrl.ts — vite Source File

Architecture documentation for workerImportMetaUrl.ts, a typescript file in the vite codebase. 30 imports, 2 dependents.

File typescript PluginSystem AssetManagement 30 imports 2 dependents 6 functions

Entity Profile

Dependency Diagram

graph LR
  f241296c_aba8_08ac_c4f9_aed85a9eb247["workerImportMetaUrl.ts"]
  7da774f9_eca5_d54e_6e01_6bee7d460a2b["config.ts"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> 7da774f9_eca5_d54e_6e01_6bee7d460a2b
  eb5604c2_58e1_1c00_5a1a_5d97ea5236ad["ResolvedConfig"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> eb5604c2_58e1_1c00_5a1a_5d97ea5236ad
  5abb8c87_ffcb_f2d4_7421_e36705d9e5c7["plugin.ts"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> 5abb8c87_ffcb_f2d4_7421_e36705d9e5c7
  1dc2cf7d_5d97_c778_8c33_6449a7607aef["Plugin"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> 1dc2cf7d_5d97_c778_8c33_6449a7607aef
  031bc221_67a8_c579_f2bf_bb30a08beeb2["utils.ts"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> 031bc221_67a8_c579_f2bf_bb30a08beeb2
  59716ea1_465c_8cb5_daff_ba167d787a1e["evalValue"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> 59716ea1_465c_8cb5_daff_ba167d787a1e
  1948f092_e5a5_076b_2f59_79ef22dec191["injectQuery"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> 1948f092_e5a5_076b_2f59_79ef22dec191
  6841c80c_8127_d8ce_ac5d_bb48de9eee42["transformStableResult"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> 6841c80c_8127_d8ce_ac5d_bb48de9eee42
  55b2a3d2_8787_d760_1a76_1d2854a39807["idResolver.ts"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> 55b2a3d2_8787_d760_1a76_1d2854a39807
  7ee86c21_2650_c869_2f5d_720909757e00["createBackCompatIdResolver"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> 7ee86c21_2650_c869_2f5d_720909757e00
  f584d0de_7321_2631_e67a_f513fe43468b["ResolveIdFn"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> f584d0de_7321_2631_e67a_f513fe43468b
  abfc9e70_3c15_b3f0_a595_3cf27afb7e64["utils.ts"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> abfc9e70_3c15_b3f0_a595_3cf27afb7e64
  10b9dea8_362c_1af2_93be_afa4dd9aed9e["cleanUrl"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> 10b9dea8_362c_1af2_93be_afa4dd9aed9e
  f094d39d_cd97_2548_86c3_38902c2f3301["slash"]
  f241296c_aba8_08ac_c4f9_aed85a9eb247 --> f094d39d_cd97_2548_86c3_38902c2f3301
  style f241296c_aba8_08ac_c4f9_aed85a9eb247 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import path from 'node:path'
import MagicString from 'magic-string'
import type { RollupError } from 'rolldown'
import { parseAstAsync } from 'rolldown/parseAst'
import { stripLiteral } from 'strip-literal'
import type { Expression, ExpressionStatement } from 'estree'
import type { ResolvedConfig } from '../config'
import type { Plugin } from '../plugin'
import { evalValue, injectQuery, transformStableResult } from '../utils'
import { createBackCompatIdResolver } from '../idResolver'
import type { ResolveIdFn } from '../idResolver'
import { cleanUrl, slash } from '../../shared/utils'
import type { WorkerType } from './worker'
import { WORKER_FILE_ID, workerFileToUrl } from './worker'
import { fileToUrl, toOutputFilePathInJSForBundledDev } from './asset'
import type { InternalResolveOptions } from './resolve'
import { tryFsResolve } from './resolve'
import { hasViteIgnoreRE } from './importAnalysis'

interface WorkerOptions {
  type?: WorkerType
}

function err(e: string, pos: number) {
  const error = new Error(e) as RollupError
  error.pos = pos
  return error
}

function findClosingParen(input: string, fromIndex: number) {
  let count = 1

  for (let i = fromIndex; i < input.length; i++) {
    if (input[i] === '(') count++
    if (input[i] === ')') count--
    if (count === 0) return i
  }

  return -1
}

function extractWorkerTypeFromAst(
  expression: Expression,
  optsStartIndex: number,
): 'classic' | 'module' | undefined {
  if (expression.type !== 'ObjectExpression') {
    return
  }

  let lastSpreadElementIndex = -1
  let typeProperty = null
  let typePropertyIndex = -1

  for (let i = 0; i < expression.properties.length; i++) {
    const property = expression.properties[i]

    if (property.type === 'SpreadElement') {
      lastSpreadElementIndex = i
      continue
    }
// ... (238 more lines)

Domain

Subdomains

Frequently Asked Questions

What does workerImportMetaUrl.ts do?
workerImportMetaUrl.ts is a source file in the vite codebase, written in typescript. It belongs to the PluginSystem domain, AssetManagement subdomain.
What functions are defined in workerImportMetaUrl.ts?
workerImportMetaUrl.ts defines 6 function(s): err, extractWorkerTypeFromAst, findClosingParen, getWorkerType, parseWorkerOptions, workerImportMetaUrlPlugin.
What does workerImportMetaUrl.ts depend on?
workerImportMetaUrl.ts imports 30 module(s): InternalResolveOptions, Plugin, ResolveIdFn, ResolvedConfig, WorkerType, asset.ts, cleanUrl, config.ts, and 22 more.
What files import workerImportMetaUrl.ts?
workerImportMetaUrl.ts is imported by 2 file(s): index.ts, workerImportMetaUrl.spec.ts.
Where is workerImportMetaUrl.ts in the architecture?
workerImportMetaUrl.ts is located at packages/vite/src/node/plugins/workerImportMetaUrl.ts (domain: PluginSystem, subdomain: AssetManagement, directory: packages/vite/src/node/plugins).

Analyze Your Own Codebase

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

Try Supermodel Free