Skip to content

Commit 48dea88

Browse files
committed
Refactor ESLint configuration and update TypeScript imports for consistency
1 parent d5a75d7 commit 48dea88

File tree

18 files changed

+2572
-1141
lines changed

18 files changed

+2572
-1141
lines changed

.eslintrc.js

Lines changed: 0 additions & 53 deletions
This file was deleted.

.knip.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"$schema": "https://unpkg.com/knip@5/schema.json",
3+
"entry": ["src/**/*.js", "src/**/*.ts", "src/**/*.tsx"],
4+
"ignore": [],
5+
"ignoreBinaries": [],
6+
"ignoreDependencies": [],
7+
"project": ["/*.js", "src/**/*.js", "src/**/*.ts", "src/**/*.tsx"]
8+
}

.ncurc.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"dep": ["prod", "dev", "optional", "peer"],
3+
"peer": true
4+
}

.ts-prunerc.js

Lines changed: 0 additions & 4 deletions
This file was deleted.

babel.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module.exports = {
2-
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
2+
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
33
};

eslint.config.mjs

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import docusaurus from '@docusaurus/eslint-plugin';
2+
import typescriptEslint from '@typescript-eslint/eslint-plugin';
3+
import jsxA11Y from 'eslint-plugin-jsx-a11y';
4+
import react from 'eslint-plugin-react';
5+
import tsParser from '@typescript-eslint/parser';
6+
import path from 'node:path';
7+
import { fileURLToPath } from 'node:url';
8+
import js from '@eslint/js';
9+
import { FlatCompat } from '@eslint/eslintrc';
10+
11+
const __filename = fileURLToPath(import.meta.url);
12+
const __dirname = path.dirname(__filename);
13+
const compat = new FlatCompat({
14+
baseDirectory: __dirname,
15+
recommendedConfig: js.configs.recommended,
16+
allConfig: js.configs.all,
17+
});
18+
19+
export default [
20+
{
21+
ignores: ['**/assets/**/*'],
22+
},
23+
...compat.extends('eslint:recommended', 'plugin:@docusaurus/recommended', 'plugin:mdx/recommended'),
24+
{
25+
plugins: {
26+
'@docusaurus': docusaurus,
27+
},
28+
},
29+
...compat
30+
.extends(
31+
'plugin:@typescript-eslint/recommended',
32+
'plugin:@typescript-eslint/recommended-requiring-type-checking',
33+
'plugin:jsx-a11y/recommended',
34+
'plugin:react/recommended'
35+
)
36+
.map((config) => ({
37+
...config,
38+
files: ['src/**/*.js', 'src/**/*.jsx', 'src/**/*.ts', 'src/**/*.tsx'],
39+
})),
40+
{
41+
files: ['src/**/*.js', 'src/**/*.jsx', 'src/**/*.ts', 'src/**/*.tsx'],
42+
43+
plugins: {
44+
'@typescript-eslint': typescriptEslint,
45+
'jsx-a11y': jsxA11Y,
46+
react,
47+
},
48+
49+
languageOptions: {
50+
parser: tsParser,
51+
ecmaVersion: 'latest',
52+
sourceType: 'module',
53+
54+
parserOptions: {
55+
ecmaFeatures: {
56+
jsx: true,
57+
},
58+
59+
project: ['./tsconfig.json'],
60+
tsconfigRootDir: '/Users/moppitz/Workspace/kolibri/public-ui.github.io',
61+
},
62+
},
63+
64+
settings: {
65+
react: {
66+
version: 'detect',
67+
},
68+
},
69+
70+
rules: {
71+
'@typescript-eslint/consistent-type-imports': 'warn',
72+
'@typescript-eslint/no-duplicate-type-constituents': 'off',
73+
'@typescript-eslint/no-redundant-type-constituents': 'off',
74+
'@typescript-eslint/no-unsafe-member-access': 'off',
75+
'@typescript-eslint/no-unsafe-return': 'off',
76+
},
77+
},
78+
];

