Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
215 changes: 215 additions & 0 deletions knip.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
const PACKAGE_FILES = ['*.config.{js,ts,mjs,cjs}', '*.{js,ts,mjs,cjs}'];
const PROJECT_FILES = ['*.{js,ts,mjs,cjs}'];
const SOURCE_FILES = ['src/**/*.{js,ts,tsx}'];
const SOURCE_INDEX = ['src/**/index.{js,ts,tsx}'];
const BUILD_FILES = ['build/**/*.{js,ts}'];
const DEFINE_ENTRIES = ['src/**/define.ts'];
const SERVER_ENTRIES = ['src/**/server.ts'];
const EXAMPLE_ENTRIES = ['src/**/*.examples.ts'];
const TEST_ENTRIES = ['src/**/*.test.{ts,tsx}'];
const TEST_VARIANT_ENTRIES = ['src/**/*.test.*.ts'];
const BUNDLE_ENTRIES = ['src/bundle.ts'];
const VITE_CONFIGS = ['vite*.ts'];
const VITEST_CONFIGS = ['vitest*.ts'];

/** @type {import('knip').KnipConfig} */
export default {
exclude: ['catalog'],
ignoreBinaries: ['codesign', 'config/vale/bin/vale'],
ignoreDependencies: [
'@eslint/js',
'@internals/patterns',
'@internals/testing',
'@lit-labs/ssr-client',
'@nvidia-elements/forms',
'@nvidia-elements/lint',
'@nvidia-elements/markdown',
'@nvidia-elements/styles',
'@semantic-release/commit-analyzer',
'@semantic-release/github',
'@semantic-release/npm',
'@semantic-release/release-notes-generator',
'@typescript-eslint/parser',
'@typescript/lib-dom',
'adm-zip',
'archiver',
'axe-core',
'bun',
'esbuild',
'glob',
'highlight.js',
'lit',
'lit-html',
'markdown-it',
'minisearch',
'monaco-editor',
'open',
'publint',
'stylelint',
'stylelint-config-standard',
'ts-morph',
'vite-plugin-virtual-html'
],
ignoreFiles: ['projects/internals/vite/src/index.d.ts'],
ignoreWorkspaces: ['projects/starters', 'projects/starters/**'],
ignoreUnresolved: [
'^\\.\\./test/demo\\.js$' // grid.examples.ts
],
treatConfigHintsAsErrors: true,
// Keep this map explicit so package additions and entrypoint changes are reviewed.
workspaces: {
'.': {
entry: ['stylelint.config.mjs', 'config/**/*.mjs', 'projects/internals/ci/**/*.js'],
project: ['*.{js,mjs}', 'config/**/*.mjs', 'projects/internals/ci/**/*.js']
},
'projects/cli': {
entry: [...PACKAGE_FILES, ...SOURCE_INDEX, ...TEST_ENTRIES, ...VITE_CONFIGS, ...VITEST_CONFIGS],
project: [...PROJECT_FILES, ...SOURCE_FILES]
},
'projects/code': {
entry: [
...PACKAGE_FILES,
...SOURCE_INDEX,
...DEFINE_ENTRIES,
...EXAMPLE_ENTRIES,
...TEST_ENTRIES,
...TEST_VARIANT_ENTRIES,
...BUNDLE_ENTRIES,
...VITE_CONFIGS,
...VITEST_CONFIGS
],
project: [...PROJECT_FILES, ...SOURCE_FILES]
},
'projects/core': {
entry: [
...PACKAGE_FILES,
...BUILD_FILES,
...SOURCE_INDEX,
...DEFINE_ENTRIES,
...SERVER_ENTRIES,
...EXAMPLE_ENTRIES,
...TEST_ENTRIES,
...TEST_VARIANT_ENTRIES,
...BUNDLE_ENTRIES,
...VITE_CONFIGS,
...VITEST_CONFIGS
],
project: [...PROJECT_FILES, ...BUILD_FILES, ...SOURCE_FILES]
},
'projects/create': {
entry: [...PACKAGE_FILES, ...SOURCE_INDEX, ...VITE_CONFIGS],
project: [...PROJECT_FILES, ...SOURCE_FILES]
},
'projects/forms': {
entry: [
...PACKAGE_FILES,
...SOURCE_INDEX,
...EXAMPLE_ENTRIES,
...TEST_ENTRIES,
...TEST_VARIANT_ENTRIES,
...VITE_CONFIGS,
...VITEST_CONFIGS
],
project: [...PROJECT_FILES, ...SOURCE_FILES]
},
'projects/internals/eslint': {
entry: [...SOURCE_INDEX],
project: [...SOURCE_FILES]
},
'projects/internals/metadata': {
entry: [...PACKAGE_FILES, ...SOURCE_INDEX, ...TEST_ENTRIES, ...VITE_CONFIGS, ...VITEST_CONFIGS],
project: [...PROJECT_FILES, ...SOURCE_FILES]
},
'projects/internals/patterns': {
entry: [...PACKAGE_FILES, ...SOURCE_INDEX, ...EXAMPLE_ENTRIES, ...VITE_CONFIGS],
project: [...PROJECT_FILES, ...SOURCE_FILES]
},
'projects/internals/testing': {
entry: [...PACKAGE_FILES, ...SOURCE_INDEX, ...VITE_CONFIGS],
project: [...PROJECT_FILES, ...SOURCE_FILES]
},
'projects/internals/tools': {
entry: [...PACKAGE_FILES, ...SOURCE_INDEX, ...TEST_ENTRIES, ...VITE_CONFIGS, ...VITEST_CONFIGS],
project: [...PROJECT_FILES, ...SOURCE_FILES]
},
'projects/internals/vite': {
entry: [...SOURCE_INDEX],
project: [...SOURCE_FILES]
},
'projects/lint': {
entry: [...PACKAGE_FILES, ...SOURCE_INDEX, ...TEST_ENTRIES, ...VITE_CONFIGS, ...VITEST_CONFIGS],
project: [...PROJECT_FILES, ...SOURCE_FILES]
},
'projects/markdown': {
entry: [
...PACKAGE_FILES,
...SOURCE_INDEX,
...DEFINE_ENTRIES,
...EXAMPLE_ENTRIES,
...TEST_ENTRIES,
...TEST_VARIANT_ENTRIES,
...VITE_CONFIGS,
...VITEST_CONFIGS
],
project: [...PROJECT_FILES, ...SOURCE_FILES]
},
'projects/media': {
entry: [
...PACKAGE_FILES,
...SOURCE_INDEX,
...TEST_ENTRIES,
...TEST_VARIANT_ENTRIES,
...VITE_CONFIGS,
...VITEST_CONFIGS
],
project: [...PROJECT_FILES, ...SOURCE_FILES]
},
'projects/monaco': {
entry: [
...PACKAGE_FILES,
...BUILD_FILES,
...SOURCE_INDEX,
...DEFINE_ENTRIES,
...EXAMPLE_ENTRIES,
...TEST_ENTRIES,
...TEST_VARIANT_ENTRIES,
...BUNDLE_ENTRIES,
...VITE_CONFIGS,
...VITEST_CONFIGS
],
project: [...PROJECT_FILES, ...BUILD_FILES, ...SOURCE_FILES]
},
'projects/pages': {
entry: [...PROJECT_FILES],
project: [...PROJECT_FILES]
},
'projects/site': {
entry: [...PACKAGE_FILES, 'src/**/*.{js,ts}', ...VITEST_CONFIGS],
project: [...PACKAGE_FILES, 'src/**/*.{js,ts}', ...VITEST_CONFIGS]
},
'projects/styles': {
entry: [
...PACKAGE_FILES,
...BUILD_FILES,
...SOURCE_INDEX,
...EXAMPLE_ENTRIES,
...TEST_VARIANT_ENTRIES,
...VITE_CONFIGS,
...VITEST_CONFIGS
],
project: [...PROJECT_FILES, ...BUILD_FILES, ...SOURCE_FILES]
},
'projects/themes': {
entry: [
...PACKAGE_FILES,
...BUILD_FILES,
...SOURCE_INDEX,
...EXAMPLE_ENTRIES,
...TEST_VARIANT_ENTRIES,
...VITE_CONFIGS,
...VITEST_CONFIGS
],
project: [...PROJECT_FILES, ...BUILD_FILES, ...SOURCE_FILES]
}
}
};
44 changes: 44 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"prepare": "wireit",
"release": "wireit",
"commitlint": "commitlint --edit",
"lint:knip": "wireit",
"lint:vale": "wireit",
"lint:vale:sync": "config/vale/bin/vale sync"
},
Expand All @@ -41,6 +42,7 @@
"commitlint": "19.5.0",
"glob": "catalog:",
"husky": "9.1.7",
"knip": "6.11.0",
"lint-staged": "15.3.0",
"playwright": "catalog:",
"prettier": "3.4.2",
Expand All @@ -59,6 +61,7 @@
"ci": {
"script": "pnpm run format && pnpm run lint:vale",
"dependencies": [
"lint:knip",
"notice",
"./projects/code:ci",
"./projects/cli:ci",
Expand Down Expand Up @@ -254,6 +257,47 @@
"lint:vale": {
"command": "config/vale/bin/vale --config .vale.ini projects/*/src projects/*/README.md projects/*/*/src projects/*/*/README.md --glob='!{**/starters/**,**/404/**,**/vendor/**,**/changelog/**,**/icons/**,**/generated/**,**/dist/**,**/LICENSE*,**/CHANGELOG*,**/*.test.*}'"
},
"lint:knip": {
"command": "knip --cache --config knip.config.js",
"dependencies": [
{
"script": "./projects/internals/metadata:build",
"cascade": false
},
{
"script": "./projects/internals/tools:build",
"cascade": false
}
],
"files": [
"./knip.config.js",
"./package.json",
"./pnpm-lock.yaml",
"./pnpm-workspace.yaml",
"./.github/**/*.{yml,yaml}",
"./.husky/**/*",
"./config/**/*",
"./projects/**/*.{js,ts,tsx,json,mjs,cjs,vue,svelte}",
"!**/node_modules/**",
"!**/dist/**",
"!**/.11ty-vite/**",
"!**/.eslintcache/**",
"!**/.wireit/**",
"!**/.next/**",
"!**/.output/**",
"!**/__screenshots__/**",
"!**/coverage/**",
"!projects/starters/**",
"!projects/core/src/icon/icons.ts",
"!projects/internals/metadata/static/**",
"!projects/monaco/src/themes/generated/**",
"!projects/**/src/vendor/**/*",
"!projects/**/.screencast/.auth/*"
],
"output": [
"node_modules/.cache/knip/**"
]
},
"notice": {
"command": "node ./projects/internals/ci/notice/index.js",
"files": [
Expand Down
Loading
Loading