@rlly/pedantic 0.1.0 → 0.1.2

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.
package/README.md CHANGED
@@ -1 +1,20 @@
1
1
  # @rlly/pedantic
2
+
3
+ ```bash
4
+ pnpm add -D -w @rlly/pedantic oxlint
5
+ # optionally install
6
+ pnpm add -D -w oxlint-tsgolint @e18e/eslint-plugin
7
+ ```
8
+
9
+ ```json
10
+ {
11
+ "$schema": "./node_modules/oxlint/configuration_schema.json",
12
+ "extends": [
13
+ "./node_modules/@rlly/pedantic/oxlint/core.json", // <-- always recommended
14
+ "./node_modules/@rlly/pedantic/oxlint/e18e.json",
15
+ "./node_modules/@rlly/pedantic/oxlint/type-aware.json",
16
+ "./node_modules/@rlly/pedantic/oxlint/vitest.json",
17
+ "./node_modules/@rlly/pedantic/oxlint/library.json"
18
+ ]
19
+ }
20
+ ```
@@ -0,0 +1,244 @@
1
+ {
2
+ "$schema": "../node_modules/oxlint/configuration_schema.json",
3
+ "plugins": [
4
+ "eslint",
5
+ "import",
6
+ "jsdoc",
7
+ "node",
8
+ "oxc",
9
+ "promise",
10
+ "typescript",
11
+ "unicorn"
12
+ ],
13
+ "rules": {
14
+ "eslint/array-callback-return": ["error", { "checkForEach": true }],
15
+ "eslint/block-scoped-var": "error",
16
+ "eslint/default-case": "error",
17
+ "eslint/default-case-last": "error",
18
+ "eslint/default-param-last": "error",
19
+ "eslint/func-names": "error",
20
+ "eslint/getter-return": "error",
21
+ "eslint/new-cap": "error",
22
+ "eslint/no-alert": "warn",
23
+ "eslint/no-array-constructor": "error",
24
+ "eslint/yoda": "warn",
25
+ "eslint/symbol-description": "warn",
26
+ "eslint/require-await": "warn",
27
+ "eslint/radix": "warn",
28
+ "eslint/preserve-caught-error": "error",
29
+ "eslint/prefer-template": "warn",
30
+ "eslint/prefer-spread": "error",
31
+ "eslint/prefer-rest-params": "error",
32
+ "eslint/prefer-promise-reject-errors": "error",
33
+ "eslint/prefer-object-spread": "error",
34
+ "eslint/prefer-object-has-own": "warn",
35
+ "eslint/prefer-numeric-literals": "warn",
36
+ "eslint/prefer-exponentiation-operator": "warn",
37
+ "eslint/prefer-const": "error",
38
+ "eslint/operator-assignment": "warn",
39
+ "eslint/no-var": "error",
40
+ "eslint/no-useless-return": "error",
41
+ "eslint/no-useless-computed-key": "warn",
42
+ "eslint/no-useless-call": "error",
43
+ "eslint/no-unreachable": "warn",
44
+ "eslint/no-unneeded-ternary": "warn",
45
+ "eslint/no-unexpected-multiline": "error",
46
+ "eslint/no-undefined": "warn",
47
+ "eslint/no-throw-literal": "error",
48
+ "eslint/no-template-curly-in-string": "warn",
49
+ "eslint/no-sequences": "error",
50
+ "eslint/no-self-compare": "error",
51
+ "eslint/no-script-url": "error",
52
+ "eslint/no-return-assign": "error",
53
+ "eslint/no-regex-spaces": "warn",
54
+ "eslint/no-redeclare": "error",
55
+ "eslint/no-prototype-builtins": "error",
56
+ "eslint/no-proto": "error",
57
+ "eslint/no-promise-executor-return": "error",
58
+ "eslint/no-param-reassign": "warn",
59
+ "eslint/no-object-constructor": "error",
60
+ "eslint/no-new-wrappers": "warn",
61
+ "eslint/no-new-func": "error",
62
+ "eslint/no-multi-str": "error",
63
+ "eslint/no-multi-assign": "error",
64
+ "eslint/no-misleading-character-class": "error",
65
+ "eslint/no-loop-func": "error",
66
+ "eslint/no-lonely-if": "warn",
67
+ "eslint/no-lone-blocks": "error",
68
+ "eslint/no-label-var": "warn",
69
+ "eslint/no-iterator": "error",
70
+ "eslint/no-inner-declarations": "warn",
71
+ "eslint/no-implicit-coercion": ["warn", { "allow": ["!!"] }],
72
+ "eslint/no-fallthrough": "warn",
73
+ "eslint/no-extra-label": "error",
74
+ "eslint/no-extra-bind": "warn",
75
+ "eslint/no-extend-native": "error",
76
+ "eslint/no-eq-null": "error",
77
+ "eslint/no-empty-function": "warn",
78
+ "eslint/no-empty": "error",
79
+ "eslint/no-else-return": "error",
80
+ "eslint/no-duplicate-imports": [
81
+ "warn",
82
+ { "allowSeparateTypeImports": true, "includeExports": true }
83
+ ],
84
+ "eslint/no-constructor-return": "error",
85
+ "import/no-absolute-path": "error",
86
+ "import/no-amd": "error",
87
+ "import/no-anonymous-default-export": ["error", { "allowObject": true }],
88
+ "import/no-commonjs": "warn",
89
+ "import/no-default-export": "warn",
90
+ "import/no-dynamic-require": "warn",
91
+ "import/no-empty-named-blocks": "error",
92
+ "jsdoc/empty-tags": "error",
93
+ "jsdoc/check-tag-names": "error",
94
+ "jsdoc/check-property-names": "error",
95
+ "jsdoc/check-access": "error",
96
+ "node/global-require": "warn",
97
+ "node/no-exports-assign": "warn",
98
+ "node/no-new-require": "error",
99
+ "oxc/no-this-in-exported-function": "error",
100
+ "oxc/no-map-spread": "warn",
101
+ "oxc/no-barrel-file": "warn",
102
+ "oxc/no-accumulating-spread": "warn",
103
+ "oxc/misrefactored-assign-op": "error",
104
+ "oxc/branches-sharing-code": "error",
105
+ "oxc/bad-bitwise-operator": "error",
106
+ "oxc/approx-constant": "error",
107
+ "promise/valid-params": "error",
108
+ "promise/spec-only": "error",
109
+ "promise/prefer-catch": "error",
110
+ "promise/prefer-await-to-then": "error",
111
+ "promise/prefer-await-to-callbacks": "error",
112
+ "promise/param-names": "error",
113
+ "promise/no-return-wrap": "error",
114
+ "promise/no-return-in-finally": "error",
115
+ "promise/no-promise-in-callback": "error",
116
+ "promise/no-new-statics": "error",
117
+ "promise/no-nesting": "error",
118
+ "promise/no-multiple-resolved": "error",
119
+ "promise/no-callback-in-promise": "warn",
120
+ "promise/catch-or-return": "error",
121
+ "promise/avoid-new": "warn",
122
+ "promise/always-return": ["warn", { "ignoreLastCallback": true }],
123
+ "typescript/prefer-ts-expect-error": "error",
124
+ "typescript/prefer-function-type": "warn",
125
+ "typescript/prefer-for-of": "warn",
126
+ "typescript/no-var-requires": "error",
127
+ "typescript/no-unsafe-function-type": "error",
128
+ "typescript/no-unnecessary-type-constraint": "warn",
129
+ "typescript/no-require-imports": "error",
130
+ "typescript/no-non-null-asserted-nullish-coalescing": "warn",
131
+ "typescript/no-namespace": "warn",
132
+ "typescript/no-inferrable-types": "warn",
133
+ "typescript/no-import-type-side-effects": "error",
134
+ "typescript/no-extraneous-class": "warn",
135
+ "typescript/no-explicit-any": "warn",
136
+ "typescript/no-empty-object-type": "error",
137
+ "typescript/no-empty-interface": "warn",
138
+ "typescript/no-dynamic-delete": "error",
139
+ "typescript/no-confusing-non-null-assertion": "warn",
140
+ "typescript/consistent-type-imports": "warn",
141
+ "typescript/consistent-type-definitions": ["warn", "interface"],
142
+ "typescript/consistent-generic-constructors": [
143
+ "error",
144
+ { "option": "type-annotation" }
145
+ ],
146
+ "typescript/ban-types": "error",
147
+ "typescript/array-type": ["error", { "default": "array" }],
148
+ "unicorn/throw-new-error": "error",
149
+ "unicorn/text-encoding-identifier-case": ["error", { "withDash": true }],
150
+ "unicorn/require-post-message-target-origin": "warn",
151
+ "unicorn/require-number-to-fixed-digits-argument": "warn",
152
+ "unicorn/require-module-specifiers": "warn",
153
+ "unicorn/require-module-attributes": "warn",
154
+ "unicorn/require-array-join-separator": "warn",
155
+ "unicorn/prefer-type-error": "error",
156
+ "unicorn/prefer-top-level-await": "error",
157
+ "unicorn/prefer-structured-clone": "warn",
158
+ "unicorn/prefer-string-trim-start-end": "warn",
159
+ "unicorn/prefer-string-slice": "error",
160
+ "unicorn/prefer-string-replace-all": "warn",
161
+ "unicorn/prefer-string-raw": "warn",
162
+ "unicorn/prefer-spread": "warn",
163
+ "unicorn/prefer-set-has": "warn",
164
+ "unicorn/prefer-response-static-json": "error",
165
+ "unicorn/prefer-regexp-test": "warn",
166
+ "unicorn/prefer-query-selector": "warn",
167
+ "unicorn/prefer-prototype-methods": "warn",
168
+ "unicorn/prefer-optional-catch-binding": "warn",
169
+ "unicorn/prefer-object-from-entries": "warn",
170
+ "unicorn/prefer-number-properties": "error",
171
+ "unicorn/prefer-node-protocol": "error",
172
+ "unicorn/prefer-negative-index": "warn",
173
+ "unicorn/prefer-native-coercion-functions": "warn",
174
+ "unicorn/prefer-modern-math-apis": "warn",
175
+ "unicorn/prefer-modern-dom-apis": "warn",
176
+ "unicorn/prefer-math-trunc": "warn",
177
+ "unicorn/prefer-math-min-max": "warn",
178
+ "unicorn/prefer-logical-operator-over-ternary": "warn",
179
+ "unicorn/prefer-keyboard-event-key": "warn",
180
+ "unicorn/prefer-includes": "warn",
181
+ "unicorn/prefer-global-this": "error",
182
+ "unicorn/prefer-event-target": "warn",
183
+ "unicorn/prefer-dom-node-text-content": "error",
184
+ "unicorn/prefer-dom-node-remove": "warn",
185
+ "unicorn/prefer-dom-node-dataset": "error",
186
+ "unicorn/prefer-dom-node-append": "warn",
187
+ "unicorn/prefer-default-parameters": "warn",
188
+ "unicorn/prefer-date-now": "error",
189
+ "unicorn/prefer-code-point": "error",
190
+ "unicorn/prefer-classlist-toggle": "warn",
191
+ "unicorn/prefer-class-fields": "warn",
192
+ "unicorn/prefer-blob-reading-methods": "error",
193
+ "unicorn/prefer-bigint-literals": "error",
194
+ "unicorn/prefer-at": "error",
195
+ "unicorn/prefer-array-some": "error",
196
+ "unicorn/prefer-array-index-of": "warn",
197
+ "unicorn/prefer-array-flat-map": "error",
198
+ "unicorn/prefer-array-flat": "error",
199
+ "unicorn/prefer-array-find": "error",
200
+ "unicorn/prefer-add-event-listener": "error",
201
+ "unicorn/numeric-separators-style": "error",
202
+ "unicorn/number-literal-case": "warn",
203
+ "unicorn/no-zero-fractions": "error",
204
+ "unicorn/no-useless-undefined": "error",
205
+ "unicorn/no-useless-switch-case": "warn",
206
+ "unicorn/no-useless-promise-resolve-reject": "error",
207
+ "unicorn/no-useless-error-capture-stack-trace": "warn",
208
+ "unicorn/no-useless-collection-argument": "error",
209
+ "unicorn/no-unreadable-iife": "error",
210
+ "unicorn/no-unnecessary-slice-end": "error",
211
+ "unicorn/no-unnecessary-array-splice-count": "error",
212
+ "unicorn/no-unnecessary-array-flat-depth": "warn",
213
+ "unicorn/no-this-assignment": "warn",
214
+ "unicorn/no-static-only-class": "warn",
215
+ "unicorn/no-object-as-default-parameter": "warn",
216
+ "unicorn/no-new-buffer": "error",
217
+ "unicorn/no-negation-in-equality-check": "error",
218
+ "unicorn/no-magic-array-flat-depth": "warn",
219
+ "unicorn/no-length-as-slice-end": "warn",
220
+ "unicorn/no-instanceof-builtins": "error",
221
+ "unicorn/no-instanceof-array": "error",
222
+ "unicorn/no-immediate-mutation": "warn",
223
+ "unicorn/no-hex-escape": "error",
224
+ "unicorn/no-document-cookie": "error",
225
+ "unicorn/no-console-spaces": "error",
226
+ "unicorn/no-await-expression-member": "warn",
227
+ "unicorn/no-array-sort": "warn",
228
+ "unicorn/no-array-reverse": "warn",
229
+ "unicorn/no-array-method-this-argument": "error",
230
+ "unicorn/no-array-for-each": "error",
231
+ "unicorn/no-array-callback-reference": "warn",
232
+ "unicorn/no-accessor-recursion": "warn",
233
+ "unicorn/no-abusive-eslint-disable": "error",
234
+ "unicorn/new-for-builtins": "warn",
235
+ "unicorn/filename-case": ["warn", { "case": "kebabCase" }],
236
+ "unicorn/escape-case": "warn",
237
+ "unicorn/error-message": "error",
238
+ "unicorn/consistent-function-scoping": "error",
239
+ "unicorn/consistent-existence-index-check": "error",
240
+ "unicorn/consistent-empty-array-spread": "warn",
241
+ "unicorn/consistent-date-clone": "warn",
242
+ "unicorn/consistent-assert": "warn"
243
+ }
244
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "../node_modules/oxlint/configuration_schema.json",
3
+ "jsPlugins": ["@e18e/eslint-plugin"],
4
+ "rules": {
5
+ "e18e/prefer-array-at": "error",
6
+ "e18e/prefer-array-fill": "error",
7
+ "e18e/prefer-includes": "error",
8
+ "e18e/prefer-array-to-reversed": "error",
9
+ "e18e/prefer-array-to-sorted": "error",
10
+ "e18e/prefer-array-to-spliced": "error",
11
+ "e18e/prefer-nullish-coalescing": "error",
12
+ "e18e/prefer-object-has-own": "error",
13
+ "e18e/prefer-spread-syntax": "error",
14
+ "e18e/prefer-url-canparse": "error",
15
+ "e18e/ban-dependencies": "error",
16
+ "e18e/prefer-array-from-map": "error",
17
+ "e18e/prefer-timer-args": "error",
18
+ "e18e/prefer-date-now": "error",
19
+ "e18e/prefer-regex-test": "error",
20
+ "e18e/prefer-array-some": "error"
21
+ }
22
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "../node_modules/oxlint/configuration_schema.json",
3
+ "plugins": ["jsdoc"],
4
+ "rules": {
5
+ "jsdoc/require-param-description": "warn",
6
+ "jsdoc/require-param-name": "warn",
7
+ "jsdoc/require-param": "warn",
8
+ "jsdoc/empty-tags": "error",
9
+ "jsdoc/check-tag-names": "error",
10
+ "jsdoc/check-property-names": "error",
11
+ "jsdoc/check-access": "error",
12
+ "jsdoc/require-property-description": "error",
13
+ "jsdoc/require-property-name": "error",
14
+ "jsdoc/require-yields": "warn",
15
+ "jsdoc/require-returns-description": "error"
16
+ }
17
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "$schema": "../node_modules/oxlint/configuration_schema.json",
3
+ "plugins": ["typescript"],
4
+ "rules": {
5
+ "typescript/use-unknown-in-catch-callback-variable": "error",
6
+ "typescript/switch-exhaustiveness-check": "error",
7
+ "typescript/return-await": ["error", "error-handling-correctness-only"],
8
+ "typescript/restrict-plus-operands": "warn",
9
+ "typescript/require-await": "warn",
10
+ "typescript/related-getter-setter-pairs": "warn",
11
+ "typescript/promise-function-async": "error",
12
+ "typescript/prefer-return-this-type": "warn",
13
+ "typescript/prefer-reduce-type-parameter": "warn",
14
+ "typescript/prefer-promise-reject-errors": "error",
15
+ "typescript/prefer-optional-chain": "warn",
16
+ "typescript/prefer-nullish-coalescing": "warn",
17
+ "typescript/prefer-literal-enum-member": "warn",
18
+ "typescript/prefer-includes": "error",
19
+ "typescript/only-throw-error": "error",
20
+ "typescript/non-nullable-type-assertion-style": "warn",
21
+ "typescript/no-unsafe-return": "warn",
22
+ "typescript/no-unsafe-member-access": "warn",
23
+ "typescript/no-unsafe-enum-comparison": "warn",
24
+ "typescript/no-unsafe-call": "warn",
25
+ "typescript/no-unsafe-assignment": "warn",
26
+ "typescript/no-unsafe-argument": "warn",
27
+ "typescript/no-unnecessary-type-assertion": "error",
28
+ "typescript/no-unnecessary-type-arguments": "warn",
29
+ "typescript/no-unnecessary-template-expression": "error",
30
+ "typescript/no-unnecessary-boolean-literal-compare": "error",
31
+ "typescript/no-mixed-enums": "warn",
32
+ "typescript/no-misused-promises": "warn",
33
+ "typescript/no-deprecated": "warn",
34
+ "typescript/no-confusing-void-expression": "warn"
35
+ }
36
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "$schema": "../node_modules/oxlint/configuration_schema.json",
3
+ "plugins": ["vitest", "jest"],
4
+ "rules": {
5
+ "vitest/require-local-test-context-for-concurrent-snapshots": "error",
6
+ "vitest/prefer-to-be-truthy": "warn",
7
+ "vitest/prefer-to-be-falsy": "warn",
8
+ "vitest/prefer-to-be-object": "warn",
9
+ "vitest/prefer-describe-function-title": "warn",
10
+ "vitest/no-import-node-test": "error",
11
+ "vitest/no-conditional-tests": "error",
12
+ "vitest/hoisted-apis-on-top": "warn",
13
+ "vitest/consistent-vitest-vi": "warn",
14
+ "jest/require-to-throw-message": "off",
15
+ "jest/valid-title": "off",
16
+ "jest/valid-describe-callback": "warn",
17
+ "jest/consistent-test-it": ["warn", { "fn": "it" }],
18
+ "jest/expect-expect": "warn",
19
+ "jest/max-expects": "warn",
20
+ "jest/max-nested-describe": "warn",
21
+ "jest/no-alias-methods": "error",
22
+ "jest/no-commented-out-tests": "warn",
23
+ "jest/no-conditional-expect": "warn",
24
+ "jest/no-conditional-in-test": "warn",
25
+ "jest/no-confusing-set-timeout": "off",
26
+ "jest/no-disabled-tests": "warn",
27
+ "jest/no-done-callback": "off",
28
+ "jest/no-duplicate-hooks": "error",
29
+ "jest/no-export": "warn",
30
+ "jest/no-focused-tests": "error",
31
+ "jest/no-hooks": "off",
32
+ "jest/no-identical-title": "warn",
33
+ "jest/no-interpolation-in-snapshots": "warn",
34
+ "jest/no-jasmine-globals": "error",
35
+ "jest/no-mocks-import": "error",
36
+ "jest/no-standalone-expect": "warn",
37
+ "jest/no-test-prefixes": "error",
38
+ "jest/no-test-return-statement": "error",
39
+ "jest/no-unneeded-async-expect-function": "warn",
40
+ "jest/no-untyped-mock-factory": "off",
41
+ "jest/padding-around-test-blocks": "warn",
42
+ "jest/prefer-comparison-matcher": "warn",
43
+ "jest/prefer-each": "warn",
44
+ "jest/prefer-equality-matcher": "warn",
45
+ "jest/prefer-expect-resolves": "warn",
46
+ "jest/prefer-hooks-in-order": "warn",
47
+ "jest/prefer-hooks-on-top": "warn",
48
+ "jest/prefer-jest-mocked": "off",
49
+ "jest/prefer-lowercase-title": "warn",
50
+ "jest/prefer-mock-promise-shorthand": "warn",
51
+ "jest/prefer-spy-on": "warn",
52
+ "jest/prefer-strict-equal": "warn",
53
+ "jest/prefer-to-be": "warn",
54
+ "jest/prefer-to-contain": "warn",
55
+ "jest/prefer-to-have-length": "warn",
56
+ "jest/prefer-todo": "warn",
57
+ "jest/require-top-level-describe": "warn",
58
+ "jest/valid-expect": "warn"
59
+ }
60
+ }
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@rlly/pedantic",
3
- "version": "0.1.0",
3
+ "description": "oxlint configuration",
4
+ "version": "0.1.2",
4
5
  "type": "module",
5
6
  "publishConfig": {
6
7
  "access": "public"
@@ -11,10 +12,33 @@
11
12
  },
12
13
  "files": [
13
14
  "README.md",
14
- "LICENSE"
15
+ "LICENSE",
16
+ "oxlint"
15
17
  ],
16
18
  "license": "MIT",
17
19
  "engines": {
18
20
  "node": "^24.0.0"
21
+ },
22
+ "devDependencies": {
23
+ "@e18e/eslint-plugin": "^0.1.4",
24
+ "changelogen": "^0.6.2",
25
+ "oxlint": "^1.43.0",
26
+ "oxlint-tsgolint": "^0.11.4"
27
+ },
28
+ "peerDependencies": {
29
+ "@e18e/eslint-plugin": "^0.1.4",
30
+ "oxlint": "^1.43.0",
31
+ "oxlint-tsgolint": "^0.11.4"
32
+ },
33
+ "peerDependenciesMeta": {
34
+ "oxlint-tsgolint": {
35
+ "optional": true
36
+ },
37
+ "@e18e/eslint-plugin": {
38
+ "optional": true
39
+ }
40
+ },
41
+ "scripts": {
42
+ "release": "changelogen --release"
19
43
  }
20
44
  }