eslint-config-decent 1.4.2 → 1.6.0
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/dist/index.cjs +52 -23
- package/dist/index.d.cts +6 -2
- package/dist/index.d.mts +6 -2
- package/dist/index.d.ts +6 -2
- package/dist/index.mjs +49 -22
- package/package.json +17 -16
- package/src/eslint.ts +8 -0
- package/src/extension.ts +2 -1
- package/src/import.ts +26 -0
- package/src/index.ts +15 -13
- package/src/jsdoc.ts +1 -1
- package/src/mocha.ts +1 -1
- package/src/promise.ts +1 -1
- package/src/react.ts +1 -1
- package/src/rules/requireExtensionRule.ts +1 -0
- package/src/rules/requireIndexRule.ts +2 -1
- package/src/security.ts +1 -1
- package/src/unicorn.ts +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const eslint = require('@eslint/js');
|
|
4
|
+
const prettier = require('eslint-plugin-prettier/recommended');
|
|
4
5
|
const globals = require('globals');
|
|
5
6
|
const tsEslint = require('typescript-eslint');
|
|
6
|
-
const prettier = require('eslint-plugin-prettier/recommended');
|
|
7
7
|
const fs = require('fs');
|
|
8
8
|
const path = require('path');
|
|
9
9
|
const utils = require('@typescript-eslint/utils');
|
|
10
|
+
const importPlugin = require('eslint-plugin-import-x');
|
|
10
11
|
const jsdoc = require('eslint-plugin-jsdoc');
|
|
11
12
|
const mocha = require('eslint-plugin-mocha');
|
|
12
13
|
const promise = require('eslint-plugin-promise');
|
|
@@ -20,9 +21,10 @@ const unicorn = require('eslint-plugin-unicorn');
|
|
|
20
21
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
|
|
21
22
|
|
|
22
23
|
const eslint__default = /*#__PURE__*/_interopDefaultCompat(eslint);
|
|
24
|
+
const prettier__default = /*#__PURE__*/_interopDefaultCompat(prettier);
|
|
23
25
|
const globals__default = /*#__PURE__*/_interopDefaultCompat(globals);
|
|
24
26
|
const tsEslint__default = /*#__PURE__*/_interopDefaultCompat(tsEslint);
|
|
25
|
-
const
|
|
27
|
+
const importPlugin__default = /*#__PURE__*/_interopDefaultCompat(importPlugin);
|
|
26
28
|
const jsdoc__default = /*#__PURE__*/_interopDefaultCompat(jsdoc);
|
|
27
29
|
const mocha__default = /*#__PURE__*/_interopDefaultCompat(mocha);
|
|
28
30
|
const promise__default = /*#__PURE__*/_interopDefaultCompat(promise);
|
|
@@ -33,7 +35,7 @@ const testingLibrary__default = /*#__PURE__*/_interopDefaultCompat(testingLibrar
|
|
|
33
35
|
const security__default = /*#__PURE__*/_interopDefaultCompat(security);
|
|
34
36
|
const unicorn__default = /*#__PURE__*/_interopDefaultCompat(unicorn);
|
|
35
37
|
|
|
36
|
-
const base$
|
|
38
|
+
const base$9 = {
|
|
37
39
|
rules: {
|
|
38
40
|
"array-callback-return": ["error", { allowImplicit: true }],
|
|
39
41
|
"block-scoped-var": "error",
|
|
@@ -230,6 +232,14 @@ const base$8 = {
|
|
|
230
232
|
}
|
|
231
233
|
],
|
|
232
234
|
"prefer-template": "error",
|
|
235
|
+
"sort-imports": [
|
|
236
|
+
"error",
|
|
237
|
+
{
|
|
238
|
+
ignoreCase: true,
|
|
239
|
+
ignoreDeclarationSort: true,
|
|
240
|
+
allowSeparatedGroups: true
|
|
241
|
+
}
|
|
242
|
+
],
|
|
233
243
|
"symbol-description": "error",
|
|
234
244
|
"unicode-bom": ["error", "never"],
|
|
235
245
|
"vars-on-top": "error",
|
|
@@ -275,8 +285,8 @@ const cjs = {
|
|
|
275
285
|
strict: ["error", "global"]
|
|
276
286
|
}
|
|
277
287
|
};
|
|
278
|
-
const configs$
|
|
279
|
-
base: base$
|
|
288
|
+
const configs$9 = {
|
|
289
|
+
base: base$9,
|
|
280
290
|
cjsAndEsm,
|
|
281
291
|
cjs
|
|
282
292
|
};
|
|
@@ -375,7 +385,7 @@ const requireIndexRule = utils.ESLintUtils.RuleCreator(() => "https://github.com
|
|
|
375
385
|
}
|
|
376
386
|
});
|
|
377
387
|
|
|
378
|
-
const base$
|
|
388
|
+
const base$8 = {
|
|
379
389
|
plugins: {
|
|
380
390
|
"decent-extension": {
|
|
381
391
|
meta: {
|
|
@@ -393,6 +403,25 @@ const base$7 = {
|
|
|
393
403
|
"decent-extension/require-index": "error"
|
|
394
404
|
}
|
|
395
405
|
};
|
|
406
|
+
const configs$8 = {
|
|
407
|
+
base: base$8
|
|
408
|
+
};
|
|
409
|
+
|
|
410
|
+
const base$7 = {
|
|
411
|
+
plugins: {
|
|
412
|
+
import: importPlugin__default
|
|
413
|
+
},
|
|
414
|
+
rules: {
|
|
415
|
+
"import/order": [
|
|
416
|
+
"error",
|
|
417
|
+
{
|
|
418
|
+
"newlines-between": "always",
|
|
419
|
+
alphabetize: { order: "asc", caseInsensitive: true },
|
|
420
|
+
pathGroupsExcludedImportTypes: ["builtin"]
|
|
421
|
+
}
|
|
422
|
+
]
|
|
423
|
+
}
|
|
424
|
+
};
|
|
396
425
|
const configs$7 = {
|
|
397
426
|
base: base$7
|
|
398
427
|
};
|
|
@@ -666,18 +695,10 @@ function defaultConfig(options) {
|
|
|
666
695
|
...tsEslint__default.configs.base.languageOptions
|
|
667
696
|
}
|
|
668
697
|
},
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
};
|
|
674
|
-
}),
|
|
675
|
-
...tsEslint__default.configs.stylisticTypeChecked.map((config) => {
|
|
676
|
-
return {
|
|
677
|
-
...config,
|
|
678
|
-
files: ["**/*.ts", "**/*.tsx"]
|
|
679
|
-
};
|
|
680
|
-
}),
|
|
698
|
+
{
|
|
699
|
+
files: ["**/*.ts", "**/*.tsx"],
|
|
700
|
+
extends: [...tsEslint__default.configs.strictTypeChecked, ...tsEslint__default.configs.stylisticTypeChecked]
|
|
701
|
+
},
|
|
681
702
|
{
|
|
682
703
|
languageOptions,
|
|
683
704
|
settings: {
|
|
@@ -688,6 +709,7 @@ function defaultConfig(options) {
|
|
|
688
709
|
name: "eslint-config-decent/base",
|
|
689
710
|
files: ["**/*.ts", "**/*.js", "**/*.cjs", "**/*.mjs", "**/*.tsx"],
|
|
690
711
|
plugins: {
|
|
712
|
+
...configs$8.base.plugins,
|
|
691
713
|
...configs$7.base.plugins,
|
|
692
714
|
...configs$6.base.plugins,
|
|
693
715
|
...configs$4.base.plugins,
|
|
@@ -695,8 +717,9 @@ function defaultConfig(options) {
|
|
|
695
717
|
...configs.base.plugins
|
|
696
718
|
},
|
|
697
719
|
rules: {
|
|
698
|
-
...configs$
|
|
699
|
-
...enableRequireExtensionRule ? configs$
|
|
720
|
+
...configs$9.base.rules,
|
|
721
|
+
...enableRequireExtensionRule ? configs$8.base.rules : {},
|
|
722
|
+
...configs$7.base.rules,
|
|
700
723
|
...configs$6.base.rules,
|
|
701
724
|
...configs$4.base.rules,
|
|
702
725
|
...configs$2.base.rules,
|
|
@@ -719,7 +742,7 @@ function defaultConfig(options) {
|
|
|
719
742
|
languageOptions: {
|
|
720
743
|
sourceType: "script"
|
|
721
744
|
},
|
|
722
|
-
...configs$
|
|
745
|
+
...configs$9.cjsAndEsm
|
|
723
746
|
},
|
|
724
747
|
{
|
|
725
748
|
name: "eslint-config-decent/cjs",
|
|
@@ -727,19 +750,25 @@ function defaultConfig(options) {
|
|
|
727
750
|
languageOptions: {
|
|
728
751
|
sourceType: "script"
|
|
729
752
|
},
|
|
730
|
-
...configs$
|
|
753
|
+
...configs$9.cjs
|
|
731
754
|
},
|
|
732
755
|
{
|
|
733
756
|
name: "eslint-config-decent/tests",
|
|
734
757
|
files: ["**/*.tests.ts", "tests/tests.ts"],
|
|
735
758
|
...configs$5.base
|
|
736
759
|
},
|
|
760
|
+
{
|
|
761
|
+
name: "eslint-config-decent/cjs-and-esm-disable-ts-rules",
|
|
762
|
+
files: ["**/*.js", "**/*.cjs", "**/*.mjs"],
|
|
763
|
+
extends: [tsEslint__default.configs.disableTypeChecked]
|
|
764
|
+
},
|
|
737
765
|
prettier__default
|
|
738
766
|
];
|
|
739
767
|
}
|
|
740
768
|
|
|
741
769
|
exports.defaultConfig = defaultConfig;
|
|
742
|
-
exports.eslintConfigs = configs$
|
|
770
|
+
exports.eslintConfigs = configs$9;
|
|
771
|
+
exports.importConfigs = configs$7;
|
|
743
772
|
exports.jsdocConfigs = configs$6;
|
|
744
773
|
exports.promiseConfigs = configs$4;
|
|
745
774
|
exports.reactConfigs = configs$3;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { ConfigWithExtends } from 'typescript-eslint';
|
|
2
2
|
import { TSESLint } from '@typescript-eslint/utils';
|
|
3
3
|
|
|
4
|
-
declare const configs$
|
|
4
|
+
declare const configs$7: {
|
|
5
5
|
base: TSESLint.FlatConfig.Config;
|
|
6
6
|
cjsAndEsm: TSESLint.FlatConfig.Config;
|
|
7
7
|
cjs: TSESLint.FlatConfig.Config;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
+
declare const configs$6: {
|
|
11
|
+
base: TSESLint.FlatConfig.Config;
|
|
12
|
+
};
|
|
13
|
+
|
|
10
14
|
declare const configs$5: {
|
|
11
15
|
base: TSESLint.FlatConfig.Config;
|
|
12
16
|
};
|
|
@@ -37,4 +41,4 @@ interface DefaultConfigOptions {
|
|
|
37
41
|
}
|
|
38
42
|
declare function defaultConfig(options?: DefaultConfigOptions): ConfigWithExtends[];
|
|
39
43
|
|
|
40
|
-
export { type DefaultConfigOptions, defaultConfig, configs$
|
|
44
|
+
export { type DefaultConfigOptions, defaultConfig, configs$7 as eslintConfigs, configs$6 as importConfigs, configs$5 as jsdocConfigs, configs$4 as promiseConfigs, configs$3 as reactConfigs, configs$2 as securityConfigs, configs$1 as typescriptEslintConfigs, configs as unicornConfigs };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { ConfigWithExtends } from 'typescript-eslint';
|
|
2
2
|
import { TSESLint } from '@typescript-eslint/utils';
|
|
3
3
|
|
|
4
|
-
declare const configs$
|
|
4
|
+
declare const configs$7: {
|
|
5
5
|
base: TSESLint.FlatConfig.Config;
|
|
6
6
|
cjsAndEsm: TSESLint.FlatConfig.Config;
|
|
7
7
|
cjs: TSESLint.FlatConfig.Config;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
+
declare const configs$6: {
|
|
11
|
+
base: TSESLint.FlatConfig.Config;
|
|
12
|
+
};
|
|
13
|
+
|
|
10
14
|
declare const configs$5: {
|
|
11
15
|
base: TSESLint.FlatConfig.Config;
|
|
12
16
|
};
|
|
@@ -37,4 +41,4 @@ interface DefaultConfigOptions {
|
|
|
37
41
|
}
|
|
38
42
|
declare function defaultConfig(options?: DefaultConfigOptions): ConfigWithExtends[];
|
|
39
43
|
|
|
40
|
-
export { type DefaultConfigOptions, defaultConfig, configs$
|
|
44
|
+
export { type DefaultConfigOptions, defaultConfig, configs$7 as eslintConfigs, configs$6 as importConfigs, configs$5 as jsdocConfigs, configs$4 as promiseConfigs, configs$3 as reactConfigs, configs$2 as securityConfigs, configs$1 as typescriptEslintConfigs, configs as unicornConfigs };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { ConfigWithExtends } from 'typescript-eslint';
|
|
2
2
|
import { TSESLint } from '@typescript-eslint/utils';
|
|
3
3
|
|
|
4
|
-
declare const configs$
|
|
4
|
+
declare const configs$7: {
|
|
5
5
|
base: TSESLint.FlatConfig.Config;
|
|
6
6
|
cjsAndEsm: TSESLint.FlatConfig.Config;
|
|
7
7
|
cjs: TSESLint.FlatConfig.Config;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
+
declare const configs$6: {
|
|
11
|
+
base: TSESLint.FlatConfig.Config;
|
|
12
|
+
};
|
|
13
|
+
|
|
10
14
|
declare const configs$5: {
|
|
11
15
|
base: TSESLint.FlatConfig.Config;
|
|
12
16
|
};
|
|
@@ -37,4 +41,4 @@ interface DefaultConfigOptions {
|
|
|
37
41
|
}
|
|
38
42
|
declare function defaultConfig(options?: DefaultConfigOptions): ConfigWithExtends[];
|
|
39
43
|
|
|
40
|
-
export { type DefaultConfigOptions, defaultConfig, configs$
|
|
44
|
+
export { type DefaultConfigOptions, defaultConfig, configs$7 as eslintConfigs, configs$6 as importConfigs, configs$5 as jsdocConfigs, configs$4 as promiseConfigs, configs$3 as reactConfigs, configs$2 as securityConfigs, configs$1 as typescriptEslintConfigs, configs as unicornConfigs };
|
package/dist/index.mjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import eslint from '@eslint/js';
|
|
2
|
+
import prettier from 'eslint-plugin-prettier/recommended';
|
|
2
3
|
import globals from 'globals';
|
|
3
4
|
import tsEslint from 'typescript-eslint';
|
|
4
|
-
import prettier from 'eslint-plugin-prettier/recommended';
|
|
5
5
|
import { existsSync, lstatSync } from 'fs';
|
|
6
6
|
import { resolve, dirname } from 'path';
|
|
7
7
|
import { ESLintUtils } from '@typescript-eslint/utils';
|
|
8
|
+
import importPlugin from 'eslint-plugin-import-x';
|
|
8
9
|
import jsdoc from 'eslint-plugin-jsdoc';
|
|
9
10
|
import mocha from 'eslint-plugin-mocha';
|
|
10
11
|
import promise from 'eslint-plugin-promise';
|
|
@@ -15,7 +16,7 @@ import testingLibrary from 'eslint-plugin-testing-library';
|
|
|
15
16
|
import security from 'eslint-plugin-security';
|
|
16
17
|
import unicorn from 'eslint-plugin-unicorn';
|
|
17
18
|
|
|
18
|
-
const base$
|
|
19
|
+
const base$9 = {
|
|
19
20
|
rules: {
|
|
20
21
|
"array-callback-return": ["error", { allowImplicit: true }],
|
|
21
22
|
"block-scoped-var": "error",
|
|
@@ -212,6 +213,14 @@ const base$8 = {
|
|
|
212
213
|
}
|
|
213
214
|
],
|
|
214
215
|
"prefer-template": "error",
|
|
216
|
+
"sort-imports": [
|
|
217
|
+
"error",
|
|
218
|
+
{
|
|
219
|
+
ignoreCase: true,
|
|
220
|
+
ignoreDeclarationSort: true,
|
|
221
|
+
allowSeparatedGroups: true
|
|
222
|
+
}
|
|
223
|
+
],
|
|
215
224
|
"symbol-description": "error",
|
|
216
225
|
"unicode-bom": ["error", "never"],
|
|
217
226
|
"vars-on-top": "error",
|
|
@@ -257,8 +266,8 @@ const cjs = {
|
|
|
257
266
|
strict: ["error", "global"]
|
|
258
267
|
}
|
|
259
268
|
};
|
|
260
|
-
const configs$
|
|
261
|
-
base: base$
|
|
269
|
+
const configs$9 = {
|
|
270
|
+
base: base$9,
|
|
262
271
|
cjsAndEsm,
|
|
263
272
|
cjs
|
|
264
273
|
};
|
|
@@ -357,7 +366,7 @@ const requireIndexRule = ESLintUtils.RuleCreator(() => "https://github.com/jgeur
|
|
|
357
366
|
}
|
|
358
367
|
});
|
|
359
368
|
|
|
360
|
-
const base$
|
|
369
|
+
const base$8 = {
|
|
361
370
|
plugins: {
|
|
362
371
|
"decent-extension": {
|
|
363
372
|
meta: {
|
|
@@ -375,6 +384,25 @@ const base$7 = {
|
|
|
375
384
|
"decent-extension/require-index": "error"
|
|
376
385
|
}
|
|
377
386
|
};
|
|
387
|
+
const configs$8 = {
|
|
388
|
+
base: base$8
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
const base$7 = {
|
|
392
|
+
plugins: {
|
|
393
|
+
import: importPlugin
|
|
394
|
+
},
|
|
395
|
+
rules: {
|
|
396
|
+
"import/order": [
|
|
397
|
+
"error",
|
|
398
|
+
{
|
|
399
|
+
"newlines-between": "always",
|
|
400
|
+
alphabetize: { order: "asc", caseInsensitive: true },
|
|
401
|
+
pathGroupsExcludedImportTypes: ["builtin"]
|
|
402
|
+
}
|
|
403
|
+
]
|
|
404
|
+
}
|
|
405
|
+
};
|
|
378
406
|
const configs$7 = {
|
|
379
407
|
base: base$7
|
|
380
408
|
};
|
|
@@ -648,18 +676,10 @@ function defaultConfig(options) {
|
|
|
648
676
|
...tsEslint.configs.base.languageOptions
|
|
649
677
|
}
|
|
650
678
|
},
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
};
|
|
656
|
-
}),
|
|
657
|
-
...tsEslint.configs.stylisticTypeChecked.map((config) => {
|
|
658
|
-
return {
|
|
659
|
-
...config,
|
|
660
|
-
files: ["**/*.ts", "**/*.tsx"]
|
|
661
|
-
};
|
|
662
|
-
}),
|
|
679
|
+
{
|
|
680
|
+
files: ["**/*.ts", "**/*.tsx"],
|
|
681
|
+
extends: [...tsEslint.configs.strictTypeChecked, ...tsEslint.configs.stylisticTypeChecked]
|
|
682
|
+
},
|
|
663
683
|
{
|
|
664
684
|
languageOptions,
|
|
665
685
|
settings: {
|
|
@@ -670,6 +690,7 @@ function defaultConfig(options) {
|
|
|
670
690
|
name: "eslint-config-decent/base",
|
|
671
691
|
files: ["**/*.ts", "**/*.js", "**/*.cjs", "**/*.mjs", "**/*.tsx"],
|
|
672
692
|
plugins: {
|
|
693
|
+
...configs$8.base.plugins,
|
|
673
694
|
...configs$7.base.plugins,
|
|
674
695
|
...configs$6.base.plugins,
|
|
675
696
|
...configs$4.base.plugins,
|
|
@@ -677,8 +698,9 @@ function defaultConfig(options) {
|
|
|
677
698
|
...configs.base.plugins
|
|
678
699
|
},
|
|
679
700
|
rules: {
|
|
680
|
-
...configs$
|
|
681
|
-
...enableRequireExtensionRule ? configs$
|
|
701
|
+
...configs$9.base.rules,
|
|
702
|
+
...enableRequireExtensionRule ? configs$8.base.rules : {},
|
|
703
|
+
...configs$7.base.rules,
|
|
682
704
|
...configs$6.base.rules,
|
|
683
705
|
...configs$4.base.rules,
|
|
684
706
|
...configs$2.base.rules,
|
|
@@ -701,7 +723,7 @@ function defaultConfig(options) {
|
|
|
701
723
|
languageOptions: {
|
|
702
724
|
sourceType: "script"
|
|
703
725
|
},
|
|
704
|
-
...configs$
|
|
726
|
+
...configs$9.cjsAndEsm
|
|
705
727
|
},
|
|
706
728
|
{
|
|
707
729
|
name: "eslint-config-decent/cjs",
|
|
@@ -709,15 +731,20 @@ function defaultConfig(options) {
|
|
|
709
731
|
languageOptions: {
|
|
710
732
|
sourceType: "script"
|
|
711
733
|
},
|
|
712
|
-
...configs$
|
|
734
|
+
...configs$9.cjs
|
|
713
735
|
},
|
|
714
736
|
{
|
|
715
737
|
name: "eslint-config-decent/tests",
|
|
716
738
|
files: ["**/*.tests.ts", "tests/tests.ts"],
|
|
717
739
|
...configs$5.base
|
|
718
740
|
},
|
|
741
|
+
{
|
|
742
|
+
name: "eslint-config-decent/cjs-and-esm-disable-ts-rules",
|
|
743
|
+
files: ["**/*.js", "**/*.cjs", "**/*.mjs"],
|
|
744
|
+
extends: [tsEslint.configs.disableTypeChecked]
|
|
745
|
+
},
|
|
719
746
|
prettier
|
|
720
747
|
];
|
|
721
748
|
}
|
|
722
749
|
|
|
723
|
-
export { defaultConfig, configs$
|
|
750
|
+
export { defaultConfig, configs$9 as eslintConfigs, configs$7 as importConfigs, configs$6 as jsdocConfigs, configs$4 as promiseConfigs, configs$3 as reactConfigs, configs$2 as securityConfigs, configs$1 as typescriptEslintConfigs, configs as unicornConfigs };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-config-decent",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "A decent ESLint configuration",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -72,33 +72,34 @@
|
|
|
72
72
|
"node": ">=20.11.0"
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@eslint/js": "^9.
|
|
76
|
-
"@typescript-eslint/utils": "8.0.0
|
|
75
|
+
"@eslint/js": "^9.8.0",
|
|
76
|
+
"@typescript-eslint/utils": "8.0.0",
|
|
77
77
|
"eslint-config-prettier": "^9.1.0",
|
|
78
|
-
"eslint-plugin-
|
|
79
|
-
"eslint-plugin-
|
|
80
|
-
"eslint-plugin-prettier": "^5.2.1",
|
|
81
|
-
"eslint-plugin-promise": "^6.4.0",
|
|
78
|
+
"eslint-plugin-import-x": "^3.1.0",
|
|
79
|
+
"eslint-plugin-jsdoc": "^48.11.0",
|
|
82
80
|
"eslint-plugin-jsx-a11y": "^6.9.0",
|
|
83
|
-
"eslint-plugin-
|
|
81
|
+
"eslint-plugin-mocha": "^10.5.0",
|
|
82
|
+
"eslint-plugin-prettier": "^5.2.1",
|
|
83
|
+
"eslint-plugin-promise": "^7.0.0",
|
|
84
|
+
"eslint-plugin-react": "^7.35.0",
|
|
84
85
|
"eslint-plugin-react-hooks": "^4.6.2",
|
|
85
86
|
"eslint-plugin-security": "^3.0.1",
|
|
86
87
|
"eslint-plugin-testing-library": "^6.2.2",
|
|
87
|
-
"eslint-plugin-unicorn": "^
|
|
88
|
-
"globals": "^15.
|
|
89
|
-
"typescript-eslint": "8.0.0
|
|
88
|
+
"eslint-plugin-unicorn": "^55.0.0",
|
|
89
|
+
"globals": "^15.9.0",
|
|
90
|
+
"typescript-eslint": "8.0.0"
|
|
90
91
|
},
|
|
91
92
|
"devDependencies": {
|
|
92
|
-
"@swc/core": "1.7.
|
|
93
|
-
"@types/node": ">=
|
|
94
|
-
"eslint": "^9.
|
|
95
|
-
"husky": "^9.1.
|
|
93
|
+
"@swc/core": "1.7.5",
|
|
94
|
+
"@types/node": ">=22",
|
|
95
|
+
"eslint": "^9.8.0",
|
|
96
|
+
"husky": "^9.1.4",
|
|
96
97
|
"lint-staged": "^15.2.7",
|
|
97
98
|
"markdownlint-cli": "^0.41.0",
|
|
98
99
|
"npm-run-all": "^4.1.5",
|
|
99
100
|
"pinst": "^3.0.0",
|
|
100
101
|
"prettier": "^3.3.3",
|
|
101
|
-
"typescript": "^5.5.
|
|
102
|
+
"typescript": "^5.5.4",
|
|
102
103
|
"unbuild": "2.0.0"
|
|
103
104
|
},
|
|
104
105
|
"overrides": {
|
package/src/eslint.ts
CHANGED
|
@@ -194,6 +194,14 @@ const base: TSESLint.FlatConfig.Config = {
|
|
|
194
194
|
},
|
|
195
195
|
],
|
|
196
196
|
'prefer-template': 'error',
|
|
197
|
+
'sort-imports': [
|
|
198
|
+
'error',
|
|
199
|
+
{
|
|
200
|
+
ignoreCase: true,
|
|
201
|
+
ignoreDeclarationSort: true,
|
|
202
|
+
allowSeparatedGroups: true,
|
|
203
|
+
},
|
|
204
|
+
],
|
|
197
205
|
'symbol-description': 'error',
|
|
198
206
|
'unicode-bom': ['error', 'never'],
|
|
199
207
|
'vars-on-top': 'error',
|
package/src/extension.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { TSESLint } from '@typescript-eslint/utils';
|
|
2
|
+
|
|
1
3
|
import { requireExtensionRule } from './rules/requireExtensionRule.js';
|
|
2
4
|
import { requireIndexRule } from './rules/requireIndexRule.js';
|
|
3
|
-
import type { TSESLint } from '@typescript-eslint/utils';
|
|
4
5
|
|
|
5
6
|
const base: TSESLint.FlatConfig.Config = {
|
|
6
7
|
plugins: {
|
package/src/import.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { TSESLint } from '@typescript-eslint/utils';
|
|
2
|
+
import importPlugin from 'eslint-plugin-import-x';
|
|
3
|
+
|
|
4
|
+
const base: TSESLint.FlatConfig.Config = {
|
|
5
|
+
plugins: {
|
|
6
|
+
import: importPlugin,
|
|
7
|
+
},
|
|
8
|
+
rules: {
|
|
9
|
+
'import/order': [
|
|
10
|
+
'error',
|
|
11
|
+
{
|
|
12
|
+
'newlines-between': 'always',
|
|
13
|
+
alphabetize: { order: 'asc', caseInsensitive: true },
|
|
14
|
+
pathGroupsExcludedImportTypes: ['builtin'],
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const configs = {
|
|
21
|
+
base,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default {
|
|
25
|
+
configs,
|
|
26
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import eslint from '@eslint/js';
|
|
2
|
+
import prettier from 'eslint-plugin-prettier/recommended';
|
|
2
3
|
import globals from 'globals';
|
|
3
4
|
import tsEslint, { type ConfigWithExtends } from 'typescript-eslint';
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
import { configs as eslintConfigs } from './eslint.js';
|
|
6
7
|
import { configs as extensionConfigs } from './extension.js';
|
|
8
|
+
import { configs as importConfigs } from './import.js';
|
|
7
9
|
import { configs as jsdocConfigs } from './jsdoc.js';
|
|
8
10
|
import { configs as mochaConfigs } from './mocha.js';
|
|
9
11
|
import { configs as promiseConfigs } from './promise.js';
|
|
@@ -14,6 +16,7 @@ import { configs as unicornConfigs } from './unicorn.js';
|
|
|
14
16
|
|
|
15
17
|
export {
|
|
16
18
|
eslintConfigs, //
|
|
19
|
+
importConfigs,
|
|
17
20
|
jsdocConfigs,
|
|
18
21
|
promiseConfigs,
|
|
19
22
|
reactConfigs,
|
|
@@ -53,18 +56,10 @@ export function defaultConfig(options?: DefaultConfigOptions): ConfigWithExtends
|
|
|
53
56
|
...tsEslint.configs.base.languageOptions,
|
|
54
57
|
},
|
|
55
58
|
},
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
};
|
|
61
|
-
}),
|
|
62
|
-
...tsEslint.configs.stylisticTypeChecked.map((config) => {
|
|
63
|
-
return {
|
|
64
|
-
...config,
|
|
65
|
-
files: ['**/*.ts', '**/*.tsx'],
|
|
66
|
-
};
|
|
67
|
-
}),
|
|
59
|
+
{
|
|
60
|
+
files: ['**/*.ts', '**/*.tsx'],
|
|
61
|
+
extends: [...tsEslint.configs.strictTypeChecked, ...tsEslint.configs.stylisticTypeChecked],
|
|
62
|
+
},
|
|
68
63
|
{
|
|
69
64
|
languageOptions,
|
|
70
65
|
settings: {
|
|
@@ -76,6 +71,7 @@ export function defaultConfig(options?: DefaultConfigOptions): ConfigWithExtends
|
|
|
76
71
|
files: ['**/*.ts', '**/*.js', '**/*.cjs', '**/*.mjs', '**/*.tsx'],
|
|
77
72
|
plugins: {
|
|
78
73
|
...extensionConfigs.base.plugins,
|
|
74
|
+
...importConfigs.base.plugins,
|
|
79
75
|
...jsdocConfigs.base.plugins,
|
|
80
76
|
...promiseConfigs.base.plugins,
|
|
81
77
|
...securityConfigs.base.plugins,
|
|
@@ -84,6 +80,7 @@ export function defaultConfig(options?: DefaultConfigOptions): ConfigWithExtends
|
|
|
84
80
|
rules: {
|
|
85
81
|
...eslintConfigs.base.rules,
|
|
86
82
|
...(enableRequireExtensionRule ? extensionConfigs.base.rules : {}),
|
|
83
|
+
...importConfigs.base.rules,
|
|
87
84
|
...jsdocConfigs.base.rules,
|
|
88
85
|
...promiseConfigs.base.rules,
|
|
89
86
|
...securityConfigs.base.rules,
|
|
@@ -122,6 +119,11 @@ export function defaultConfig(options?: DefaultConfigOptions): ConfigWithExtends
|
|
|
122
119
|
|
|
123
120
|
...mochaConfigs.base,
|
|
124
121
|
},
|
|
122
|
+
{
|
|
123
|
+
name: 'eslint-config-decent/cjs-and-esm-disable-ts-rules',
|
|
124
|
+
files: ['**/*.js', '**/*.cjs', '**/*.mjs'],
|
|
125
|
+
extends: [tsEslint.configs.disableTypeChecked],
|
|
126
|
+
},
|
|
125
127
|
prettier,
|
|
126
128
|
];
|
|
127
129
|
}
|
package/src/jsdoc.ts
CHANGED
package/src/mocha.ts
CHANGED
package/src/promise.ts
CHANGED
package/src/react.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import type { TSESLint } from '@typescript-eslint/utils';
|
|
1
2
|
import a11y from 'eslint-plugin-jsx-a11y';
|
|
2
3
|
import react from 'eslint-plugin-react';
|
|
3
4
|
import reactHooks from 'eslint-plugin-react-hooks';
|
|
4
5
|
import testingLibrary from 'eslint-plugin-testing-library';
|
|
5
|
-
import type { TSESLint } from '@typescript-eslint/utils';
|
|
6
6
|
|
|
7
7
|
const base: TSESLint.FlatConfig.Config = {
|
|
8
8
|
plugins: {
|
package/src/security.ts
CHANGED