runnerImport.spec.ts — vite Source File
Architecture documentation for runnerImport.spec.ts, a typescript file in the vite codebase. 7 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 8e5be4f8_47ed_25d2_b54a_787696793bf1["runnerImport.spec.ts"] b5e1db85_5394_4902_e419_6145447db3eb["runnerImport.ts"] 8e5be4f8_47ed_25d2_b54a_787696793bf1 --> b5e1db85_5394_4902_e419_6145447db3eb 585bf922_8932_bdb0_98d0_ee522538cb6d["runnerImport"] 8e5be4f8_47ed_25d2_b54a_787696793bf1 --> 585bf922_8932_bdb0_98d0_ee522538cb6d abfc9e70_3c15_b3f0_a595_3cf27afb7e64["utils.ts"] 8e5be4f8_47ed_25d2_b54a_787696793bf1 --> abfc9e70_3c15_b3f0_a595_3cf27afb7e64 f094d39d_cd97_2548_86c3_38902c2f3301["slash"] 8e5be4f8_47ed_25d2_b54a_787696793bf1 --> f094d39d_cd97_2548_86c3_38902c2f3301 51e96894_3556_ed5c_1ede_97d449867adf["node:path"] 8e5be4f8_47ed_25d2_b54a_787696793bf1 --> 51e96894_3556_ed5c_1ede_97d449867adf a340ba46_b2b7_3048_3bb3_6907a74c8464["vitest"] 8e5be4f8_47ed_25d2_b54a_787696793bf1 --> a340ba46_b2b7_3048_3bb3_6907a74c8464 54c37fea_4fe7_2693_71cb_1276b77f55f9["vite"] 8e5be4f8_47ed_25d2_b54a_787696793bf1 --> 54c37fea_4fe7_2693_71cb_1276b77f55f9 style 8e5be4f8_47ed_25d2_b54a_787696793bf1 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { resolve } from 'node:path'
import { describe, expect, test } from 'vitest'
import { loadConfigFromFile } from 'vite'
import { runnerImport } from '../ssr/runnerImport'
import { slash } from '../../shared/utils'
// eslint-disable-next-line n/no-unsupported-features/node-builtins
const isTypeStrippingSupported = !!process.features.typescript
describe('importing files using inlined environment', () => {
const fixture = (name: string) =>
resolve(import.meta.dirname, './fixtures/runner-import', name)
test('importing a basic file works', async () => {
const { module } = await runnerImport<
typeof import('./fixtures/runner-import/basic')
>(fixture('basic'))
expect(module.test).toEqual({
field: true,
})
})
test("cannot import cjs, 'runnerImport' doesn't support CJS syntax at all", async () => {
await expect(() =>
runnerImport<typeof import('./fixtures/runner-import/basic')>(
fixture('cjs.js'),
),
).rejects.toThrow('module is not defined')
})
test('can import vite config', async () => {
const { module, dependencies } = await runnerImport<
typeof import('./fixtures/runner-import/vite.config')
>(fixture('vite.config'))
expect(module.default).toEqual({
root: './test',
plugins: [
{
name: 'test',
},
],
})
expect(dependencies).toEqual([slash(fixture('plugin.ts'))])
})
test('can import vite config that imports a TS external module', async () => {
const { module, dependencies } = await runnerImport<
typeof import('./fixtures/runner-import/vite.config.outside-pkg-import.mjs')
>(fixture('vite.config.outside-pkg-import.mts'))
expect(module.default.__injected).toBe(true)
expect(dependencies).toEqual([
slash(resolve(import.meta.dirname, './packages/parent/index.ts')),
])
// confirm that it fails with a bundle approach
if (!isTypeStrippingSupported) {
await expect(async () => {
const root = resolve(import.meta.dirname, './fixtures/runner-import')
await loadConfigFromFile(
{ mode: 'production', command: 'serve' },
resolve(root, './vite.config.outside-pkg-import.mts'),
root,
'silent',
)
}).rejects.toThrow('Unknown file extension ".ts"')
}
})
test('dynamic import', async () => {
const { module } = await runnerImport<any>(fixture('dynamic-import.ts'))
await expect(() => module.default()).rejects.toMatchInlineSnapshot(
`[Error: Vite module runner has been closed.]`,
)
// const dep = await module.default();
// expect(dep.default).toMatchInlineSnapshot(`"ok"`)
})
})
Domain
Dependencies
- node:path
- runnerImport
- runnerImport.ts
- slash
- utils.ts
- vite
- vitest
Source
Frequently Asked Questions
What does runnerImport.spec.ts do?
runnerImport.spec.ts is a source file in the vite codebase, written in typescript. It belongs to the ViteCore domain.
What does runnerImport.spec.ts depend on?
runnerImport.spec.ts imports 7 module(s): node:path, runnerImport, runnerImport.ts, slash, utils.ts, vite, vitest.
Where is runnerImport.spec.ts in the architecture?
runnerImport.spec.ts is located at packages/vite/src/node/__tests__/runnerImport.spec.ts (domain: ViteCore, directory: packages/vite/src/node/__tests__).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free