watcher.spec.ts — vite Source File
Architecture documentation for watcher.spec.ts, a typescript file in the vite codebase. 5 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 6dce4d52_b6d3_50fc_d206_061052485542["watcher.spec.ts"] a423a1ed_f7d8_0eb5_9b8f_ddfa7fa8147e["index.ts"] 6dce4d52_b6d3_50fc_d206_061052485542 --> a423a1ed_f7d8_0eb5_9b8f_ddfa7fa8147e 19009191_26ac_2526_d048_41ac02638e55["createServer"] 6dce4d52_b6d3_50fc_d206_061052485542 --> 19009191_26ac_2526_d048_41ac02638e55 51e96894_3556_ed5c_1ede_97d449867adf["node:path"] 6dce4d52_b6d3_50fc_d206_061052485542 --> 51e96894_3556_ed5c_1ede_97d449867adf 6feed3e8_55b8_cce7_b5ef_e40b872585f7["node:url"] 6dce4d52_b6d3_50fc_d206_061052485542 --> 6feed3e8_55b8_cce7_b5ef_e40b872585f7 a340ba46_b2b7_3048_3bb3_6907a74c8464["vitest"] 6dce4d52_b6d3_50fc_d206_061052485542 --> a340ba46_b2b7_3048_3bb3_6907a74c8464 style 6dce4d52_b6d3_50fc_d206_061052485542 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { resolve } from 'node:path'
import { fileURLToPath } from 'node:url'
import { afterEach, describe, expect, it, vi } from 'vitest'
import { type ViteDevServer, createServer } from '../index'
const stubGetWatchedCode = /\(\)\s*\{\s*return this;\s*\}/
describe('watcher configuration', () => {
let server: ViteDevServer | undefined
afterEach(async () => {
if (server) {
await server.close()
server = undefined
}
})
it('when watcher is disabled, return noop watcher', async () => {
server = await createServer({
server: {
watch: null,
},
})
expect(server.watcher.add.toString()).toMatch(stubGetWatchedCode)
})
it('when watcher is not disabled, return chokidar watcher', async () => {
server = await createServer({
server: {
watch: {},
},
})
expect(server.watcher.add.toString()).not.toMatch(stubGetWatchedCode)
})
it('should watch the root directory, config file dependencies, dotenv files, and the public directory', async () => {
const root = fileURLToPath(
new URL('./fixtures/watcher/nested-root', import.meta.url),
)
server = await createServer({ root })
await new Promise((resolve) => server!.watcher.once('ready', resolve))
// Perform retries here as chokidar may still not be completely watching all directories
// after the `ready` event
await vi.waitFor(() => {
const watchedDirs = Object.keys(server!.watcher.getWatched())
expect(watchedDirs).toEqual(
expect.arrayContaining([
root,
resolve(root, '../config-deps'),
resolve(root, '../custom-env'),
resolve(root, '../custom-public'),
]),
)
})
})
})
Domain
Dependencies
- createServer
- index.ts
- node:path
- node:url
- vitest
Source
Frequently Asked Questions
What does watcher.spec.ts do?
watcher.spec.ts is a source file in the vite codebase, written in typescript. It belongs to the ViteCore domain.
What does watcher.spec.ts depend on?
watcher.spec.ts imports 5 module(s): createServer, index.ts, node:path, node:url, vitest.
Where is watcher.spec.ts in the architecture?
watcher.spec.ts is located at packages/vite/src/node/server/__tests__/watcher.spec.ts (domain: ViteCore, directory: packages/vite/src/node/server/__tests__).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free