@rebeccastevens/eslint-config 1.5.4 → 1.5.6

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
@@ -28,6 +28,8 @@ pnpm add -D \
28
28
  pnpm dlx install-peerdeps @rebeccastevens/eslint-config --dev -o -Y
29
29
  ```
30
30
 
31
+ Note: This project doesn't strictly follow semantic versioning so be sure to pin the version you are using.
32
+
31
33
  ## Usage
32
34
 
33
35
  ### Language
@@ -1,5 +1,8 @@
1
1
  'use strict';
2
2
 
3
+ const jsxFiles = ["**/*.{jsx,cjsx,mjsx,tsx,ctsx,mtsx}"];
4
+ const testFiles = ["{test,tests}/**/*", "**/*.{spec,test}.*"];
5
+
3
6
  var commonOverrides = {
4
7
  overrides: [
5
8
  {
@@ -16,16 +19,19 @@ var commonOverrides = {
16
19
  extends: ["@rebeccastevens/eslint-config/script"],
17
20
  },
18
21
  {
19
- files: ["{test,tests}/**/*", "**/*.test.*"],
22
+ files: testFiles,
20
23
  extends: ["@rebeccastevens/eslint-config/test"],
21
24
  },
22
25
  {
23
- files: ["**/*.{cjs,cts}"],
24
- rules: {
25
- "@typescript-eslint/no-var-requires": "off",
26
- "import/no-dynamic-require": "off",
27
- "node/no-missing-require": "off",
28
- "unicorn/prefer-module": "off",
26
+ files: jsxFiles,
27
+ parserOptions: {
28
+ ecmaVersion: "latest",
29
+ sourceType: "module",
30
+ ecmaFeatures: {
31
+ globalReturn: false,
32
+ impliedStrict: true,
33
+ jsx: true,
34
+ },
29
35
  },
30
36
  },
31
37
  ],
@@ -1,3 +1,6 @@
1
+ const jsxFiles = ["**/*.{jsx,cjsx,mjsx,tsx,ctsx,mtsx}"];
2
+ const testFiles = ["{test,tests}/**/*", "**/*.{spec,test}.*"];
3
+
1
4
  var commonOverrides = {
2
5
  overrides: [
3
6
  {
@@ -14,16 +17,19 @@ var commonOverrides = {
14
17
  extends: ["@rebeccastevens/eslint-config/script"],
15
18
  },
16
19
  {
17
- files: ["{test,tests}/**/*", "**/*.test.*"],
20
+ files: testFiles,
18
21
  extends: ["@rebeccastevens/eslint-config/test"],
19
22
  },
20
23
  {
21
- files: ["**/*.{cjs,cts}"],
22
- rules: {
23
- "@typescript-eslint/no-var-requires": "off",
24
- "import/no-dynamic-require": "off",
25
- "node/no-missing-require": "off",
26
- "unicorn/prefer-module": "off",
24
+ files: jsxFiles,
25
+ parserOptions: {
26
+ ecmaVersion: "latest",
27
+ sourceType: "module",
28
+ ecmaFeatures: {
29
+ globalReturn: false,
30
+ impliedStrict: true,
31
+ jsx: true,
32
+ },
27
33
  },
28
34
  },
29
35
  ],
package/dist/modern.cjs CHANGED
@@ -27,6 +27,7 @@ const rules$4 = {
27
27
  "require-jsdoc": "off",
28
28
  "valid-jsdoc": "off",
29
29
  };
30
+ const overrides$4 = [];
30
31
 
31
32
  const rules$3 = {
32
33
  "array-bracket-spacing": ["error", "never"],
@@ -314,6 +315,7 @@ const rules$3 = {
314
315
  ],
315
316
  "yield-star-spacing": ["error", "after"],
316
317
  };
318
+ const overrides$3 = [];
317
319
 
318
320
  const rules$2 = {
319
321
  "constructor-super": "error",
@@ -397,6 +399,11 @@ const rules$2 = {
397
399
  },
398
400
  ],
399
401
  };
402
+ const overrides$2 = [];
403
+
404
+ const typescriptFiles = ["**/*.{ts,tsx,mts,mtsx,cts,ctsx}"];
405
+ const typescriptDeclarationFiles = ["**/*.d.{ts,mts,cts}"];
406
+ const commonJsFiles = ["**/*.{cjs,cts}"];
400
407
 
401
408
  const useNumberIsFinite = "Please use Number.isFinite instead";
402
409
  const useNumberIsNan = "Please use Number.isNaN instead";
@@ -579,6 +586,14 @@ const rules$1 = {
579
586
  "symbol-description": "error",
580
587
  "yoda": ["error", "never"],
581
588
  };
589
+ const overrides$1 = [
590
+ {
591
+ files: typescriptDeclarationFiles,
592
+ rules: {
593
+ "init-declarations": "off",
594
+ },
595
+ },
596
+ ];
582
597
 
583
598
  const rules = {
584
599
  ...rules$2,
@@ -586,6 +601,12 @@ const rules = {
586
601
  ...rules$3,
587
602
  ...rules$4,
588
603
  };
604
+ const overrides = [
605
+ ...overrides$4,
606
+ ...overrides$3,
607
+ ...overrides$2,
608
+ ...overrides$1,
609
+ ];
589
610
 
590
611
  const settings$9 = {
591
612
  plugins: ["eslint-comments"],
@@ -804,9 +825,19 @@ const settings$7 = {
804
825
  },
805
826
  overrides: [
806
827
  {
807
- files: ["**/*.cjs"],
828
+ files: commonJsFiles,
808
829
  rules: {
809
830
  "import/no-commonjs": "off",
831
+ "import/no-dynamic-require": "off",
832
+ },
833
+ },
834
+ {
835
+ files: typescriptFiles,
836
+ rules: {
837
+ "import/no-unresolved": "off",
838
+ "import/named": "off",
839
+ "import/default": "off",
840
+ "import/namespace": "off",
810
841
  },
811
842
  },
812
843
  ],
@@ -814,28 +845,14 @@ const settings$7 = {
814
845
 
815
846
  const settings$6 = {
816
847
  plugins: ["jsdoc"],
848
+ extends: ["plugin:jsdoc/recommended"],
817
849
  rules: {
818
- "jsdoc/check-access": "warn",
819
- "jsdoc/check-alignment": "warn",
820
850
  // waiting on https://github.com/eslint/eslint/issues/14745
821
851
  // "jsdoc/check-examples": "warn",
822
852
  "jsdoc/check-indentation": "warn",
823
853
  "jsdoc/check-line-alignment": "warn",
824
- "jsdoc/check-param-names": "warn",
825
- "jsdoc/check-property-names": "warn",
826
- "jsdoc/check-tag-names": "warn",
827
- "jsdoc/check-types": "warn",
828
- "jsdoc/check-values": "warn",
829
- "jsdoc/empty-tags": "warn",
830
- "jsdoc/implements-on-classes": "warn",
831
- "jsdoc/multiline-blocks": "warn",
832
- "jsdoc/newline-after-description": "warn",
833
854
  "jsdoc/no-bad-blocks": "warn",
834
855
  "jsdoc/no-defaults": "warn",
835
- "jsdoc/no-multi-asterisks": "warn",
836
- // For TypeScript
837
- "jsdoc/no-types": "warn",
838
- "jsdoc/no-undefined-types": "warn",
839
856
  "jsdoc/require-asterisk-prefix": "warn",
840
857
  "jsdoc/require-description": "warn",
841
858
  // Rule is too strict.
@@ -858,21 +875,27 @@ const settings$6 = {
858
875
  },
859
876
  },
860
877
  ],
861
- "jsdoc/require-param-description": "warn",
862
- "jsdoc/require-param-name": "warn",
863
- "jsdoc/require-property-description": "warn",
864
- "jsdoc/require-property-name": "warn",
865
- "jsdoc/require-returns-check": "warn",
866
- "jsdoc/require-returns-description": "warn",
867
- "jsdoc/require-yields": "warn",
868
- "jsdoc/require-yields-check": "warn",
878
+ "jsdoc/require-throws": "warn",
869
879
  "jsdoc/tag-lines": [
870
880
  "warn",
871
881
  "never",
872
- { tags: { example: { lines: "always" } } },
882
+ { noEndLines: true, tags: { example: { lines: "always" } } },
873
883
  ],
874
- "jsdoc/valid-types": "warn",
875
884
  },
885
+ overrides: [
886
+ {
887
+ files: typescriptFiles,
888
+ rules: {
889
+ "jsdoc/no-types": "warn",
890
+ "jsdoc/require-param-type": "off",
891
+ "jsdoc/require-param": "off",
892
+ "jsdoc/require-property-type": "off",
893
+ "jsdoc/require-property": "off",
894
+ "jsdoc/require-returns-type": "off",
895
+ "jsdoc/require-returns": "off",
896
+ },
897
+ },
898
+ ],
876
899
  };
877
900
 
878
901
  const settings$5 = {
@@ -983,6 +1006,20 @@ const settings$4 = {
983
1006
  "node/prefer-promises/dns": "error",
984
1007
  "node/prefer-promises/fs": "error",
985
1008
  },
1009
+ overrides: [
1010
+ {
1011
+ files: commonJsFiles,
1012
+ rules: {
1013
+ "node/no-missing-require": "off",
1014
+ },
1015
+ },
1016
+ {
1017
+ files: typescriptFiles,
1018
+ rules: {
1019
+ "node/no-unsupported-features/es-syntax": "off",
1020
+ },
1021
+ },
1022
+ ],
986
1023
  };
987
1024
 
988
1025
  const settings$3 = {
@@ -1045,25 +1082,31 @@ const settings = {
1045
1082
  "unicorn/prefer-top-level-await": "error",
1046
1083
  "unicorn/prevent-abbreviations": "off",
1047
1084
  },
1085
+ overrides: [
1086
+ {
1087
+ files: commonJsFiles,
1088
+ rules: {
1089
+ "unicorn/prefer-module": "off",
1090
+ },
1091
+ },
1092
+ ],
1048
1093
  };
1049
1094
 
1050
1095
  const baseConfig = {
1051
1096
  parser: "babel-eslint",
1052
1097
  parserOptions: {
1053
- ecmaVersion: 2021,
1098
+ ecmaVersion: "latest",
1054
1099
  ecmaFeatures: {
1055
1100
  globalReturn: false,
1056
1101
  impliedStrict: true,
1057
1102
  },
1058
1103
  sourceType: "module",
1059
- extraFileExtensions: [".cjs", ".mjs"],
1060
1104
  },
1061
1105
  extends: ["eslint:recommended"],
1062
- env: {
1063
- es6: true,
1064
- },
1065
1106
  rules: rules,
1107
+ overrides: overrides,
1066
1108
  ignorePatterns: ["dist/"],
1109
+ reportUnusedDisableDirectives: true,
1067
1110
  };
1068
1111
  var modern = deepmergeTs.deepmerge(baseConfig, settings$9, settings$8, settings$7, settings$6, settings$5, settings$4, settings$3, settings$2, settings$1, settings);
1069
1112
 
package/dist/modern.mjs CHANGED
@@ -25,6 +25,7 @@ const rules$4 = {
25
25
  "require-jsdoc": "off",
26
26
  "valid-jsdoc": "off",
27
27
  };
28
+ const overrides$4 = [];
28
29
 
29
30
  const rules$3 = {
30
31
  "array-bracket-spacing": ["error", "never"],
@@ -312,6 +313,7 @@ const rules$3 = {
312
313
  ],
313
314
  "yield-star-spacing": ["error", "after"],
314
315
  };
316
+ const overrides$3 = [];
315
317
 
316
318
  const rules$2 = {
317
319
  "constructor-super": "error",
@@ -395,6 +397,11 @@ const rules$2 = {
395
397
  },
396
398
  ],
397
399
  };
400
+ const overrides$2 = [];
401
+
402
+ const typescriptFiles = ["**/*.{ts,tsx,mts,mtsx,cts,ctsx}"];
403
+ const typescriptDeclarationFiles = ["**/*.d.{ts,mts,cts}"];
404
+ const commonJsFiles = ["**/*.{cjs,cts}"];
398
405
 
399
406
  const useNumberIsFinite = "Please use Number.isFinite instead";
400
407
  const useNumberIsNan = "Please use Number.isNaN instead";
@@ -577,6 +584,14 @@ const rules$1 = {
577
584
  "symbol-description": "error",
578
585
  "yoda": ["error", "never"],
579
586
  };
587
+ const overrides$1 = [
588
+ {
589
+ files: typescriptDeclarationFiles,
590
+ rules: {
591
+ "init-declarations": "off",
592
+ },
593
+ },
594
+ ];
580
595
 
581
596
  const rules = {
582
597
  ...rules$2,
@@ -584,6 +599,12 @@ const rules = {
584
599
  ...rules$3,
585
600
  ...rules$4,
586
601
  };
602
+ const overrides = [
603
+ ...overrides$4,
604
+ ...overrides$3,
605
+ ...overrides$2,
606
+ ...overrides$1,
607
+ ];
587
608
 
588
609
  const settings$9 = {
589
610
  plugins: ["eslint-comments"],
@@ -802,9 +823,19 @@ const settings$7 = {
802
823
  },
803
824
  overrides: [
804
825
  {
805
- files: ["**/*.cjs"],
826
+ files: commonJsFiles,
806
827
  rules: {
807
828
  "import/no-commonjs": "off",
829
+ "import/no-dynamic-require": "off",
830
+ },
831
+ },
832
+ {
833
+ files: typescriptFiles,
834
+ rules: {
835
+ "import/no-unresolved": "off",
836
+ "import/named": "off",
837
+ "import/default": "off",
838
+ "import/namespace": "off",
808
839
  },
809
840
  },
810
841
  ],
@@ -812,28 +843,14 @@ const settings$7 = {
812
843
 
813
844
  const settings$6 = {
814
845
  plugins: ["jsdoc"],
846
+ extends: ["plugin:jsdoc/recommended"],
815
847
  rules: {
816
- "jsdoc/check-access": "warn",
817
- "jsdoc/check-alignment": "warn",
818
848
  // waiting on https://github.com/eslint/eslint/issues/14745
819
849
  // "jsdoc/check-examples": "warn",
820
850
  "jsdoc/check-indentation": "warn",
821
851
  "jsdoc/check-line-alignment": "warn",
822
- "jsdoc/check-param-names": "warn",
823
- "jsdoc/check-property-names": "warn",
824
- "jsdoc/check-tag-names": "warn",
825
- "jsdoc/check-types": "warn",
826
- "jsdoc/check-values": "warn",
827
- "jsdoc/empty-tags": "warn",
828
- "jsdoc/implements-on-classes": "warn",
829
- "jsdoc/multiline-blocks": "warn",
830
- "jsdoc/newline-after-description": "warn",
831
852
  "jsdoc/no-bad-blocks": "warn",
832
853
  "jsdoc/no-defaults": "warn",
833
- "jsdoc/no-multi-asterisks": "warn",
834
- // For TypeScript
835
- "jsdoc/no-types": "warn",
836
- "jsdoc/no-undefined-types": "warn",
837
854
  "jsdoc/require-asterisk-prefix": "warn",
838
855
  "jsdoc/require-description": "warn",
839
856
  // Rule is too strict.
@@ -856,21 +873,27 @@ const settings$6 = {
856
873
  },
857
874
  },
858
875
  ],
859
- "jsdoc/require-param-description": "warn",
860
- "jsdoc/require-param-name": "warn",
861
- "jsdoc/require-property-description": "warn",
862
- "jsdoc/require-property-name": "warn",
863
- "jsdoc/require-returns-check": "warn",
864
- "jsdoc/require-returns-description": "warn",
865
- "jsdoc/require-yields": "warn",
866
- "jsdoc/require-yields-check": "warn",
876
+ "jsdoc/require-throws": "warn",
867
877
  "jsdoc/tag-lines": [
868
878
  "warn",
869
879
  "never",
870
- { tags: { example: { lines: "always" } } },
880
+ { noEndLines: true, tags: { example: { lines: "always" } } },
871
881
  ],
872
- "jsdoc/valid-types": "warn",
873
882
  },
883
+ overrides: [
884
+ {
885
+ files: typescriptFiles,
886
+ rules: {
887
+ "jsdoc/no-types": "warn",
888
+ "jsdoc/require-param-type": "off",
889
+ "jsdoc/require-param": "off",
890
+ "jsdoc/require-property-type": "off",
891
+ "jsdoc/require-property": "off",
892
+ "jsdoc/require-returns-type": "off",
893
+ "jsdoc/require-returns": "off",
894
+ },
895
+ },
896
+ ],
874
897
  };
875
898
 
876
899
  const settings$5 = {
@@ -981,6 +1004,20 @@ const settings$4 = {
981
1004
  "node/prefer-promises/dns": "error",
982
1005
  "node/prefer-promises/fs": "error",
983
1006
  },
1007
+ overrides: [
1008
+ {
1009
+ files: commonJsFiles,
1010
+ rules: {
1011
+ "node/no-missing-require": "off",
1012
+ },
1013
+ },
1014
+ {
1015
+ files: typescriptFiles,
1016
+ rules: {
1017
+ "node/no-unsupported-features/es-syntax": "off",
1018
+ },
1019
+ },
1020
+ ],
984
1021
  };
985
1022
 
986
1023
  const settings$3 = {
@@ -1043,25 +1080,31 @@ const settings = {
1043
1080
  "unicorn/prefer-top-level-await": "error",
1044
1081
  "unicorn/prevent-abbreviations": "off",
1045
1082
  },
1083
+ overrides: [
1084
+ {
1085
+ files: commonJsFiles,
1086
+ rules: {
1087
+ "unicorn/prefer-module": "off",
1088
+ },
1089
+ },
1090
+ ],
1046
1091
  };
1047
1092
 
1048
1093
  const baseConfig = {
1049
1094
  parser: "babel-eslint",
1050
1095
  parserOptions: {
1051
- ecmaVersion: 2021,
1096
+ ecmaVersion: "latest",
1052
1097
  ecmaFeatures: {
1053
1098
  globalReturn: false,
1054
1099
  impliedStrict: true,
1055
1100
  },
1056
1101
  sourceType: "module",
1057
- extraFileExtensions: [".cjs", ".mjs"],
1058
1102
  },
1059
1103
  extends: ["eslint:recommended"],
1060
- env: {
1061
- es6: true,
1062
- },
1063
1104
  rules: rules,
1105
+ overrides: overrides,
1064
1106
  ignorePatterns: ["dist/"],
1107
+ reportUnusedDisableDirectives: true,
1065
1108
  };
1066
1109
  var modern = deepmerge(baseConfig, settings$9, settings$8, settings$7, settings$6, settings$5, settings$4, settings$3, settings$2, settings$1, settings);
1067
1110
 
@@ -2,6 +2,9 @@
2
2
 
3
3
  var deepmergeTs = require('deepmerge-ts');
4
4
 
5
+ const typescriptDeclarationFiles = ["**/*.d.{ts,mts,cts}"];
6
+ const commonJsFiles = ["**/*.{cjs,cts}"];
7
+
5
8
  const settings = {
6
9
  plugins: ["@typescript-eslint"],
7
10
  extends: [
@@ -266,6 +269,21 @@ const settings = {
266
269
  "@typescript-eslint/unified-signatures": "warn",
267
270
  "@typescript-eslint/no-redeclare": "error",
268
271
  },
272
+ overrides: [
273
+ {
274
+ files: commonJsFiles,
275
+ rules: {
276
+ "@typescript-eslint/no-var-requires": "off",
277
+ },
278
+ },
279
+ {
280
+ files: typescriptDeclarationFiles,
281
+ rules: {
282
+ "@typescript-eslint/consistent-type-definitions": "off",
283
+ "@typescript-eslint/triple-slash-reference": "off",
284
+ },
285
+ },
286
+ ],
269
287
  };
270
288
 
271
289
  const baseConfig = {
@@ -296,33 +314,22 @@ const baseConfig = {
296
314
  ".tsx",
297
315
  ".mjs",
298
316
  ".mts",
317
+ ".mtsx",
299
318
  ".cjs",
300
319
  ".cts",
320
+ ".ctsx",
301
321
  ],
302
322
  "import/parsers": {
303
- "@typescript-eslint/parser": [".ts", ".tsx", ".mts", ".cts"],
323
+ "@typescript-eslint/parser": [
324
+ ".ts",
325
+ ".tsx",
326
+ ".mts",
327
+ ".mtsx",
328
+ ".cts",
329
+ ".ctsx",
330
+ ],
304
331
  },
305
332
  },
306
- overrides: [
307
- {
308
- files: ["**/*.{ts,tsx,mts,cts}"],
309
- rules: {
310
- "import/no-unresolved": "off",
311
- "import/named": "off",
312
- "import/default": "off",
313
- "import/namespace": "off",
314
- "node/no-unsupported-features/es-syntax": "off",
315
- },
316
- },
317
- {
318
- files: "**/*.d.{ts,mts,cts}",
319
- rules: {
320
- "@typescript-eslint/consistent-type-definitions": "off",
321
- "@typescript-eslint/triple-slash-reference": "off",
322
- "init-declarations": "off",
323
- },
324
- },
325
- ],
326
333
  };
327
334
  var typescript = deepmergeTs.deepmerge(baseConfig, settings);
328
335
 
@@ -1,5 +1,8 @@
1
1
  import { deepmerge } from 'deepmerge-ts';
2
2
 
3
+ const typescriptDeclarationFiles = ["**/*.d.{ts,mts,cts}"];
4
+ const commonJsFiles = ["**/*.{cjs,cts}"];
5
+
3
6
  const settings = {
4
7
  plugins: ["@typescript-eslint"],
5
8
  extends: [
@@ -264,6 +267,21 @@ const settings = {
264
267
  "@typescript-eslint/unified-signatures": "warn",
265
268
  "@typescript-eslint/no-redeclare": "error",
266
269
  },
270
+ overrides: [
271
+ {
272
+ files: commonJsFiles,
273
+ rules: {
274
+ "@typescript-eslint/no-var-requires": "off",
275
+ },
276
+ },
277
+ {
278
+ files: typescriptDeclarationFiles,
279
+ rules: {
280
+ "@typescript-eslint/consistent-type-definitions": "off",
281
+ "@typescript-eslint/triple-slash-reference": "off",
282
+ },
283
+ },
284
+ ],
267
285
  };
268
286
 
269
287
  const baseConfig = {
@@ -294,33 +312,22 @@ const baseConfig = {
294
312
  ".tsx",
295
313
  ".mjs",
296
314
  ".mts",
315
+ ".mtsx",
297
316
  ".cjs",
298
317
  ".cts",
318
+ ".ctsx",
299
319
  ],
300
320
  "import/parsers": {
301
- "@typescript-eslint/parser": [".ts", ".tsx", ".mts", ".cts"],
321
+ "@typescript-eslint/parser": [
322
+ ".ts",
323
+ ".tsx",
324
+ ".mts",
325
+ ".mtsx",
326
+ ".cts",
327
+ ".ctsx",
328
+ ],
302
329
  },
303
330
  },
304
- overrides: [
305
- {
306
- files: ["**/*.{ts,tsx,mts,cts}"],
307
- rules: {
308
- "import/no-unresolved": "off",
309
- "import/named": "off",
310
- "import/default": "off",
311
- "import/namespace": "off",
312
- "node/no-unsupported-features/es-syntax": "off",
313
- },
314
- },
315
- {
316
- files: "**/*.d.{ts,mts,cts}",
317
- rules: {
318
- "@typescript-eslint/consistent-type-definitions": "off",
319
- "@typescript-eslint/triple-slash-reference": "off",
320
- "init-declarations": "off",
321
- },
322
- },
323
- ],
324
331
  };
325
332
  var typescript = deepmerge(baseConfig, settings);
326
333
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rebeccastevens/eslint-config",
3
- "version": "1.5.4",
3
+ "version": "1.5.6",
4
4
  "description": "My ESLint shareable config.",
5
5
  "keywords": [
6
6
  "eslint config"
@@ -82,7 +82,7 @@
82
82
  "@typescript-eslint/eslint-plugin": "5.54.1",
83
83
  "@typescript-eslint/parser": "5.54.1",
84
84
  "commitizen": "4.3.0",
85
- "cspell": "6.28.0",
85
+ "cspell": "6.29.0",
86
86
  "cz-conventional-changelog": "3.3.0",
87
87
  "eslint": "8.36.0",
88
88
  "eslint-config-prettier": "8.7.0",