@knip/mcp 0.0.21 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/package.json +3 -3
  2. package/src/docs/docs/blog/brief-history.md +2 -3
  3. package/src/docs/docs/blog/for-editors-and-agents.md +2 -3
  4. package/src/docs/docs/blog/knip-v3.mdx +1 -1
  5. package/src/docs/docs/blog/knip-v4.mdx +1 -1
  6. package/src/docs/docs/blog/knip-v5.mdx +1 -1
  7. package/src/docs/docs/blog/knip-v6.md +145 -0
  8. package/src/docs/docs/blog/release-notes-v2.md +1 -1
  9. package/src/docs/docs/blog/slim-down-to-speed-up.md +1 -1
  10. package/src/docs/docs/blog/state-of-knip.md +1 -1
  11. package/src/docs/docs/blog/two-years.mdx +1 -1
  12. package/src/docs/docs/explanations/comparison-and-migration.md +2 -2
  13. package/src/docs/docs/features/auto-fix.mdx +3 -33
  14. package/src/docs/docs/features/reporters.md +16 -13
  15. package/src/docs/docs/features/rules-and-filters.md +1 -1
  16. package/src/docs/docs/guides/handling-issues.mdx +32 -48
  17. package/src/docs/docs/guides/issue-reproduction.md +4 -8
  18. package/src/docs/docs/guides/performance.md +7 -62
  19. package/src/docs/docs/guides/using-knip-in-ci.md +2 -2
  20. package/src/docs/docs/index.mdx +3 -3
  21. package/src/docs/docs/overview/configuration.md +1 -1
  22. package/src/docs/docs/overview/getting-started.mdx +1 -1
  23. package/src/docs/docs/reference/cli.md +31 -56
  24. package/src/docs/docs/reference/configuration.md +7 -7
  25. package/src/docs/docs/reference/faq.md +48 -63
  26. package/src/docs/docs/reference/integrations.md +1 -2
  27. package/src/docs/docs/reference/issue-types.md +17 -17
  28. package/src/docs/docs/reference/jsdoc-tsdoc-tags.md +1 -1
  29. package/src/docs/docs/reference/plugins/angular.md +34 -0
  30. package/src/docs/docs/reference/plugins/astro-db.md +34 -0
  31. package/src/docs/docs/reference/plugins/astro-og-canvas.md +15 -0
  32. package/src/docs/docs/reference/plugins/astro.md +44 -0
  33. package/src/docs/docs/reference/plugins/ava.md +46 -0
  34. package/src/docs/docs/reference/plugins/babel.md +41 -0
  35. package/src/docs/docs/reference/plugins/biome.md +34 -0
  36. package/src/docs/docs/reference/plugins/bumpp.md +41 -0
  37. package/src/docs/docs/reference/plugins/bun.md +34 -0
  38. package/src/docs/docs/reference/plugins/c8.md +29 -0
  39. package/src/docs/docs/reference/plugins/capacitor.md +36 -0
  40. package/src/docs/docs/reference/plugins/changelogen.md +41 -0
  41. package/src/docs/docs/reference/plugins/changelogithub.md +41 -0
  42. package/src/docs/docs/reference/plugins/changesets.md +34 -0
  43. package/src/docs/docs/reference/plugins/commitizen.md +34 -0
  44. package/src/docs/docs/reference/plugins/commitlint.md +42 -0
  45. package/src/docs/docs/reference/plugins/convex.md +34 -0
  46. package/src/docs/docs/reference/plugins/create-typescript-app.md +34 -0
  47. package/src/docs/docs/reference/plugins/cspell.md +39 -0
  48. package/src/docs/docs/reference/plugins/cucumber.md +35 -0
  49. package/src/docs/docs/reference/plugins/cypress.md +41 -0
  50. package/src/docs/docs/reference/plugins/danger.md +34 -0
  51. package/src/docs/docs/reference/plugins/dependency-cruiser.md +46 -0
  52. package/src/docs/docs/reference/plugins/docusaurus.md +40 -0
  53. package/src/docs/docs/reference/plugins/dotenv.md +32 -0
  54. package/src/docs/docs/reference/plugins/drizzle.md +34 -0
  55. package/src/docs/docs/reference/plugins/eleventy.md +35 -0
  56. package/src/docs/docs/reference/plugins/eslint.md +86 -0
  57. package/src/docs/docs/reference/plugins/execa.md +15 -0
  58. package/src/docs/docs/reference/plugins/expo.md +35 -0
  59. package/src/docs/docs/reference/plugins/expressive-code.md +40 -0
  60. package/src/docs/docs/reference/plugins/gatsby.md +49 -0
  61. package/src/docs/docs/reference/plugins/github-action.md +34 -0
  62. package/src/docs/docs/reference/plugins/github-actions.md +34 -0
  63. package/src/docs/docs/reference/plugins/glob.md +29 -0
  64. package/src/docs/docs/reference/plugins/graphql-codegen.md +46 -0
  65. package/src/docs/docs/reference/plugins/hardhat.md +34 -0
  66. package/src/docs/docs/reference/plugins/husky.md +40 -0
  67. package/src/docs/docs/reference/plugins/i18next-parser.md +46 -0
  68. package/src/docs/docs/reference/plugins/jest.md +51 -0
  69. package/src/docs/docs/reference/plugins/karma.md +39 -0
  70. package/src/docs/docs/reference/plugins/knex.md +34 -0
  71. package/src/docs/docs/reference/plugins/ladle.md +39 -0
  72. package/src/docs/docs/reference/plugins/lefthook.md +46 -0
  73. package/src/docs/docs/reference/plugins/lint-staged.md +48 -0
  74. package/src/docs/docs/reference/plugins/linthtml.md +41 -0
  75. package/src/docs/docs/reference/plugins/lockfile-lint.md +41 -0
  76. package/src/docs/docs/reference/plugins/lost-pixel.md +34 -0
  77. package/src/docs/docs/reference/plugins/markdownlint.md +34 -0
  78. package/src/docs/docs/reference/plugins/mdx.md +38 -0
  79. package/src/docs/docs/reference/plugins/mdxlint.md +38 -0
  80. package/src/docs/docs/reference/plugins/metro.md +46 -0
  81. package/src/docs/docs/reference/plugins/mocha.md +47 -0
  82. package/src/docs/docs/reference/plugins/moonrepo.md +34 -0
  83. package/src/docs/docs/reference/plugins/msw.md +35 -0
  84. package/src/docs/docs/reference/plugins/nano-staged.md +39 -0
  85. package/src/docs/docs/reference/plugins/nest.md +36 -0
  86. package/src/docs/docs/reference/plugins/netlify.md +41 -0
  87. package/src/docs/docs/reference/plugins/next-intl.md +34 -0
  88. package/src/docs/docs/reference/plugins/next-mdx.md +35 -0
  89. package/src/docs/docs/reference/plugins/next.md +52 -0
  90. package/src/docs/docs/reference/plugins/nitro.md +52 -0
  91. package/src/docs/docs/reference/plugins/node-modules-inspector.md +49 -0
  92. package/src/docs/docs/reference/plugins/node.md +50 -0
  93. package/src/docs/docs/reference/plugins/nodemon.md +30 -0
  94. package/src/docs/docs/reference/plugins/npm-package-json-lint.md +41 -0
  95. package/src/docs/docs/reference/plugins/nuxt.md +55 -0
  96. package/src/docs/docs/reference/plugins/nx.md +62 -0
  97. package/src/docs/docs/reference/plugins/nyc.md +39 -0
  98. package/src/docs/docs/reference/plugins/oclif.md +34 -0
  99. package/src/docs/docs/reference/plugins/openapi-ts.md +41 -0
  100. package/src/docs/docs/reference/plugins/oxfmt.md +46 -0
  101. package/src/docs/docs/reference/plugins/oxlint.md +46 -0
  102. package/src/docs/docs/reference/plugins/parcel.md +38 -0
  103. package/src/docs/docs/reference/plugins/payload.md +40 -0
  104. package/src/docs/docs/reference/plugins/playwright-ct.md +40 -0
  105. package/src/docs/docs/reference/plugins/playwright-test.md +29 -0
  106. package/src/docs/docs/reference/plugins/playwright.md +49 -0
  107. package/src/docs/docs/reference/plugins/plop.md +34 -0
  108. package/src/docs/docs/reference/plugins/pm2.md +37 -0
  109. package/src/docs/docs/reference/plugins/pnpm.md +34 -0
  110. package/src/docs/docs/reference/plugins/postcss.md +46 -0
  111. package/src/docs/docs/reference/plugins/preconstruct.md +34 -0
  112. package/src/docs/docs/reference/plugins/prettier.md +39 -0
  113. package/src/docs/docs/reference/plugins/prisma.md +62 -0
  114. package/src/docs/docs/reference/plugins/qwik.md +40 -0
  115. package/src/docs/docs/reference/plugins/raycast.md +34 -0
  116. package/src/docs/docs/reference/plugins/react-cosmos.md +40 -0
  117. package/src/docs/docs/reference/plugins/react-native.md +34 -0
  118. package/src/docs/docs/reference/plugins/react-router.md +37 -0
  119. package/src/docs/docs/reference/plugins/relay.md +53 -0
  120. package/src/docs/docs/reference/plugins/release-it.md +34 -0
  121. package/src/docs/docs/reference/plugins/remark.md +40 -0
  122. package/src/docs/docs/reference/plugins/remix.md +43 -0
  123. package/src/docs/docs/reference/plugins/rollup.md +49 -0
  124. package/src/docs/docs/reference/plugins/rsbuild.md +34 -0
  125. package/src/docs/docs/reference/plugins/rslib.md +34 -0
  126. package/src/docs/docs/reference/plugins/rspack.md +34 -0
  127. package/src/docs/docs/reference/plugins/rstest.md +34 -0
  128. package/src/docs/docs/reference/plugins/sanity.md +38 -0
  129. package/src/docs/docs/reference/plugins/semantic-release.md +41 -0
  130. package/src/docs/docs/reference/plugins/sentry.md +36 -0
  131. package/src/docs/docs/reference/plugins/simple-git-hooks.md +38 -0
  132. package/src/docs/docs/reference/plugins/size-limit.md +38 -0
  133. package/src/docs/docs/reference/plugins/sst.md +34 -0
  134. package/src/docs/docs/reference/plugins/starlight.md +34 -0
  135. package/src/docs/docs/reference/plugins/storybook.md +43 -0
  136. package/src/docs/docs/reference/plugins/stryker.md +34 -0
  137. package/src/docs/docs/reference/plugins/stylelint.md +41 -0
  138. package/src/docs/docs/reference/plugins/svelte.md +34 -0
  139. package/src/docs/docs/reference/plugins/sveltekit.md +34 -0
  140. package/src/docs/docs/reference/plugins/svgo.md +38 -0
  141. package/src/docs/docs/reference/plugins/svgr.md +43 -0
  142. package/src/docs/docs/reference/plugins/swc.md +34 -0
  143. package/src/docs/docs/reference/plugins/syncpack.md +41 -0
  144. package/src/docs/docs/reference/plugins/tailwind.md +34 -0
  145. package/src/docs/docs/reference/plugins/tanstack-router.md +47 -0
  146. package/src/docs/docs/reference/plugins/taskfile.md +43 -0
  147. package/src/docs/docs/reference/plugins/travis.md +34 -0
  148. package/src/docs/docs/reference/plugins/ts-node.md +30 -0
  149. package/src/docs/docs/reference/plugins/tsdown.md +46 -0
  150. package/src/docs/docs/reference/plugins/tsup.md +46 -0
  151. package/src/docs/docs/reference/plugins/tsx.md +48 -0
  152. package/src/docs/docs/reference/plugins/typedoc.md +53 -0
  153. package/src/docs/docs/reference/plugins/typescript.md +57 -0
  154. package/src/docs/docs/reference/plugins/unbuild.md +34 -0
  155. package/src/docs/docs/reference/plugins/unocss.md +39 -0
  156. package/src/docs/docs/reference/plugins/vercel-og.md +41 -0
  157. package/src/docs/docs/reference/plugins/vike.md +37 -0
  158. package/src/docs/docs/reference/plugins/vite.md +50 -0
  159. package/src/docs/docs/reference/plugins/vitepress.md +37 -0
  160. package/src/docs/docs/reference/plugins/vitest.md +72 -0
  161. package/src/docs/docs/reference/plugins/vue.md +34 -0
  162. package/src/docs/docs/reference/plugins/webdriver-io.md +34 -0
  163. package/src/docs/docs/reference/plugins/webpack.md +55 -0
  164. package/src/docs/docs/reference/plugins/wireit.md +34 -0
  165. package/src/docs/docs/reference/plugins/wrangler.md +34 -0
  166. package/src/docs/docs/reference/plugins/xo.md +40 -0
  167. package/src/docs/docs/reference/plugins/yarn.md +35 -0
  168. package/src/docs/docs/reference/plugins/yorkie.md +34 -0
  169. package/src/docs/docs/reference/plugins/zx.md +15 -0
  170. package/src/docs/docs/typescript/unused-exports.md +7 -8
  171. package/src/docs/docs/writing-a-plugin/argument-parsing.md +1 -2
  172. package/src/docs/docs/writing-a-plugin/index.md +15 -36
