-
Notifications
You must be signed in to change notification settings - Fork 119
Expand file tree
/
Copy pathknip.json
More file actions
117 lines (117 loc) · 3.54 KB
/
Copy pathknip.json
File metadata and controls
117 lines (117 loc) · 3.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
{
"$schema": "https://unpkg.com/knip@6/schema.json",
"ignoreWorkspaces": ["apps/ingest", "apps/ios", "examples/*"],
"ignore": [".deepsec/**", "**/*.type-test.ts"],
"ignoreExportsUsedInFile": true,
"workspaces": {
".": {
"entry": ["alchemy.run.ts", "scripts/**/*.ts", "scripts/oxlint-plugins/*.mjs"],
"ignoreBinaries": ["tb", "pscale"]
},
"apps/web": {
// `src/worker-entry.ts` is the deployed Worker entry, named by the vite
// source as the string `main: "src/worker-entry.ts"` in `src/worker.ts`'s
// props. knip cannot follow a path in a string, so without this it reports
// the entry and everything only it reaches (the handler, the OG renderers)
// as unused files.
"entry": [
"src/routes/**/*.tsx",
"src/worker.ts",
"src/worker-entry.ts",
"src/components/ai-elements/**",
"src/components/icons/**",
"src/lib/effect-atom.ts"
]
},
"apps/landing": {
"entry": ["src/worker.ts", "tools/**/*.ts", "tools/**/*.js"],
"ignoreDependencies": ["@paper-design/shaders"]
},
"apps/api": {
// src/worker.ts was auto-detected from wrangler.jsonc's `main` until the
// wrangler configs were deleted; the Worker entries are now named here.
// bench-suites/*.ts are loaded by path from scripts/bench-queries.ts (a dynamic
// import off the CLI's --suite argument), so knip cannot see the edge.
"entry": [
"src/worker.ts",
"autumn.config.ts",
"scripts/cold-path/*.{ts,mjs}",
"scripts/bench-suites/*.ts"
]
},
// Single-module Workers: the root alchemy.run.ts imports src/worker.ts, and
// alchemy bundles it, so it is the app's one entry.
"apps/ai": {
"entry": ["src/worker.ts"]
},
"apps/alerting": {
"entry": ["src/worker.ts"]
},
"apps/electric-sync": {
"entry": ["src/worker.ts"]
},
// The sandbox Worker's entry is its own plain module (that is the point: a
// generated entry would drop the container-backed class export), and the
// alchemy declaration beside it is what the root stack yields.
"apps/sandbox": {
"entry": ["src/worker.ts", "alchemy.run.ts"]
},
"apps/local-ui": {
"entry": ["src/worker.ts"]
},
"apps/cli": {
"entry": [
"test/probes/*.ts",
"test/archive-probe-helpers.ts",
"test/merge-injection-probe.ts",
"test/native-local-store-migration-fixture.ts",
"test/native-service-map-ingest-bridge-probe.ts"
],
"ignoreBinaries": ["duckdb"]
},
"packages/db": {
"entry": ["scripts/**/*.ts"],
"ignoreBinaries": ["pscale"]
},
"packages/email": {
"entry": ["scripts/**/*.ts"],
"ignore": ["src/generated/**"],
"ignoreDependencies": ["tailwindcss"]
},
// fumapress reads press.config.tsx and src/app.css by convention, and Base UI
// arrives through fumadocs-ui's preset; knip sees no import edge to either.
"apps/clickhouse-builder-docs": {
"entry": ["press.config.tsx", "src/app.css"],
"ignoreDependencies": ["@base-ui/react"]
},
"lib/ai-model-catalog": {
"entry": ["scripts/**/*.ts"]
},
"lib/alchemy-portless": {
// The dev-sidecar entry alchemy loads by URL, not by import.
"entry": ["src/Local.ts"]
},
"packages/query-engine": {
"entry": ["src/drain/index.ts"]
},
"packages/browser": {
"ignoreDependencies": ["rrweb"]
}
},
"rules": {
"files": "error",
"dependencies": "error",
"devDependencies": "error",
"unlisted": "error",
"binaries": "error",
"unresolved": "error",
"exports": "warn",
"types": "warn",
"nsExports": "warn",
"nsTypes": "warn",
"enumMembers": "warn",
"namespaceMembers": "warn",
"duplicates": "warn",
"cycles": "error"
}
}