Skip to content

Commit f96bae2

Browse files
committed
feat: more work on the configs
Signed-off-by: prisis <[email protected]>
1 parent 39314fe commit f96bae2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+5338
-1164
lines changed

.eslintignore

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

eslint.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { createConfig } from "./packages/eslint-config/dist/index.mjs"
2+
3+
export default createConfig({});
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { createConfig } from "./dist/index.mjs"
2+
3+
export default createConfig({});

packages/eslint-config/package.json

Lines changed: 47 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@
2626
"eslint-plugin-html",
2727
"eslint-plugin-i",
2828
"eslint-plugin-jsonc",
29-
"eslint-plugin-markdown",
30-
"eslint-plugin-no-loops",
29+
"eslint-markdown",
3130
"eslint-plugin-no-secrets",
3231
"eslint-plugin-no-use-extend-native",
3332
"eslint-plugin-promise",
@@ -36,7 +35,6 @@
3635
"eslint-plugin-toml",
3736
"eslint-plugin-unicorn",
3837
"eslint-plugin-yml",
39-
"eslint-plugin-array-func",
4038
"eslint-plugin-playwright",
4139
"eslint-plugin-jsdoc",
4240
"eslint-plugin-jsx-a11y",
@@ -73,27 +71,23 @@
7371
"name": "Daniel Bannert",
7472
"email": "[email protected]"
7573
},
76-
"type": "commonjs",
74+
"type": "module",
7775
"exports": {
7876
".": {
79-
"types": "./dist/index.d.ts",
80-
"require": "./dist/index.js"
81-
},
82-
"./typescript-type-checking": {
83-
"types": "./dist/typescript-type-checking.d.ts",
84-
"require": "./dist/typescript-type-checking.js"
85-
},
86-
"./globals": {
87-
"types": "./dist/globals.d.ts",
88-
"require": "./dist/globals.js"
89-
},
90-
"./define-config": {
91-
"types": "./dist/define-config.d.ts",
92-
"require": "./dist/define-config.js"
77+
"require": {
78+
"types": "./dist/index.d.cts",
79+
"default": "./dist/index.cjs"
80+
},
81+
"import": {
82+
"types": "./dist/index.d.tjs",
83+
"default": "./dist/index.mjs"
84+
}
9385
},
9486
"./package.json": "./package.json"
9587
},
96-
"main": "dist/index.js",
88+
"sideEffects": false,
89+
"main": "dist/index.cjs",
90+
"module": "dist/index.mjs",
9791
"types": "dist/index.d.ts",
9892
"bin": {
9993
"anolilab-eslint-config": "./bin/generate-eslint-cofig.js"
@@ -109,10 +103,12 @@
109103
"LICENSE.md"
110104
],
111105
"scripts": {
106+
"build:typegen": "tsx ./scripts/typegen.ts",
112107
"build": "packem build --development",
113108
"build:prod": "packem build --production",
114109
"clean": "rimraf node_modules dist",
115-
"debug:rules": "@eslint/config-inspector",
110+
"debug:rules": "pnpm exec eslint-config-inspector --config ./debug-eslint.config.mjs",
111+
"preinstall": "tsx ./scripts/typegen.ts",
116112
"lint:attw": "attw --pack",
117113
"lint:prettier": "prettier --config=.prettierrc.cjs --check .",
118114
"lint:prettier:fix": "prettier --config=.prettierrc.cjs --write .",
@@ -122,6 +118,7 @@
122118
"test:watch": "vitest"
123119
},
124120
"dependencies": {
121+
"@eslint/compat": "^1.2.4",
125122
"@antfu/install-pkg": "^0.5.0",
126123
"@babel/eslint-parser": "^7.25.9",
127124
"@babel/plugin-syntax-import-assertions": "^7.26.0",
@@ -130,13 +127,15 @@
130127
"@eslint/markdown": "^6.2.1",
131128
"@html-eslint/eslint-plugin": "^0.31.1",
132129
"@html-eslint/parser": "^0.31.0",
130+
"eslint-plugin-no-only-tests": "^3.3.0",
133131
"@jsenv/eslint-import-resolver": "^8.2.0",
134132
"@stylistic/eslint-plugin": "^2.12.1",
135-
"@typescript-eslint/eslint-plugin": "^8.18.1",
136-
"@typescript-eslint/parser": "^8.18.1",
137-
"@visulima/package": "^3.2.0",
138-
"@visulima/tsconfig": "^1.1.2",
139-
"@vitest/eslint-plugin": "^1.1.17",
133+
"typescript-eslint": "^8.18.2",
134+
"@typescript-eslint/eslint-plugin": "^8.18.2",
135+
"@typescript-eslint/parser": "^8.18.2",
136+
"@visulima/package": "^3.2.1",
137+
"@visulima/tsconfig": "^1.1.3",
138+
"@vitest/eslint-plugin": "^1.1.21",
140139
"confusing-browser-globals": "^1.0.11",
141140
"eslint-config-flat-gitignore": "^0.3.0",
142141
"eslint-flat-config-utils": "^0.4.0",
@@ -147,41 +146,41 @@
147146
"eslint-plugin-compat": "^6.0.2",
148147
"eslint-plugin-es-x": "^8.4.1",
149148
"eslint-plugin-html": "^8.1.2",
150-
"eslint-plugin-import-x": "^4.5.1",
149+
"eslint-plugin-import-x": "^4.6.1",
151150
"eslint-plugin-jsonc": "^2.18.2",
152-
"eslint-plugin-n": "^17.15.0",
153-
"eslint-plugin-no-loops": "^0.4.0",
154-
"eslint-plugin-no-only-tests": "^3.3.0",
151+
"eslint-plugin-n": "^17.15.1",
155152
"eslint-plugin-no-secrets": "^2.1.1",
156-
"eslint-plugin-no-use-extend-native": "^0.7.2",
157-
"eslint-plugin-perfectionist": "^4.3.0",
153+
"eslint-plugin-perfectionist": "^4.4.0",
158154
"eslint-plugin-promise": "^7.2.1",
159155
"eslint-plugin-regexp": "^2.7.0",
160156
"eslint-plugin-security": "^3.0.1",
157+
"eslint-plugin-simple-import-sort": "^12.1.1",
161158
"eslint-plugin-sonarjs": "^3.0.1",
162159
"eslint-plugin-toml": "^0.12.0",
163160
"eslint-plugin-unicorn": "^56.0.1",
164161
"eslint-plugin-unused-imports": "^4.1.4",
165162
"eslint-plugin-yml": "^1.16.0",
166-
"globals": "^15.13.0",
163+
"globals": "^15.14.0",
167164
"jsonc-eslint-parser": "^2.4.0",
168165
"parse-gitignore": "^2.0.0",
169166
"semver": "^7.6.3",
170167
"toml-eslint-parser": "^0.10.0",
171168
"yaml-eslint-parser": "^1.2.3"
172169
},
173170
"devDependencies": {
174-
"@types/eslint-plugin-tailwindcss": "^3.17.0",
175171
"@anolilab/prettier-config": "^5.0.14",
176172
"@anolilab/semantic-release-preset": "9.0.3",
177-
"@eslint-react/eslint-plugin": "^1.20.0",
173+
"@eslint-react/eslint-plugin": "^1.22.1",
178174
"@eslint/config-inspector": "^0.6.0",
179175
"@stylistic/eslint-plugin-migrate": "^2.12.1",
180176
"@testing-library/dom": "^10.4.0",
181177
"@total-typescript/ts-reset": "^0.6.1",
182178
"@types/confusing-browser-globals": "^1.0.3",
183179
"@types/eslint": "^9.6.1",
180+
"@types/eslint-plugin-tailwindcss": "^3.17.0",
184181
"@types/semver": "^7.5.8",
182+
"@visulima/packem": "^1.10.2",
183+
"esbuild": "^0.24.2",
185184
"eslint": "^9.17.0",
186185
"eslint-find-rules": "^4.2.0",
187186
"eslint-plugin-etc": "^2.0.3",
@@ -190,41 +189,40 @@
190189
"eslint-plugin-jsx-a11y": "^6.10.2",
191190
"eslint-plugin-no-unsanitized": "^4.1.2",
192191
"eslint-plugin-prefer-object-spread": "^1.2.1",
193-
"eslint-plugin-react": "^7.37.2",
194-
"eslint-plugin-react-refresh": "^0.4.16",
195192
"eslint-plugin-react-hooks": "^5.1.0",
193+
"eslint-plugin-react-refresh": "^0.4.16",
196194
"eslint-plugin-storybook": "^0.11.1",
197195
"eslint-plugin-tailwindcss": "^3.17.5",
198196
"eslint-plugin-testing-library": "^7.1.1",
199197
"eslint-plugin-validate-jsx-nesting": "^0.1.1",
200198
"eslint-plugin-vitest": "^0.5.4",
199+
"@eslint-react/shared": "^1.22.1",
200+
"@eslint-react/tools": "^1.20.1",
201201
"eslint-plugin-you-dont-need-lodash-underscore": "^6.14.0",
202202
"eslint-plugin-zod": "^1.4.0",
203203
"eslint-typegen": "^0.3.2",
204204
"prettier": "^3.4.2",
205205
"react": "^19.0.0",
206206
"rimraf": "^6.0.1",
207207
"semantic-release": "^24.2.0",
208-
"type-fest": "^4.30.2",
208+
"tsx": "^4.19.2",
209+
"type-fest": "^4.31.0",
209210
"typescript": "^5.7.2",
210211
"vitest": "^2.1.8"
211212
},
212213
"peerDependencies": {
213214
"@babel/core": "^7.22.20",
215+
"@eslint-react/eslint-plugin": "^1.22.1",
214216
"@tanstack/eslint-plugin-query": "^4.34.1 || ^5.0.0",
215-
"@visulima/packem": "^1.10.0",
216-
"esbuild": "^0.24.0",
217217
"eslint": "^9.10.0",
218-
"eslint-plugin-array-func": "^4.0.0",
219218
"eslint-plugin-format": ">=0.1.0",
220219
"eslint-plugin-jsdoc": "^46.8.2",
221220
"eslint-plugin-jsx-a11y": "^6.7.1",
222221
"eslint-plugin-no-unsanitized": "^4.0.2",
223222
"eslint-plugin-playwright": "^0.16.0 || ^0.18.0",
224223
"eslint-plugin-prefer-object-spread": "^1.2.1",
225-
"eslint-plugin-react": "^7.33.2",
226-
"eslint-plugin-react-refresh": "^0.4.16",
227224
"eslint-plugin-react-hooks": "^4.6.0",
225+
"eslint-plugin-react-refresh": "^0.4.16",
228226
"eslint-plugin-storybook": "^0.6.14",
229227
"eslint-plugin-tailwindcss": "^3.13.0",
230228
"eslint-plugin-testing-library": "^6.0.1",
@@ -236,9 +234,6 @@
236234
"@tanstack/eslint-plugin-query": {
237235
"optional": true
238236
},
239-
"eslint-plugin-array-func": {
240-
"optional": true
241-
},
242237
"eslint-plugin-jsdoc": {
243238
"optional": true
244239
},
@@ -291,5 +286,12 @@
291286
"publishConfig": {
292287
"access": "public",
293288
"provenance": true
289+
},
290+
"typesVersions": {
291+
">=5.0": {
292+
".": [
293+
"./dist/index.d.ts"
294+
]
295+
}
294296
}
295297
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { defineConfig } from "@visulima/packem/config";
2+
import transformer from "@visulima/packem/transformer/esbuild";
3+
4+
// eslint-disable-next-line import/no-unused-modules
5+
export default defineConfig({
6+
declaration: false,
7+
rollup: {
8+
license: {
9+
path: "./LICENSE.md",
10+
},
11+
node10Compatibility: {
12+
typeScriptVersion: ">=5.0",
13+
writeToPackageJson: true,
14+
},
15+
},
16+
validation: {
17+
packageJson: {
18+
exports: false,
19+
},
20+
},
21+
transformer,
22+
});

packages/eslint-config/scripts/typegen.ts

Lines changed: 53 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,36 @@ import fs from "node:fs/promises";
22

33
import { flatConfigsToRulesDTS } from "eslint-typegen/core";
44
import { builtinRules } from "eslint/use-at-your-own-risk";
5+
import combine from "../src/utils/combine";
56

6-
import {
7-
astro,
8-
combine,
9-
comments,
10-
formatters,
11-
imports,
12-
javascript,
13-
jsdoc,
14-
jsonc,
15-
jsx,
16-
markdown,
17-
node,
18-
perfectionist,
19-
react,
20-
regexp,
21-
solid,
22-
sortPackageJson,
23-
stylistic,
24-
svelte,
25-
test,
26-
toml,
27-
typescript,
28-
unicorn,
29-
unocss,
30-
vue,
31-
yaml,
32-
} from "../src";
7+
// import {
8+
// astro,
9+
// combine,
10+
// comments,
11+
// formatters,
12+
// imports,
13+
// javascript,
14+
// jsdoc,
15+
// jsonc,
16+
// jsx,
17+
// markdown,
18+
// node,
19+
// perfectionist,
20+
// react,
21+
// regexp,
22+
// solid,
23+
// sortPackageJson,
24+
// stylistic,
25+
// svelte,
26+
// test,
27+
// toml,
28+
// typescript,
29+
// unicorn,
30+
// unocss,
31+
// vue,
32+
// yaml,
33+
// } from "../src";
34+
import yaml from "../src/config/plugins/yml";
3335

3436
const configs = await combine(
3537
{
@@ -39,30 +41,30 @@ const configs = await combine(
3941
},
4042
},
4143
},
42-
astro(),
43-
comments(),
44-
formatters(),
45-
imports(),
46-
javascript(),
47-
jsx(),
48-
jsdoc(),
49-
jsonc(),
50-
markdown(),
51-
node(),
52-
perfectionist(),
53-
react(),
54-
solid(),
55-
sortPackageJson(),
56-
stylistic(),
57-
svelte(),
58-
test(),
59-
toml(),
60-
regexp(),
61-
typescript(),
62-
unicorn(),
63-
unocss(),
64-
vue(),
65-
yaml(),
44+
// astro(),
45+
// comments(),
46+
// formatters(),
47+
// imports(),
48+
// javascript(),
49+
// jsx(),
50+
// jsdoc(),
51+
// jsonc(),
52+
// markdown(),
53+
// node(),
54+
// perfectionist(),
55+
// react(),
56+
// solid(),
57+
// sortPackageJson(),
58+
// stylistic(),
59+
// svelte(),
60+
// test(),
61+
// toml(),
62+
// regexp(),
63+
// typescript(),
64+
// unicorn(),
65+
// unocss(),
66+
// vue(),
67+
yaml({}),
6668
);
6769

6870
const configNames = configs.map((i) => i.name).filter(Boolean) as string[];

0 commit comments

Comments
 (0)