@@ -0,0 +1,72 @@
1
+ ---
2
+ title: Vitest
3
+ sidebar:
4
+ hidden: true
5
+ ---
6
+
7
+ ## Enabled
8
+
9
+ This plugin is enabled if `"vitest"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
10
+
11
+ ## Default configuration
12
+
13
+ If this plugin is enabled, the following configuration is added automatically:
14
+
15
+ ```json
16
+ {
17
+ "vitest": {
18
+ "config": [
19
+ "vitest.config.{js,mjs,ts,cjs,mts,cts}",
20
+ "vitest.{workspace,projects}.{js,mjs,ts,cjs,mts,cts,json}"
21
+ ],
22
+ "entry": [
23
+ "**/*.{bench,test,test-d,spec,spec-d}.?(c|m)[jt]s?(x)",
24
+ "**/__mocks__/**/*.[jt]s?(x)"
25
+ ]
26
+ }
27
+ }
28
+ ```
29
+
30
+ Depending on local configuration, plugins may modify the defaults as shown.
31
+
32
+ Custom `config` or `entry` options override default values, they are not merged.
33
+
34
+ See [Plugins][1] for more details about plugins and their `entry` and `config` options.
35
+
36
+ ## Shell commands
37
+
38
+ This plugin adds argument parsing for the <code>vitest</code>
39
+ binary. Configuration:
40
+
41
+ ```
42
+ config: true
43
+ resolveInputs: (parsed ) => {
44
+ const inputs = [];
45
+ if (parsed['ui']) inputs.push(toDependency('@vitest/ui', { optional: true }));
46
+ if (typeof parsed['coverage'] === 'object' && parsed['coverage'].provider) {
47
+ inputs.push(toDependency(`@vitest/coverage-${parsed['coverage'].provider}`));
48
+ }
49
+ if (parsed['reporter']) {
50
+ for (const reporter of getExternalReporters([parsed['reporter']].flat())) {
51
+ inputs.push(toDependency(reporter));
52
+ }
53
+ }
54
+ if (parsed['environment'] && parsed['environment'] !== 'node') {
55
+ inputs.push(toDependency(getEnvSpecifier(parsed['environment'])));
56
+ }
57
+ if (typeof parsed['typecheck'] === 'object' && parsed['typecheck'].checker) {
58
+ inputs.push(toDependency(parsed['typecheck'].checker === 'tsc' ? 'typescript' : parsed['typecheck'].checker));
59
+ }
60
+ return inputs;
61
+ }
62
+ ```
63
+
64
+ The configuration was generated from source code. Also see [Script Parser][2].
65
+
66
+ ## Generated from source
67
+
68
+ This page was generated from the [vitest plugin source code][3].
69
+
70
+ [1]: ../../explanations/plugins.md
71
+ [2]: ../../features/script-parser.md
72
+ [3]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/vitest/index.ts
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: Vue
3
+ sidebar:
4
+ hidden: true
5
+ ---
6
+
7
+ ## Enabled
8
+
9
+ This plugin is enabled if `"vue"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
10
+
11
+ ## Default configuration
12
+
13
+ If this plugin is enabled, the following configuration is added automatically:
14
+
15
+ ```json
16
+ {
17
+ "vue": {
18
+ "config": ["vue.config.{js,ts,mjs}"]
19
+ }
20
+ }
21
+ ```
22
+
23
+ Depending on local configuration, plugins may modify the defaults as shown.
24
+
25
+ Custom `config` or `entry` options override default values, they are not merged.
26
+
27
+ See [Plugins][1] for more details about plugins and their `entry` and `config` options.
28
+
29
+ ## Generated from source
30
+
31
+ This page was generated from the [vue plugin source code][2].
32
+
33
+ [1]: ../../explanations/plugins.md
34
+ [2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/vue/index.ts
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: WebdriverIO
3
+ sidebar:
4
+ hidden: true
5
+ ---
6
+
7
+ ## Enabled
8
+
9
+ This plugin is enabled if `"@wdio/cli"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
10
+
11
+ ## Default configuration
12
+
13
+ If this plugin is enabled, the following configuration is added automatically:
14
+
15
+ ```json
16
+ {
17
+ "webdriver-io": {
18
+ "config": ["wdio.conf.{js,ts}"]
19
+ }
20
+ }
21
+ ```
22
+
23
+ Depending on local configuration, plugins may modify the defaults as shown.
24
+
25
+ Custom `config` or `entry` options override default values, they are not merged.
26
+
27
+ See [Plugins][1] for more details about plugins and their `entry` and `config` options.
28
+
29
+ ## Generated from source
30
+
31
+ This page was generated from the [webdriver-io plugin source code][2].
32
+
33
+ [1]: ../../explanations/plugins.md
34
+ [2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/webdriver-io/index.ts
@@ -0,0 +1,55 @@
1
+ ---
2
+ title: webpack
3
+ sidebar:
4
+ hidden: true
5
+ ---
6
+
7
+ ## Enabled
8
+
9
+ This plugin is enabled if there's a match in `"dependencies"` or `"devDependencies"` in `package.json`:
10
+
11
+ - `webpack`
12
+
13
+ - `webpack-cli`
14
+
15
+ ## Default configuration
16
+
17
+ If this plugin is enabled, the following configuration is added automatically:
18
+
19
+ ```json
20
+ {
21
+ "webpack": {
22
+ "config": ["webpack.config.{js,ts,mjs,cjs,mts,cts}"]
23
+ }
24
+ }
25
+ ```
26
+
27
+ Depending on local configuration, plugins may modify the defaults as shown.
28
+
29
+ Custom `config` or `entry` options override default values, they are not merged.
30
+
31
+ See [Plugins][1] for more details about plugins and their `entry` and `config` options.
32
+
33
+ ## Shell commands
34
+
35
+ This plugin adds argument parsing for the <code>webpack and webpack-dev-server</code>
36
+ binaries. Configuration:
37
+
38
+ ```
39
+ config: true
40
+ resolveInputs: (parsed ) => {
41
+ const inputs = [toDependency('webpack-cli')];
42
+ if (parsed._[0] === 'serve') inputs.push(toDependency('webpack-dev-server'));
43
+ return inputs;
44
+ }
45
+ ```
46
+
47
+ The configuration was generated from source code. Also see [Script Parser][2].
48
+
49
+ ## Generated from source
50
+
51
+ This page was generated from the [webpack plugin source code][3].
52
+
53
+ [1]: ../../explanations/plugins.md
54
+ [2]: ../../features/script-parser.md
55
+ [3]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/webpack/index.ts
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: Wireit
3
+ sidebar:
4
+ hidden: true
5
+ ---
6
+
7
+ ## Enabled
8
+
9
+ This plugin is enabled if `"wireit"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
10
+
11
+ ## Default configuration
12
+
13
+ If this plugin is enabled, the following configuration is added automatically:
14
+
15
+ ```json
16
+ {
17
+ "wireit": {
18
+ "config": ["package.json"]
19
+ }
20
+ }
21
+ ```
22
+
23
+ Depending on local configuration, plugins may modify the defaults as shown.
24
+
25
+ Custom `config` or `entry` options override default values, they are not merged.
26
+
27
+ See [Plugins][1] for more details about plugins and their `entry` and `config` options.
28
+
29
+ ## Generated from source
30
+
31
+ This page was generated from the [wireit plugin source code][2].
32
+
33
+ [1]: ../../explanations/plugins.md
34
+ [2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/wireit/index.ts
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: Wrangler
3
+ sidebar:
4
+ hidden: true
5
+ ---
6
+
7
+ ## Enabled
8
+
9
+ This plugin is enabled if `"wrangler"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
10
+
11
+ ## Default configuration
12
+
13
+ If this plugin is enabled, the following configuration is added automatically:
14
+
15
+ ```json
16
+ {
17
+ "wrangler": {
18
+ "config": ["wrangler.{json,jsonc,toml}"]
19
+ }
20
+ }
21
+ ```
22
+
23
+ Depending on local configuration, plugins may modify the defaults as shown.
24
+
25
+ Custom `config` or `entry` options override default values, they are not merged.
26
+
27
+ See [Plugins][1] for more details about plugins and their `entry` and `config` options.
28
+
29
+ ## Generated from source
30
+
31
+ This page was generated from the [wrangler plugin source code][2].
32
+
33
+ [1]: ../../explanations/plugins.md
34
+ [2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/wrangler/index.ts
@@ -0,0 +1,40 @@
1
+ ---
2
+ title: xo
3
+ sidebar:
4
+ hidden: true
5
+ ---
6
+
7
+ ## Enabled
8
+
9
+ This plugin is enabled if `"xo"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
10
+
11
+ ## Default configuration
12
+
13
+ If this plugin is enabled, the following configuration is added automatically:
14
+
15
+ ```json
16
+ {
17
+ "xo": {
18
+ "config": [
19
+ "package.json",
20
+ ".xo-config",
21
+ ".xo-config.{js,cjs,json}",
22
+ "xo.config.{js,cjs}"
23
+ ],
24
+ "entry": [".xo-config.{js,cjs}", "xo.config.{js,cjs}"]
25
+ }
26
+ }
27
+ ```
28
+
29
+ Depending on local configuration, plugins may modify the defaults as shown.
30
+
31
+ Custom `config` or `entry` options override default values, they are not merged.
32
+
33
+ See [Plugins][1] for more details about plugins and their `entry` and `config` options.
34
+
35
+ ## Generated from source
36
+
37
+ This page was generated from the [xo plugin source code][2].
38
+
39
+ [1]: ../../explanations/plugins.md
40
+ [2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/xo/index.ts
@@ -0,0 +1,35 @@
1
+ ---
2
+ title: Yarn
3
+ sidebar:
4
+ hidden: true
5
+ ---
6
+
7
+ ## Enabled
8
+
9
+ This plugin is enabled when a `yarn.lock` file is found in the root folder.
10
+
11
+ ## Default configuration
12
+
13
+ If this plugin is enabled, the following configuration is added automatically:
14
+
15
+ ```json
16
+ {
17
+ "yarn": {
18
+ "config": [".yarnrc.yml"],
19
+ "entry": ["yarn.config.cjs"]
20
+ }
21
+ }
22
+ ```
23
+
24
+ Depending on local configuration, plugins may modify the defaults as shown.
25
+
26
+ Custom `config` or `entry` options override default values, they are not merged.
27
+
28
+ See [Plugins][1] for more details about plugins and their `entry` and `config` options.
29
+
30
+ ## Generated from source
31
+
32
+ This page was generated from the [yarn plugin source code][2].
33
+
34
+ [1]: ../../explanations/plugins.md
35
+ [2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/yarn/index.ts
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: yorkie
3
+ sidebar:
4
+ hidden: true
5
+ ---
6
+
7
+ ## Enabled
8
+
9
+ This plugin is enabled if `"yorkie"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
10
+
11
+ ## Default configuration
12
+
13
+ If this plugin is enabled, the following configuration is added automatically:
14
+
15
+ ```json
16
+ {
17
+ "yorkie": {
18
+ "config": ["package.json"]
19
+ }
20
+ }
21
+ ```
22
+
23
+ Depending on local configuration, plugins may modify the defaults as shown.
24
+
25
+ Custom `config` or `entry` options override default values, they are not merged.
26
+
27
+ See [Plugins][1] for more details about plugins and their `entry` and `config` options.
28
+
29
+ ## Generated from source
30
+
31
+ This page was generated from the [yorkie plugin source code][2].
32
+
33
+ [1]: ../../explanations/plugins.md
34
+ [2]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/yorkie/index.ts
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: zx
3
+ sidebar:
4
+ hidden: true
5
+ ---
6
+
7
+ ## Enabled
8
+
9
+ This plugin is enabled if `"zx"` is listed in `"dependencies"` or `"devDependencies"` in `package.json`.
10
+
11
+ ## Generated from source
12
+
13
+ This page was generated from the [zx plugin source code][1].
14
+
15
+ [1]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/plugins/zx/index.ts
@@ -55,9 +55,9 @@ them to ensure no unintended modifications were made.
55
55
 
56
56
  ## Can Knip handle large codebases?
57
57
 
58
- Absolutely. Knip supports [monorepos with workspaces][5] and utilizes [workspace
59
- sharing][6] to efficiently analyze large monorepos. This makes it easier and
60
- more fun to manage and optimize large multi-package projects.
58
+ Absolutely. Knip supports [monorepos with workspaces][5] to efficiently analyze
59
+ large monorepos. This makes it easier and more fun to manage and optimize large
60
+ multi-package projects.
61
61
 
62
62
  ## Does Knip work with my favorite editor or IDE?
63
63
 
@@ -70,18 +70,17 @@ to easily navigate around.
70
70
 
71
71
  While linters like ESLint can find unused imports and variables within
72
72
  individual files, Knip analyzes the entire project to determine which exports
73
- are actually unused. By building [a comprehensive module graph][7], Knip
73
+ are actually unused. By building [a comprehensive module graph][6], Knip
74
74
  identifies exports that are not imported or used anywhere in the codebase. This
75
75
  allows Knip to catch unused exports and dead code that ESLint and other linters
76
76
  would miss.
77
77
 
78
- Also see [Why isn't Knip an ESLint plugin?][8]
78
+ Also see [Why isn't Knip an ESLint plugin?][7]
79
79
 
80
80
  [1]: ../overview/getting-started.mdx
81
81
  [2]: ../reference/faq.md#what-does-knip-look-for-in-source-files
82
82
  [3]: ../guides/working-with-commonjs.md
83
83
  [4]: ../features/auto-fix.mdx
84
84
  [5]: ../features/monorepos-and-workspaces.md
85
- [6]: ../guides/performance.md#workspace-sharing
86
- [7]: ../reference/faq.md#whats-in-the-graphs
87
- [8]: ../reference/faq.md#why-isnt-knip-an-eslint-plugin
85
+ [6]: ../reference/faq.md#whats-in-the-graphs
86
+ [7]: ../reference/faq.md#why-isnt-knip-an-eslint-plugin
@@ -190,8 +190,7 @@ returned as numbers by minimist.
190
190
  [3]: #boolean
191
191
  [4]: #string
192
192
  [5]: https://github.com/webpro-nl/knip/blob/main/packages/knip/src/types/args.ts
193
- [6]:
194
- https://github.com/search?q=repo%3Awebpro-nl%2Fknip++path%3Apackages%2Fknip%2Fsrc%2Fplugins+%22const+args+%3D%22&type=code
193
+ [6]: https://github.com/search?q=repo%3Awebpro-nl%2Fknip++path%3Apackages%2Fknip%2Fsrc%2Fplugins+%22const+args+%3D%22&type=code
195
194
  [7]: #args
196
195
  [8]: #binaries
197
196
  [9]: #config
@@ -251,20 +251,20 @@ This is why plugins can implement the `resolveFromAST` function.
251
251
  ### 8. resolveFromAST
252
252
 
253
253
  Let's take a look at the Astro plugin implementation. This example assumes some
254
- familiarity with Abstract Syntax Trees (AST) and the TypeScript compiler API.
255
- Knip will provide more and more AST helpers to make implementing plugins more
256
- fun and a little less tedious.
254
+ familiarity with Abstract Syntax Trees (AST). Knip provides AST helpers to make
255
+ implementing plugins more fun and a little less tedious.
257
256
 
258
257
  Anyway, let's dive in. Here's how we're adding the Starlight `components` paths
259
258
  to the default `production` file patterns:
260
259
 
261
260
  ```ts
262
- import ts from 'typescript';
261
+ import type { Program } from 'oxc-parser';
263
262
  import {
263
+ findCallArg,
264
264
  getDefaultImportName,
265
265
  getImportMap,
266
266
  getPropertyValues,
267
- } from '../../typescript/ast-helpers.js';
267
+ } from '../../typescript/ast-helpers.ts';
268
268
 
269
269
  const title = 'Astro';
270
270
 
@@ -275,44 +275,24 @@ const production = [
275
275
  'src/actions/index.{js,ts}',
276
276
  ];
277
277
 
278
- const getComponentPathsFromSourceFile = (sourceFile: ts.SourceFile) => {
279
- const componentPaths: Set<string> = new Set();
280
- const importMap = getImportMap(sourceFile);
278
+ const getComponentPaths = (program: Program) => {
279
+ const importMap = getImportMap(program);
281
280
  const importName = getDefaultImportName(importMap, '@astrojs/starlight');
282
-
283
- function visit(node: ts.Node) {
284
- if (
285
- ts.isCallExpression(node) &&
286
- ts.isIdentifier(node.expression) &&
287
- node.expression.text === importName // match the starlight() function call
288
- ) {
289
- const starlightConfig = node.arguments[0];
290
- if (ts.isObjectLiteralExpression(starlightConfig)) {
291
- const values = getPropertyValues(starlightConfig, 'components');
292
- for (const value of values) componentPaths.add(value);
293
- }
294
- }
295
-
296
- ts.forEachChild(node, visit);
297
- }
298
-
299
- visit(sourceFile);
300
-
301
- return componentPaths;
281
+ if (!importName) return new Set<string>();
282
+ const starlightConfig = findCallArg(program, importName);
283
+ return getPropertyValues(starlightConfig, 'components');
302
284
  };
303
285
 
304
- const resolveFromAST: ResolveFromAST = (sourceFile: ts.SourceFile) => {
305
- // Include './src/components/Head.astro' and './src/components/Footer.astro'
306
- // as production entry files so they're also part of the analysis
307
- const componentPaths = getComponentPathsFromSourceFile(sourceFile);
286
+ const resolveFromAST: ResolveFromAST = (program: Program) => {
287
+ const componentPaths = getComponentPaths(program);
308
288
  return [...production, ...componentPaths].map(id => toProductionEntry(id));
309
289
  };
310
290
 
311
- const plugin: Plugin {
291
+ const plugin: Plugin = {
312
292
  title,
313
293
  production,
314
294
  resolveFromAST,
315
- }
295
+ };
316
296
 
317
297
  export default plugin;
318
298
  ```
@@ -385,8 +365,7 @@ plugin, this might be the right time to open a pull request!
385
365
  [1]: #create-a-new-plugin
386
366
  [2]: ../reference/plugins.md
387
367
  [3]: ../explanations/plugins.md#entry-files-from-config-files
388
- [4]:
389
- https://github.com/webpro-nl/knip/blob/6a6954386b33ee8a2919005230a4bc094e11bc03/knip.json#L12
368
+ [4]: https://github.com/webpro-nl/knip/blob/6a6954386b33ee8a2919005230a4bc094e11bc03/knip.json#L12
390
369
  [5]: ./inputs.md
391
370
  [6]: ../features/script-parser.md
392
371
  [7]: ./argument-parsing.md