* ci: run typecheck, build & tests on PRs and main Add a GitHub Actions workflow (.github/workflows/ci.yml) that installs on Node 20 (the pinned runtime), builds shared/server/web, typechecks desktop, and runs the full vitest suite across all packages on every pull request and push to main. The repo already had 500+ tests but only ever ran them locally. Also wires up the missing test/typecheck plumbing this exposed: - web package had 55 test files but no test script — add test/test:watch/typecheck - add root-level test and typecheck aggregate scripts - fix a latent web type error the new typecheck surfaced: reference vite-plugin-pwa/react types so virtual:pwa-register/react is typed (useRegisterSW callback params were implicit any; the tsc half of the web build script has been failing, masked by vite build ignoring type errors) * test: fix two latent failures surfaced by CI on Node 20 - server: exclude dist/** from vitest. Vitest 4's default exclude dropped dist/, so after `pnpm build` emits compiled .test.js files, vitest ran those stale copies alongside src/*.test.ts and they failed (compiled vi.mock paths resolve differently). - web: polyfill Blob.prototype.stream in the jsdom test setup. jsdom's Blob has no .stream() on Node 20 (Node 25 provided one, masking this locally); undici's Response constructor calls blob.stream(), so new Response(blob) threw 'object.stream is not a function'.
23 lines
567 B
TypeScript
23 lines
567 B
TypeScript
/// <reference types="vite/client" />
|
|
/// <reference types="vite-plugin-pwa/react" />
|
|
|
|
interface ImportMetaEnv {
|
|
readonly VITE_FORCE_BOOT_STALL?: string;
|
|
}
|
|
interface ImportMeta {
|
|
readonly env: ImportMetaEnv;
|
|
}
|
|
|
|
declare module '@sapphi-red/web-noise-suppressor/rnnoiseWorklet.js?url' {
|
|
const url: string;
|
|
export default url;
|
|
}
|
|
declare module '@sapphi-red/web-noise-suppressor/rnnoise.wasm?url' {
|
|
const url: string;
|
|
export default url;
|
|
}
|
|
declare module '@sapphi-red/web-noise-suppressor/rnnoise_simd.wasm?url' {
|
|
const url: string;
|
|
export default url;
|
|
}
|