| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import { existsSync } from 'node:fs'
- import { dirname, resolve } from 'node:path'
- import { fileURLToPath, pathToFileURL } from 'node:url'
- const root = resolve(dirname(fileURLToPath(import.meta.url)), '..')
- const pluginDist = resolve(root, 'packages/presets/vite-plugin/dist/index.js')
- const coreDist = resolve(root, 'packages/core/dist/index.js')
- function assert(condition, message) {
- if (!condition) {
- throw new Error(message)
- }
- }
- assert(
- existsSync(pluginDist),
- 'packages/presets/vite-plugin/dist/index.js is missing; run pnpm --filter @file-viewer/vite-plugin build first.'
- )
- assert(
- existsSync(coreDist),
- 'packages/core/dist/index.js is missing; run pnpm --filter @file-viewer/core build first.'
- )
- const plugin = await import(`${pathToFileURL(pluginDist).href}?t=${Date.now()}`)
- const core = await import(`${pathToFileURL(coreDist).href}?t=${Date.now()}`)
- const { resolveFileViewerRendererSelection } = plugin
- const { DEFAULT_RENDERER_DEFINITIONS } = core
- const expectedPackageByRendererId = new Map([
- ['pdf', '@file-viewer/renderer-pdf'],
- ['ofd', '@file-viewer/renderer-ofd'],
- ['typst', '@file-viewer/renderer-typst'],
- ['office-word-openxml', '@file-viewer/renderer-word'],
- ['office-word-binary', '@file-viewer/renderer-word'],
- ['open-document', '@file-viewer/renderer-word'],
- ['office-presentation', '@file-viewer/renderer-presentation'],
- ['spreadsheet-openxml', '@file-viewer/renderer-spreadsheet'],
- ['cad', '@file-viewer/renderer-cad'],
- ['model', '@file-viewer/renderer-3d'],
- ['drawing', '@file-viewer/renderer-drawing'],
- ['mindmap', '@file-viewer/renderer-mindmap'],
- ['geo', '@file-viewer/renderer-geo'],
- ['archive', '@file-viewer/renderer-archive'],
- ['email', '@file-viewer/renderer-email'],
- ['epub', '@file-viewer/renderer-epub'],
- ['code', '@file-viewer/renderer-text'],
- ['markdown', '@file-viewer/renderer-text'],
- ['image', '@file-viewer/renderer-image'],
- ['audio', '@file-viewer/renderer-media'],
- ['video', '@file-viewer/renderer-media'],
- ['data-asset', '@file-viewer/renderer-data'],
- ['eda', '@file-viewer/renderer-eda'],
- ])
- const checked = []
- for (const definition of DEFAULT_RENDERER_DEFINITIONS) {
- const expectedPackage = expectedPackageByRendererId.get(definition.id)
- if (!expectedPackage) {
- continue
- }
- for (const extension of definition.extensions) {
- const selection = resolveFileViewerRendererSelection({ formats: [extension] }, root)
- assert(
- selection.packages.includes(expectedPackage),
- `${extension} (${definition.id}) should select ${expectedPackage}; got ${selection.packages.join(', ') || 'no packages'}`
- )
- checked.push(extension)
- }
- }
- for (const [rendererId, expectedPackage] of expectedPackageByRendererId) {
- const selection = resolveFileViewerRendererSelection({ renderers: [rendererId] }, root)
- assert(
- selection.packages.includes(expectedPackage),
- `renderer id ${rendererId} should select ${expectedPackage}; got ${selection.packages.join(', ') || 'no packages'}`
- )
- }
- console.log(
- `[vite-plugin-format-coverage] Verified ${checked.length} extracted renderer extensions and ${expectedPackageByRendererId.size} renderer ids against @file-viewer/core.`
- )
|