Home / File/ import.spec.ts — vite Source File

import.spec.ts — vite Source File

Architecture documentation for import.spec.ts, a typescript file in the vite codebase. 3 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  5cab1b36_4f21_23b1_46e6_d116a57be617["import.spec.ts"]
  5a7b98e4_4eb1_dfca_508b_2d43e2a077e6["importAnalysis.ts"]
  5cab1b36_4f21_23b1_46e6_d116a57be617 --> 5a7b98e4_4eb1_dfca_508b_2d43e2a077e6
  df4b153e_b429_d51a_4d38_896cbcb5f010["transformCjsImport"]
  5cab1b36_4f21_23b1_46e6_d116a57be617 --> df4b153e_b429_d51a_4d38_896cbcb5f010
  a340ba46_b2b7_3048_3bb3_6907a74c8464["vitest"]
  5cab1b36_4f21_23b1_46e6_d116a57be617 --> a340ba46_b2b7_3048_3bb3_6907a74c8464
  style 5cab1b36_4f21_23b1_46e6_d116a57be617 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { beforeEach, describe, expect, test, vi } from 'vitest'
import { transformCjsImport } from '../../plugins/importAnalysis'

describe('runTransform', () => {
  const config: any = {
    command: 'serve',
    logger: {
      warn: vi.fn(),
    },
  }

  function runTransformCjsImport(importExp: string, isNodeMode: boolean) {
    const result = transformCjsImport(
      importExp,
      './node_modules/.vite/deps/react.js',
      'react',
      0,
      'modA',
      isNodeMode,
      config,
    )
    if (result !== undefined) {
      expect(result.split('\n').length, 'result line count').toBe(
        importExp.split('\n').length,
      )
    }
    return result?.replaceAll(';', ';\n')
  }

  beforeEach(() => {
    config.logger.warn.mockClear()
  })

  test('import specifier', () => {
    expect(
      runTransformCjsImport(
        'import { useState, Component, "👋" as fake } from "react"',
        false,
      ),
    ).toMatchInlineSnapshot(`
      "import __vite__cjsImport0_react from "./node_modules/.vite/deps/react.js";
       const useState = __vite__cjsImport0_react["useState"];
       const Component = __vite__cjsImport0_react["Component"];
       const fake = __vite__cjsImport0_react["👋"]"
    `)
    expect(
      runTransformCjsImport(
        'import { useState, Component, "👋" as fake } from "react"',
        true,
      ),
    ).toMatchInlineSnapshot(`
      "import __vite__cjsImport0_react from "./node_modules/.vite/deps/react.js";
       const useState = __vite__cjsImport0_react["useState"];
       const Component = __vite__cjsImport0_react["Component"];
       const fake = __vite__cjsImport0_react["👋"]"
    `)
  })

  test('import default specifier', () => {
    expect(runTransformCjsImport('import React from "react"', false))
// ... (125 more lines)

Domain

Frequently Asked Questions

What does import.spec.ts do?
import.spec.ts is a source file in the vite codebase, written in typescript. It belongs to the ViteCore domain.
What does import.spec.ts depend on?
import.spec.ts imports 3 module(s): importAnalysis.ts, transformCjsImport, vitest.
Where is import.spec.ts in the architecture?
import.spec.ts is located at packages/vite/src/node/__tests__/plugins/import.spec.ts (domain: ViteCore, directory: packages/vite/src/node/__tests__/plugins).

Analyze Your Own Codebase

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

Try Supermodel Free