Files
blap/knip.ts
T
Michael Telatynski e9a89d9872 Consolidate vitest CI & coverage (#33808)
* Consolidate modules vitest coverage

* Use vite-common as base for modules vitest config

* Make knip happier

* Fix coverage paths

* Place modules unit tests alongside src

* Switch to defineProject for better type safety

* Consolidate vitest CI & coverage

Kills off vite-common

* Update comment

* Update lockfile

* Fix shared-components vitest config

* Soften eslint config for tests in modules

* Run eslint on modules/playwright dir too

* Make tsc happy
2026-06-10 16:00:34 +00:00

99 lines
3.3 KiB
TypeScript

import { KnipConfig } from "knip";
// Specify this as knip loads config files which may conditionally load plugins
process.env.GITHUB_ACTIONS = "1";
export default {
workspaces: {
"packages/shared-components": {},
"packages/playwright-common": {
entry: ["src/fixtures/index.ts", "src/testcontainers/index.ts"],
ignoreDependencies: [
// Used in playwright-screenshots.sh
"wait-on",
],
ignoreBinaries: ["awk", "printf"],
},
"packages/module-api": {},
"apps/web": {
entry: [
"src/serviceworker/index.ts",
"src/workers/*.worker.ts",
"src/utils/exportUtils/exportJS.js",
"src/vector/localstorage-fix.ts",
"scripts/**",
"playwright/**",
"test/**",
"res/decoder-ring/**",
"res/jitsi_external_api.min.js",
"res/themes/*/css/*.pcss",
],
ignore: [
// Keep for now
"src/hooks/useLocalStorageState.ts",
],
ignoreDependencies: [
// False positive
"sw.js",
// Used by webpack
"process",
"util",
// Embedded into webapp
"@element-hq/element-call-embedded",
// Used by matrix-js-sdk, which means we have to include them as a
// dependency so that // we can run `tsc` (since we import the typescript
// source of js-sdk, rather than the transpiled and annotated JS like you
// would with a normal library).
"@types/sdp-transform",
],
},
"apps/desktop": {
entry: ["src/preload.cts", "electron-builder.ts", "scripts/**", "hak/**"],
project: ["**/*.{js,ts}"],
ignoreDependencies: [
// Brought in via hak scripts
"matrix-seshat",
],
ignoreBinaries: [
"scripts/in-docker.sh",
// Used to build seshat (optional)
"rustc",
// Used by the fetch-package script (optional)
"gpg",
// Used for the macOS universal builds
"lipo",
],
},
"modules": {},
"modules/*": {
entry: "src/index.ts{x,}",
},
".": {
entry: ["scripts/**", "docs/**"],
},
},
ignoreDependencies: [
// Used by multiple packages, raises a false positive for some reason
"events",
],
ignoreExportsUsedInFile: true,
ignoreBinaries: [
// Optional for coverage:diff development script
"diff-cover",
],
compilers: {
pcss: (text: string) =>
[...text.matchAll(/@import\s+(?:url\()?["']([^"']+)["']\)?[^;]*;/g)]
.map(([, specifier]) => `import "${specifier}";`)
.join("\n"),
},
nx: {
config: ["{nx,package,project}.json", "{apps,packages,modules}/**/{package,project}.json"],
},
playwright: {
config: ["playwright.config.ts", "playwright-merge.config.ts"],
},
tags: ["-knipignore"],
} satisfies KnipConfig;