openpencil/vite/server.ts
2026-05-19 17:57:58 +03:00

40 lines
929 B
TypeScript

import { normalizePath, type ServerOptions } from 'vite'
const WATCHED_MARKDOWN_ROOTS = ['/src/', '/packages/core/src/', '/packages/vue/src/']
function ignoreMarkdownOutsideSource(path: string): boolean {
const normalized = normalizePath(path)
if (!normalized.endsWith('.md')) return false
return !WATCHED_MARKDOWN_ROOTS.some((root) => normalized.includes(root))
}
export const WATCH_IGNORED = [
'**/desktop/**',
'**/packages/cli/**',
'**/packages/mcp/**',
'**/packages/docs/**',
'**/tests/**',
'**/.worktrees/**',
'**/.github/**',
'**/.pi/**',
ignoreMarkdownOutsideSource
]
export function createDevServerOptions(host: string | undefined): ServerOptions {
return {
port: 1420,
strictPort: true,
host: host || false,
hmr: host
? {
protocol: 'ws',
host,
port: 1421
}
: undefined,
watch: {
ignored: WATCH_IGNORED
}
}
}