package.json

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,22 @@
2222
"ncu:patch": "ncu -t patch -u",
2323
"gen:doc": "node scripts/autogen.doc.js",
2424
":prepack": "npm run build",
25-
"ts-prune": "ts-prune src",
25+
"unused": "knip",
2626
"postinstall": "npm-run-all postinstall:*",
2727
"postinstall:components-assets": "cpy \"node_modules/@public-ui/components/assets/**/*\" static/assets --dot",
2828
"postinstall:themes-assets": "cpy \"node_modules/@public-ui/themes/assets/**/*\" static/assets --dot",
2929
"update": "pnpm ncu:minor && pnpm ncu:major",
3030
"regenerate:version": "rimraf i18n/en/docusaurus-plugin-content-docs/version-2.0 versioned_docs/version-2.0 versioned_readmes/2.0 versioned_sidebars/version-2.0-sidebars.json && npm run docusaurus docs:version 2.0"
3131
},
3232
"dependencies": {
33-
"@docusaurus/core": "3.4.0",
34-
"@docusaurus/eslint-plugin": "3.4.0",
35-
"@docusaurus/plugin-client-redirects": "3.4.0",
36-
"@docusaurus/plugin-ideal-image": "3.4.0",
37-
"@docusaurus/plugin-pwa": "3.4.0",
38-
"@docusaurus/preset-classic": "3.4.0",
39-
"@docusaurus/theme-mermaid": "3.4.0",
40-
"@docusaurus/theme-translations": "3.4.0",
33+
"@docusaurus/core": "3.6.3",
34+
"@docusaurus/eslint-plugin": "3.6.3",
35+
"@docusaurus/plugin-client-redirects": "3.6.3",
36+
"@docusaurus/plugin-ideal-image": "3.6.3",
37+
"@docusaurus/plugin-pwa": "3.6.3",
38+
"@docusaurus/preset-classic": "3.6.3",
39+
"@docusaurus/theme-mermaid": "3.6.3",
40+
"@docusaurus/theme-translations": "3.6.3",
4141
"@leanup/form": "1.3.54",
4242
"@mdx-js/react": "3.1.0",
4343
"@monaco-editor/react": "4.6.0",
@@ -46,38 +46,40 @@
4646
"@public-ui/themes": "next",
4747
"classnames": "2.5.1",
4848
"docusaurus-lunr-search": "3.5.0",
49-
"mermaid": "10.9.3",
49+
"mermaid": "11.4.1",
5050
"prettier": "2.8.8",
51-
"react": "18.3.1",
52-
"react-dom": "18.3.1",
51+
"react": "19.0.0",
52+
"react-dom": "19.0.0",
5353
"read-excel-file": "5.8.6"
5454
},
5555
"devDependencies": {
5656
"@docsearch/react": "3.8.0",
57-
"@docusaurus/module-type-aliases": "3.4.0",
58-
"@docusaurus/types": "3.4.0",
57+
"@docusaurus/module-type-aliases": "3.6.3",
58+
"@docusaurus/types": "3.6.3",
59+
"@eslint/eslintrc": "3.2.0",
60+
"@eslint/js": "9.16.0",
5961
"@tsconfig/docusaurus": "2.0.3",
6062
"@types/prettier": "2.7.3",
61-
"@typescript-eslint/eslint-plugin": "7.18.0",
62-
"@typescript-eslint/parser": "7.18.0",
63+
"@typescript-eslint/eslint-plugin": "8.18.0",
64+
"@typescript-eslint/parser": "8.18.0",
6365
"adopted-style-sheets": "1.1.6",
6466
"autoprefixer": "10.4.20",
6567
"cpy-cli": "5.0.0",
6668
"depcheck": "1.4.7",
67-
"docusaurus-plugin-sass": "0.2.5",
68-
"eslint": "8.57.1",
69+
"docusaurus-plugin-sass": "0.2.6",
70+
"eslint": "9.16.0",
6971
"eslint-plugin-jsx-a11y": "6.10.2",
7072
"eslint-plugin-mdx": "3.1.5",
7173
"eslint-plugin-react": "7.37.2",
7274
"html-minifier-terser": "7.2.0",
75+
"knip": "5.39.2",
7376
"npm-check-updates": "17.1.11",
7477
"npm-run-all": "4.1.5",
7578
"postcss": "8.4.49",
7679
"prop-types": "15.8.1",
7780
"rimraf": "3.0.2",
78-
"sass": "1.81.0",
79-
"tailwindcss": "3.4.15",
80-
"ts-prune": "0.10.3",
81+
"sass": "1.82.0",
82+
"tailwindcss": "3.4.16",
8183
"typescript": "5.7.2"
8284
},
8385
"browserslist": {

0 commit comments

Comments
 (0)