exadev-eslint-config 2.33.0 → 2.33.1
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 +5 -5
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -335,14 +335,14 @@ The plugin's own full-canonicalization rule ([`no-insignificant-whitespace`](htt
|
|
|
335
335
|
|
|
336
336
|
A hand-picked subset of [`@stylistic/eslint-plugin`](https://eslint.style) is bundled unconditionally, the same way jsdoc/tsdoc and RFC 8785 JSON support are: `@stylistic/eslint-plugin` is a plain dependency of this package, so every consumer already has it, and every rule below matches purely on comment shape, statement/class-member placement, or JSX prop/tag conventions, never on formatting (indentation, quotes, semicolons, trailing commas, line wrapping, bracket spacing), which stays Prettier's job in every consumer of this package. None of these rules appears in [`eslint-config-prettier`](https://github.com/prettier/eslint-config-prettier)'s own disabled-rules list.
|
|
337
337
|
|
|
338
|
-
- **[`multiline-comment-style`](https://eslint.style/rules/multiline-comment-style)** is deliberately NOT enabled
|
|
339
|
-
- **[`spaced-comment`](https://eslint.style/rules/spaced-comment)**: requires a space after `//`/`/*`, without fighting a `/**`-opening doc comment or a shebang line. Adds `{ block: { markers: ['!'] } }` on top of the bare default so a `/*!` license/banner block is not flagged either. A
|
|
338
|
+
- **[`multiline-comment-style`](https://eslint.style/rules/multiline-comment-style)** is deliberately NOT enabled, because its `bare-block` fixer still merges a `TODO`/`FIXME` line in a run of `//` prose into one block comment. The installed 6.0.0-beta.6 carries the fix from [PR #1251](https://github.com/eslint-stylistic/eslint-stylistic/pull/1251) for [issue #1249](https://github.com/eslint-stylistic/eslint-stylistic/issues/1249), so `prettier-ignore`, `c8 ignore`/`v8 ignore`, `istanbul ignore`, `@ts-expect-error`/`@ts-ignore`/`@ts-nocheck`/`@ts-check` and triple-slash reference/AMD directives (including the consecutive pair [issue #1285](https://github.com/eslint-stylistic/eslint-stylistic/issues/1285) reports) now stay standalone lines, but `TODO`/`FIXME` are not in the plugin's directive list and the rule has no option to add them. With the rule on, `exadev/prefer-doc-comment` stops converting the prose below a `TODO` into the declaration's doc comment, because the merged block it is left with contains a directive, so an exported declaration silently loses its doc comment. The fixer also writes a bare `\n` inside the merged block in a CRLF file. Tracked at [ExaDev/eslint-config#45](https://github.com/ExaDev/eslint-config/issues/45).
|
|
339
|
+
- **[`spaced-comment`](https://eslint.style/rules/spaced-comment)**: requires a space after `//`/`/*`, without fighting a `/**`-opening doc comment or a shebang line. Adds `{ block: { markers: ['!'] } }` on top of the bare default so a `/*!` license/banner block is not flagged either. A triple-slash reference/AMD directive is exempted by the rule itself in both its spaced form (`/// <reference types="..." />`, TypeScript's own compiler-emitted spelling) and its no-space form (`///<reference types="..." />`, also valid TypeScript syntax); before `@stylistic/eslint-plugin` 6.0.0, `--fix` rewrote the no-space form into a broken `// /<reference ...>` comment ([ExaDev/eslint-config#47](https://github.com/ExaDev/eslint-config/issues/47)). Also adds `{ line: { markers: ['#', '#region', '#endregion'] } }`: without it, the bare default rewrites a `//# sourceMappingURL=...`/`//# sourceURL=...` source-map comment into `// # sourceMappingURL=...`, which browsers and Node no longer recognise, and a bare `line: { markers: ['#'] }` alone would instead rewrite an unspaced `//#region`/`//#endregion` editor fold marker into `//# region`, which VS Code's own folding regex no longer matches. Listing all three markers together, confirmed directly against the installed rule, leaves every one of those four shapes untouched.
|
|
340
340
|
- **[`lines-between-class-members`](https://eslint.style/rules/lines-between-class-members)** at its bare default: a blank line between class members, except after a `.d.ts`-style method overload signature.
|
|
341
341
|
- **[`line-comment-position`](https://eslint.style/rules/line-comment-position)** at `'above'`: a `//` comment belongs above the code it describes, never trailing beside it on the same line. Not autofixable; a flagged trailing comment needs moving by hand. A trailing `// cspell:disable-line` is exempt (`ignorePattern`): cspell honours that directive only on the line it suppresses, so moving it above, as the report demands, would silently disable spell-checking for the wrong line. Every other directive this package recognises applies to the line(s) below it and is correctly relocated.
|
|
342
342
|
- **[`padding-line-between-statements`](https://eslint.style/rules/padding-line-between-statements)**: a blank line is required after the last statement of a directive prologue (not between two consecutive directives), after the last CommonJS or ES import in a run (not between two consecutive imports), and before a `return` statement.
|
|
343
|
-
- **[`jsx-curly-brace-presence`](https://eslint.style/rules/jsx-curly-brace-presence)**, **[`jsx-pascal-case`](https://eslint.style/rules/jsx-pascal-case)**, and **[`jsx-self-closing-comp`](https://eslint.style/rules/jsx-self-closing-comp)**, each at its own bare default: none of the three has any dependency on `eslint-plugin-react` or React itself (confirmed directly against `@stylistic/eslint-plugin`'s own `package.json`, whose
|
|
343
|
+
- **[`jsx-curly-brace-presence`](https://eslint.style/rules/jsx-curly-brace-presence)**, **[`jsx-pascal-case`](https://eslint.style/rules/jsx-pascal-case)**, and **[`jsx-self-closing-comp`](https://eslint.style/rules/jsx-self-closing-comp)**, each at its own bare default: none of the three has any dependency on `eslint-plugin-react` or React itself (confirmed directly against `@stylistic/eslint-plugin`'s own `package.json`, whose `peerDependencies` are `eslint` and `oxlint`, both optional), since each matches purely on a JSX AST node shape and is a structural no-op on every non-JSX file.
|
|
344
344
|
|
|
345
|
-
|
|
345
|
+
JSX's shorthand-boolean-prop convention (`<Foo enabled />` vs `<Foo enabled={true} />`) and shorthand-fragment syntax (`<>...</>` vs `<React.Fragment>...</React.Fragment>`) are not enforced: neither `@stylistic/eslint-plugin`'s own [`jsx-shorthand-boolean`](https://eslint.style/rules/jsx-shorthand-boolean) and [`jsx-shorthand-fragment`](https://eslint.style/rules/jsx-shorthand-fragment) nor `eslint-plugin-react`'s `react/jsx-boolean-value` and `react/jsx-fragments` are enabled, here or in the optional [React support](#optional-react-and-nextjs-support) gate above.
|
|
346
346
|
|
|
347
347
|
This package's own **`exadev/prefer-doc-comment`** rule (see [Rules](#rules)) is wired alongside these, in the same unconditional bundle.
|
|
348
348
|
|
|
@@ -1463,7 +1463,7 @@ turboConfig({
|
|
|
1463
1463
|
### Build, test, and lint
|
|
1464
1464
|
|
|
1465
1465
|
```sh
|
|
1466
|
-
pnpm install # requires Node
|
|
1466
|
+
pnpm install # requires Node ^20.19.0 || ^22.13.0 || >=24 and the pnpm version pinned in package.json's packageManager field
|
|
1467
1467
|
pnpm lint
|
|
1468
1468
|
pnpm typecheck
|
|
1469
1469
|
pnpm test
|
package/dist/index.cjs
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "exadev-eslint-config",
|
|
3
3
|
"description": "Shared custom ESLint rules and plugin for ExaDev projects",
|
|
4
|
-
"version": "2.33.
|
|
4
|
+
"version": "2.33.1",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@eslint/js": "^10.0.1",
|
|
7
7
|
"@microsoft/tsdoc": "0.17.0",
|
|
8
|
-
"@stylistic/eslint-plugin": "
|
|
8
|
+
"@stylistic/eslint-plugin": "6.0.0-beta.6",
|
|
9
9
|
"@typescript-eslint/typescript-estree": "8.67.0",
|
|
10
10
|
"@typescript-eslint/utils": "8.67.0",
|
|
11
11
|
"eslint-plugin-jsdoc": "64.3.6",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"vitest": "^4.1.10"
|
|
52
52
|
},
|
|
53
53
|
"engines": {
|
|
54
|
-
"node": ">=
|
|
54
|
+
"node": "^20.19.0 || ^22.13.0 || >=24"
|
|
55
55
|
},
|
|
56
56
|
"exports": {
|
|
57
57
|
".": {
|