Skip to content

Commit 0485dfe

Browse files
build: use new eslint config
1 parent a5719b5 commit 0485dfe

File tree

4 files changed

+432
-188
lines changed

4 files changed

+432
-188
lines changed

.eslintrc.json

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

eslint.config.js

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
// @ts-check
2+
import rsEslint from "@rebeccastevens/eslint-config";
3+
import pluginEslint from "eslint-plugin-eslint-plugin";
4+
5+
export default rsEslint(
6+
{
7+
typescript: {
8+
tsconfig: "tsconfig.eslint.json",
9+
unsafe: "off",
10+
},
11+
stylistic: true,
12+
functional: "lite",
13+
formatters: true,
14+
jsonc: true,
15+
markdown: true,
16+
yaml: true,
17+
ignores: ["tests-compiled/"],
18+
},
19+
{
20+
plugins: {
21+
eslint: pluginEslint,
22+
},
23+
rules: {
24+
"functional/prefer-immutable-types": "off",
25+
26+
// Some types say they have nonnullable properties, but they don't always.
27+
"ts/no-unnecessary-condition": "off",
28+
29+
"eslint/fixer-return": "error",
30+
"eslint/meta-property-ordering": "error",
31+
"eslint/no-deprecated-context-methods": "error",
32+
"eslint/no-deprecated-report-api": "error",
33+
"eslint/no-missing-message-ids": "error",
34+
"eslint/no-missing-placeholders": "error",
35+
"eslint/no-property-in-node": "error",
36+
"eslint/no-unused-message-ids": "error",
37+
"eslint/no-unused-placeholders": "error",
38+
"eslint/no-useless-token-range": "error",
39+
"eslint/prefer-message-ids": "error",
40+
"eslint/prefer-object-rule": "error",
41+
"eslint/prefer-placeholders": "error",
42+
"eslint/prefer-replace-text": "error",
43+
"eslint/report-message-format": "error",
44+
"eslint/require-meta-docs-description": "error",
45+
"eslint/require-meta-docs-url": "error",
46+
"eslint/require-meta-fixable": "error",
47+
"eslint/require-meta-has-suggestions": "error",
48+
"eslint/require-meta-schema": "error",
49+
"eslint/require-meta-type": "error",
50+
"eslint/consistent-output": "error",
51+
"eslint/no-identical-tests": "error",
52+
"eslint/no-only-tests": "error",
53+
"eslint/prefer-output-null": "error",
54+
"eslint/test-case-property-ordering": "error",
55+
"eslint/test-case-shorthand-strings": "error",
56+
},
57+
},
58+
{
59+
files: ["src/configs/", "src/index.ts"],
60+
rules: {
61+
"ts/naming-convention": "off",
62+
},
63+
},
64+
{
65+
files: ["src/utils/type-guards.ts", "src/utils/node-types.ts"],
66+
rules: {
67+
"jsdoc/require-jsdoc": "off",
68+
},
69+
},
70+
{
71+
files: ["src/utils/conditional-imports/"],
72+
rules: {
73+
"@typescript-eslint/no-var-requires": "off",
74+
"functional/functional-parameters": "off",
75+
"functional/no-try-statements": "off",
76+
"import/no-extraneous-dependencies": [
77+
"error",
78+
{
79+
peerDependencies: true,
80+
},
81+
],
82+
"unicorn/prefer-module": "off",
83+
},
84+
},
85+
{
86+
files: ["tests/"],
87+
rules: {
88+
"functional/no-return-void": "off",
89+
"jsdoc/require-jsdoc": "off",
90+
},
91+
},
92+
{
93+
files: ["cz-adapter/"],
94+
rules: {
95+
"no-console": "off",
96+
97+
"import/no-extraneous-dependencies": [
98+
"error",
99+
{
100+
devDependencies: true,
101+
peerDependencies: true,
102+
},
103+
],
104+
"import/no-useless-path-segments": "off",
105+
106+
"jsdoc/require-jsdoc": "off",
107+
108+
"functional/immutable-data": "off",
109+
"functional/no-conditional-statements": "off",
110+
"functional/no-expression-statements": "off",
111+
"functional/no-loop-statements": "off",
112+
"functional/no-return-void": "off",
113+
"functional/no-throw-statements": "off",
114+
},
115+
},
116+
);

package.json

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
"contributors": [
3434
"Jonas Kello"
3535
],
36+
"type": "module",
3637
"exports": {
3738
"types": {
3839
"require": "./lib/index.d.cts",
@@ -97,6 +98,7 @@
9798
"@semantic-release/github": "10.0.2",
9899
"@semantic-release/npm": "12.0.0",
99100
"@semantic-release/release-notes-generator": "13.0.0",
101+
"@stylistic/eslint-plugin": "1.7.0",
100102
"@types/dedent": "0.7.2",
101103
"@types/eslint": "8.56.6",
102104
"@types/node": "18.18.0",
@@ -116,21 +118,26 @@
116118
"eslint": "9.0.0-rc.0",
117119
"eslint-config-prettier": "9.1.0",
118120
"eslint-doc-generator": "1.7.0",
119-
"eslint-import-resolver-typescript": "3.6.1",
120121
"eslint-plugin-eslint-comments": "3.2.0",
121122
"eslint-plugin-eslint-plugin": "5.4.1",
122-
"eslint-plugin-import": "2.29.1",
123+
"eslint-plugin-format": "0.1.0",
124+
"eslint-plugin-import-x": "0.5.0",
123125
"eslint-plugin-jsdoc": "48.2.2",
126+
"eslint-plugin-jsonc": "2.14.1",
124127
"eslint-plugin-markdown": "4.0.1",
125128
"eslint-plugin-n": "16.6.2",
129+
"eslint-plugin-no-only-tests": "3.1.0",
126130
"eslint-plugin-optimize-regex": "1.2.1",
127131
"eslint-plugin-prettier": "5.1.3",
128132
"eslint-plugin-promise": "6.1.1",
133+
"eslint-plugin-regexp": "2.4.0",
129134
"eslint-plugin-sonarjs": "0.25.0",
130135
"eslint-plugin-unicorn": "51.0.1",
131136
"eslint-plugin-vitest": "0.4.1",
137+
"eslint-plugin-yml": "1.13.2",
132138
"espree": "10.0.1",
133139
"husky": "9.0.11",
140+
"jsonc-eslint-parser": "2.4.0",
134141
"knip": "5.7.0",
135142
"lint-staged": "15.2.2",
136143
"markdownlint": "0.34.0",
@@ -151,7 +158,8 @@
151158
"typescript": "5.4.3",
152159
"vite-tsconfig-paths": "4.3.2",
153160
"vitest": "1.4.0",
154-
"word-wrap": "1.2.5"
161+
"word-wrap": "1.2.5",
162+
"yaml-eslint-parser": "1.2.2"
155163
},
156164
"peerDependencies": {
157165
"eslint": "9.0.0-rc.0 || ^9.0.0",

0 commit comments

Comments
 (0)