@jsse/eslint-config 0.0.4 → 0.0.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/dist/index.js CHANGED
@@ -2387,7 +2387,15 @@ var GLOB_TESTS = [
2387
2387
  `**/*.bench.${GLOB_SRC_EXT}`,
2388
2388
  `**/*.benchmark.${GLOB_SRC_EXT}`
2389
2389
  ];
2390
- var GLOB_ALL_SRC = [GLOB_SRC, GLOB_STYLE, GLOB_JSON, GLOB_JSON5, GLOB_MARKDOWN, GLOB_YAML, GLOB_HTML];
2390
+ var GLOB_ALL_SRC = [
2391
+ GLOB_SRC,
2392
+ GLOB_STYLE,
2393
+ GLOB_JSON,
2394
+ GLOB_JSON5,
2395
+ GLOB_MARKDOWN,
2396
+ GLOB_YAML,
2397
+ GLOB_HTML
2398
+ ];
2391
2399
  var GLOB_EXCLUDE = [
2392
2400
  "**/node_modules",
2393
2401
  "**/dist",
@@ -2447,7 +2455,10 @@ function imports(options = {}) {
2447
2455
  "import/no-webpack-loader-syntax": "error",
2448
2456
  "import/order": "error",
2449
2457
  ...stylistic2 ? {
2450
- "import/newline-after-import": ["error", { considerComments: true, count: 1 }]
2458
+ "import/newline-after-import": [
2459
+ "error",
2460
+ { considerComments: true, count: 1 }
2461
+ ]
2451
2462
  } : {}
2452
2463
  }
2453
2464
  }
@@ -2490,7 +2501,10 @@ function javascript(options = {}) {
2490
2501
  },
2491
2502
  rules: {
2492
2503
  ...eslintjs.configs.recommended.rules,
2493
- "accessor-pairs": ["error", { enforceForClassMembers: true, setWithoutGet: true }],
2504
+ "accessor-pairs": [
2505
+ "error",
2506
+ { enforceForClassMembers: true, setWithoutGet: true }
2507
+ ],
2494
2508
  "array-callback-return": "error",
2495
2509
  "arrow-parens": ["error", "as-needed", { requireForBlockBody: true }],
2496
2510
  "block-scoped-var": "error",
@@ -2498,7 +2512,10 @@ function javascript(options = {}) {
2498
2512
  "default-case-last": "error",
2499
2513
  "dot-notation": ["error", { allowKeywords: true }],
2500
2514
  eqeqeq: ["error", "smart"],
2501
- "new-cap": ["error", { capIsNew: false, newIsCap: true, properties: true }],
2515
+ "new-cap": [
2516
+ "error",
2517
+ { capIsNew: false, newIsCap: true, properties: true }
2518
+ ],
2502
2519
  "no-alert": "error",
2503
2520
  "no-array-constructor": "error",
2504
2521
  "no-async-promise-executor": "error",
@@ -2621,7 +2638,10 @@ function javascript(options = {}) {
2621
2638
  vars: "all"
2622
2639
  }
2623
2640
  ],
2624
- "no-use-before-define": ["error", { classes: false, functions: false, variables: true }],
2641
+ "no-use-before-define": [
2642
+ "error",
2643
+ { classes: false, functions: false, variables: true }
2644
+ ],
2625
2645
  "no-useless-backreference": "error",
2626
2646
  "no-useless-call": "error",
2627
2647
  "no-useless-catch": "error",
@@ -2683,7 +2703,10 @@ function javascript(options = {}) {
2683
2703
  varsIgnorePattern: "^_"
2684
2704
  }
2685
2705
  ],
2686
- "use-isnan": ["error", { enforceForIndexOf: true, enforceForSwitchCase: true }],
2706
+ "use-isnan": [
2707
+ "error",
2708
+ { enforceForIndexOf: true, enforceForSwitchCase: true }
2709
+ ],
2687
2710
  "valid-typeof": ["error", { requireStringLiterals: true }],
2688
2711
  "vars-on-top": "error",
2689
2712
  yoda: ["error", "never"],
@@ -2785,10 +2808,19 @@ function jsonc(options = {}) {
2785
2808
  "jsonc/comma-dangle": ["error", "never"],
2786
2809
  "jsonc/comma-style": ["error", "last"],
2787
2810
  "jsonc/indent": ["error", indent],
2788
- "jsonc/key-spacing": ["error", { afterColon: true, beforeColon: false }],
2789
- "jsonc/object-curly-newline": ["error", { consistent: true, multiline: true }],
2811
+ "jsonc/key-spacing": [
2812
+ "error",
2813
+ { afterColon: true, beforeColon: false }
2814
+ ],
2815
+ "jsonc/object-curly-newline": [
2816
+ "error",
2817
+ { consistent: true, multiline: true }
2818
+ ],
2790
2819
  "jsonc/object-curly-spacing": ["error", "always"],
2791
- "jsonc/object-property-newline": ["error", { allowMultiplePropertiesPerLine: true }],
2820
+ "jsonc/object-property-newline": [
2821
+ "error",
2822
+ { allowMultiplePropertiesPerLine: true }
2823
+ ],
2792
2824
  "jsonc/quote-props": "error",
2793
2825
  "jsonc/quotes": "error"
2794
2826
  } : {},
@@ -2990,171 +3022,176 @@ function typescriptLanguageOptions(options) {
2990
3022
  }
2991
3023
 
2992
3024
  // src/configs/react.ts
2993
- var reactRules = {
2994
- "react-hooks/exhaustive-deps": "error",
2995
- "react-hooks/rules-of-hooks": "error",
2996
- "react/boolean-prop-naming": [
2997
- "error",
2998
- {
2999
- rule: ["^(is|has)[A-Z]([A-Za-z0-9]?)+", "|^(debug|disabled|hidden|required|selected|highlight)$"].join(""),
3000
- validateNested: true
3001
- }
3002
- ],
3003
- "react/button-has-type": "error",
3004
- "react/function-component-definition": [
3005
- "error",
3006
- {
3007
- namedComponents: "function-declaration",
3008
- unnamedComponents: "arrow-function"
3009
- }
3010
- ],
3011
- "react/hook-use-state": "error",
3012
- "react/iframe-missing-sandbox": "error",
3013
- "react/jsx-boolean-value": "error",
3014
- "react/jsx-child-element-spacing": "error",
3015
- "react/jsx-closing-bracket-location": [
3016
- "error",
3017
- {
3018
- nonEmpty: "tag-aligned",
3019
- selfClosing: false
3020
- }
3021
- ],
3022
- "react/jsx-closing-tag-location": "error",
3023
- "react/jsx-curly-brace-presence": [
3024
- "error",
3025
- {
3026
- children: "never",
3027
- propElementValues: "always",
3028
- props: "never"
3029
- }
3030
- ],
3031
- "react/jsx-curly-newline": [
3032
- "error",
3033
- {
3034
- multiline: "consistent",
3035
- singleline: "forbid"
3036
- }
3037
- ],
3038
- "react/jsx-curly-spacing": ["error", "never"],
3039
- "react/jsx-equals-spacing": ["error", "never"],
3040
- "react/jsx-first-prop-new-line": "error",
3041
- "react/jsx-fragments": ["error", "syntax"],
3042
- "react/jsx-indent": ["error", 2],
3043
- "react/jsx-indent-props": ["error", 2],
3044
- "react/jsx-key": "warn",
3045
- "react/jsx-max-props-per-line": [
3046
- "error",
3047
- {
3048
- maximum: 3,
3049
- when: "multiline"
3050
- }
3051
- ],
3052
- "react/jsx-no-bind": [
3053
- "error",
3054
- {
3055
- allowArrowFunctions: true
3056
- }
3057
- ],
3058
- "react/jsx-no-comment-textnodes": "error",
3059
- "react/jsx-no-constructed-context-values": "error",
3060
- "react/jsx-no-duplicate-props": [
3061
- "error",
3062
- {
3063
- ignoreCase: true
3064
- }
3065
- ],
3066
- "react/jsx-no-script-url": "error",
3067
- "react/jsx-no-target-blank": [
3068
- "error",
3069
- {
3070
- forms: true,
3071
- warnOnSpreadAttributes: true
3072
- }
3073
- ],
3074
- "react/jsx-no-undef": "error",
3075
- "react/jsx-no-useless-fragment": "error",
3076
- "react/jsx-pascal-case": "error",
3077
- "react/jsx-props-no-multi-spaces": "error",
3078
- "react/jsx-sort-props": [
3079
- "error",
3080
- {
3081
- callbacksLast: true,
3082
- noSortAlphabetically: true,
3083
- reservedFirst: true,
3084
- shorthandFirst: true
3085
- }
3086
- ],
3087
- "react/jsx-tag-spacing": [
3088
- "error",
3089
- {
3090
- afterOpening: "never",
3091
- beforeClosing: "never",
3092
- beforeSelfClosing: "never",
3093
- closingSlash: "never"
3094
- }
3095
- ],
3096
- "react/jsx-uses-react": "error",
3097
- "react/jsx-uses-vars": "error",
3098
- "react/jsx-wrap-multilines": [
3099
- "error",
3100
- {
3101
- arrow: "parens-new-line",
3102
- assignment: "parens-new-line",
3103
- condition: "ignore",
3104
- declaration: "parens-new-line",
3105
- logical: "ignore",
3106
- prop: "ignore",
3107
- return: "parens-new-line"
3108
- }
3109
- ],
3110
- "react/no-access-state-in-setstate": "error",
3111
- "react/no-array-index-key": "error",
3112
- "react/no-arrow-function-lifecycle": "error",
3113
- "react/no-children-prop": "error",
3114
- "react/no-danger": "error",
3115
- "react/no-danger-with-children": "error",
3116
- "react/no-deprecated": "error",
3117
- "react/no-did-update-set-state": "error",
3118
- "react/no-direct-mutation-state": "error",
3119
- "react/no-find-dom-node": "error",
3120
- "react/no-invalid-html-attribute": "error",
3121
- "react/no-is-mounted": "error",
3122
- "react/no-namespace": "error",
3123
- "react/no-redundant-should-component-update": "error",
3124
- "react/no-render-return-value": "error",
3125
- "react/no-string-refs": [
3126
- "error",
3127
- {
3128
- noTemplateLiterals: true
3129
- }
3130
- ],
3131
- "react/no-this-in-sfc": "error",
3132
- "react/no-typos": "error",
3133
- "react/no-unescaped-entities": "error",
3134
- "react/no-unsafe": "error",
3135
- // "react/no-unused-prop-types": "error",
3136
- "react/no-unused-state": "error",
3137
- "react/prefer-read-only-props": "error",
3138
- // "react/prop-types": "error",
3139
- "react/react-in-jsx-scope": "off",
3140
- "react/require-default-props": [
3141
- "error",
3142
- {
3143
- forbidDefaultForRequired: true,
3144
- ignoreFunctionalComponents: true
3145
- }
3146
- ],
3147
- "react/self-closing-comp": "error",
3148
- "react/state-in-constructor": ["error", "never"],
3149
- "react/static-property-placement": "error",
3150
- "react/style-prop-object": [
3151
- "error",
3152
- {
3153
- allow: ["FormattedNumber"]
3154
- }
3155
- ],
3156
- "react/void-dom-elements-no-children": "error"
3157
- };
3025
+ function reactRules() {
3026
+ return {
3027
+ "react-hooks/exhaustive-deps": "error",
3028
+ "react-hooks/rules-of-hooks": "error",
3029
+ "react/boolean-prop-naming": [
3030
+ "error",
3031
+ {
3032
+ rule: [
3033
+ "^(is|has)[A-Z]([A-Za-z0-9]?)+",
3034
+ "|^(debug|disabled|hidden|required|selected|highlight)$"
3035
+ ].join(""),
3036
+ validateNested: true
3037
+ }
3038
+ ],
3039
+ "react/button-has-type": "error",
3040
+ "react/function-component-definition": [
3041
+ "error",
3042
+ {
3043
+ namedComponents: "function-declaration",
3044
+ unnamedComponents: "arrow-function"
3045
+ }
3046
+ ],
3047
+ "react/hook-use-state": "error",
3048
+ "react/iframe-missing-sandbox": "error",
3049
+ "react/jsx-boolean-value": "error",
3050
+ "react/jsx-child-element-spacing": "error",
3051
+ "react/jsx-closing-bracket-location": [
3052
+ "error",
3053
+ {
3054
+ nonEmpty: "tag-aligned",
3055
+ selfClosing: false
3056
+ }
3057
+ ],
3058
+ "react/jsx-closing-tag-location": "error",
3059
+ "react/jsx-curly-brace-presence": [
3060
+ "error",
3061
+ {
3062
+ children: "never",
3063
+ propElementValues: "always",
3064
+ props: "never"
3065
+ }
3066
+ ],
3067
+ "react/jsx-curly-newline": [
3068
+ "error",
3069
+ {
3070
+ multiline: "consistent",
3071
+ singleline: "forbid"
3072
+ }
3073
+ ],
3074
+ "react/jsx-curly-spacing": ["error", "never"],
3075
+ "react/jsx-equals-spacing": ["error", "never"],
3076
+ "react/jsx-first-prop-new-line": "error",
3077
+ "react/jsx-fragments": ["error", "syntax"],
3078
+ "react/jsx-indent": ["error", 2],
3079
+ "react/jsx-indent-props": ["error", 2],
3080
+ "react/jsx-key": "warn",
3081
+ "react/jsx-max-props-per-line": [
3082
+ "error",
3083
+ {
3084
+ maximum: 3,
3085
+ when: "multiline"
3086
+ }
3087
+ ],
3088
+ "react/jsx-no-bind": [
3089
+ "error",
3090
+ {
3091
+ allowArrowFunctions: true
3092
+ }
3093
+ ],
3094
+ "react/jsx-no-comment-textnodes": "error",
3095
+ "react/jsx-no-constructed-context-values": "error",
3096
+ "react/jsx-no-duplicate-props": [
3097
+ "error",
3098
+ {
3099
+ ignoreCase: true
3100
+ }
3101
+ ],
3102
+ "react/jsx-no-script-url": "error",
3103
+ "react/jsx-no-target-blank": [
3104
+ "error",
3105
+ {
3106
+ forms: true,
3107
+ warnOnSpreadAttributes: true
3108
+ }
3109
+ ],
3110
+ "react/jsx-no-undef": "error",
3111
+ "react/jsx-no-useless-fragment": "error",
3112
+ "react/jsx-pascal-case": "error",
3113
+ "react/jsx-props-no-multi-spaces": "error",
3114
+ "react/jsx-sort-props": [
3115
+ "error",
3116
+ {
3117
+ callbacksLast: true,
3118
+ noSortAlphabetically: true,
3119
+ reservedFirst: true,
3120
+ shorthandFirst: true
3121
+ }
3122
+ ],
3123
+ "react/jsx-tag-spacing": [
3124
+ "error",
3125
+ {
3126
+ afterOpening: "never",
3127
+ beforeClosing: "never",
3128
+ beforeSelfClosing: "never",
3129
+ closingSlash: "never"
3130
+ }
3131
+ ],
3132
+ "react/jsx-uses-react": "error",
3133
+ "react/jsx-uses-vars": "error",
3134
+ "react/jsx-wrap-multilines": [
3135
+ "error",
3136
+ {
3137
+ arrow: "parens-new-line",
3138
+ assignment: "parens-new-line",
3139
+ condition: "ignore",
3140
+ declaration: "parens-new-line",
3141
+ logical: "ignore",
3142
+ prop: "ignore",
3143
+ return: "parens-new-line"
3144
+ }
3145
+ ],
3146
+ "react/no-access-state-in-setstate": "error",
3147
+ "react/no-array-index-key": "error",
3148
+ "react/no-arrow-function-lifecycle": "error",
3149
+ "react/no-children-prop": "error",
3150
+ "react/no-danger": "error",
3151
+ "react/no-danger-with-children": "error",
3152
+ "react/no-deprecated": "error",
3153
+ "react/no-did-update-set-state": "error",
3154
+ "react/no-direct-mutation-state": "error",
3155
+ "react/no-find-dom-node": "error",
3156
+ "react/no-invalid-html-attribute": "error",
3157
+ "react/no-is-mounted": "error",
3158
+ "react/no-namespace": "error",
3159
+ "react/no-redundant-should-component-update": "error",
3160
+ "react/no-render-return-value": "error",
3161
+ "react/no-string-refs": [
3162
+ "error",
3163
+ {
3164
+ noTemplateLiterals: true
3165
+ }
3166
+ ],
3167
+ "react/no-this-in-sfc": "error",
3168
+ "react/no-typos": "error",
3169
+ "react/no-unescaped-entities": "error",
3170
+ "react/no-unsafe": "error",
3171
+ // "react/no-unused-prop-types": "error",
3172
+ "react/no-unused-state": "error",
3173
+ "react/prefer-read-only-props": "error",
3174
+ // "react/prop-types": "error",
3175
+ "react/react-in-jsx-scope": "off",
3176
+ "react/require-default-props": [
3177
+ "error",
3178
+ {
3179
+ forbidDefaultForRequired: true,
3180
+ ignoreFunctionalComponents: true
3181
+ }
3182
+ ],
3183
+ "react/self-closing-comp": "error",
3184
+ "react/state-in-constructor": ["error", "never"],
3185
+ "react/static-property-placement": "error",
3186
+ "react/style-prop-object": [
3187
+ "error",
3188
+ {
3189
+ allow: ["FormattedNumber"]
3190
+ }
3191
+ ],
3192
+ "react/void-dom-elements-no-children": "error"
3193
+ };
3194
+ }
3158
3195
  function reactHooks() {
3159
3196
  return [
3160
3197
  {
@@ -3216,7 +3253,12 @@ function reactRecomendedRules() {
3216
3253
  };
3217
3254
  }
3218
3255
  function react(options) {
3219
- const { parserOptions = {}, tsconfigPath, react: react2, reactRefresh } = options ?? {};
3256
+ const {
3257
+ parserOptions = {},
3258
+ tsconfigPath,
3259
+ react: react2,
3260
+ reactRefresh
3261
+ } = options ?? {};
3220
3262
  const config = [
3221
3263
  {
3222
3264
  files: [GLOB_SRC],
@@ -3235,16 +3277,12 @@ function react(options) {
3235
3277
  },
3236
3278
  {
3237
3279
  files: [GLOB_SRC],
3238
- plugins: {
3239
- // react: pluginReact,
3240
- // },
3241
- },
3242
3280
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
3243
3281
  rules: {
3244
3282
  ...reactRecomendedRules(),
3245
3283
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
3246
3284
  ...default8.configs["jsx-runtime"].rules,
3247
- ...reactRules
3285
+ ...reactRules()
3248
3286
  },
3249
3287
  settings: {
3250
3288
  react: {
@@ -3353,7 +3391,14 @@ function sortTsconfig() {
3353
3391
  "jsonc/sort-keys": [
3354
3392
  "error",
3355
3393
  {
3356
- order: ["extends", "compilerOptions", "references", "files", "include", "exclude"],
3394
+ order: [
3395
+ "extends",
3396
+ "compilerOptions",
3397
+ "references",
3398
+ "files",
3399
+ "include",
3400
+ "exclude"
3401
+ ],
3357
3402
  pathPattern: "^$"
3358
3403
  },
3359
3404
  {
@@ -3466,7 +3511,9 @@ function sortTsconfig() {
3466
3511
  // src/utils.ts
3467
3512
  import process3 from "process";
3468
3513
  function combine(...configs) {
3469
- return configs.flatMap((config) => Array.isArray(config) ? config : [config]);
3514
+ return configs.flatMap(
3515
+ (config) => Array.isArray(config) ? config : [config]
3516
+ );
3470
3517
  }
3471
3518
  function renameRules(rules, from, to) {
3472
3519
  if (from === to) {
@@ -3511,7 +3558,10 @@ function test(options = {}) {
3511
3558
  files: GLOB_TESTS,
3512
3559
  name: "jsse:test:rules",
3513
3560
  rules: {
3514
- "test/consistent-test-it": ["error", { fn: "it", withinDescribe: "it" }],
3561
+ "test/consistent-test-it": [
3562
+ "error",
3563
+ { fn: "it", withinDescribe: "it" }
3564
+ ],
3515
3565
  "test/no-identical-title": "error",
3516
3566
  "test/no-only-tests": isInEditor2 ? "off" : isCI() ? "error" : "warn",
3517
3567
  "test/prefer-hooks-in-order": "error",
@@ -3769,7 +3819,7 @@ function typescriptRulesTypeOblivious() {
3769
3819
  "@typescript-eslint/no-use-before-define": [
3770
3820
  "error",
3771
3821
  {
3772
- functions: false,
3822
+ functions: true,
3773
3823
  classes: true,
3774
3824
  variables: true,
3775
3825
  enums: true,
@@ -3912,7 +3962,16 @@ function typescriptRulesTypeOblivious() {
3912
3962
  "@typescript-eslint/no-restricted-imports": [
3913
3963
  "error",
3914
3964
  {
3915
- paths: ["error", "domain", "freelist", "smalloc", "punycode", "sys", "querystring", "colors"]
3965
+ paths: [
3966
+ "error",
3967
+ "domain",
3968
+ "freelist",
3969
+ "smalloc",
3970
+ "punycode",
3971
+ "sys",
3972
+ "querystring",
3973
+ "colors"
3974
+ ]
3916
3975
  }
3917
3976
  ],
3918
3977
  "padding-line-between-statements": "off",
@@ -3931,11 +3990,16 @@ function typescriptRulesTypeOblivious() {
3931
3990
  "no-duplicate-imports": "off"
3932
3991
  };
3933
3992
  }
3934
- function typescriptRules({ typeAware }) {
3935
- return {
3936
- ...typescriptRulesTypeOblivious(),
3937
- ...typeAware ? typescriptRulesTypeAware() : {}
3938
- };
3993
+ function typescriptRules({
3994
+ typeAware
3995
+ }) {
3996
+ if (typeAware) {
3997
+ return {
3998
+ ...typescriptRulesTypeOblivious(),
3999
+ ...typescriptRulesTypeAware()
4000
+ };
4001
+ }
4002
+ return typescriptRulesTypeOblivious();
3939
4003
  }
3940
4004
 
3941
4005
  // src/configs/ts/typescript.ts
@@ -3957,7 +4021,9 @@ function typescript(options) {
3957
4021
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
3958
4022
  ...default3.configs.strict.rules,
3959
4023
  "no-invalid-this": "off",
3960
- ...typescriptRules(typeAware !== false && tsconfigPath ? { typeAware: true } : { typeAware: false }),
4024
+ ...typescriptRules(
4025
+ typeAware !== false && tsconfigPath ? { typeAware: true } : { typeAware: false }
4026
+ ),
3961
4027
  ...overrides
3962
4028
  };
3963
4029
  return [
@@ -10939,6 +11005,22 @@ function tailwind() {
10939
11005
  }
10940
11006
 
10941
11007
  // src/configs/stylistic.ts
11008
+ function jsxStylistic({
11009
+ indent
11010
+ }) {
11011
+ return {
11012
+ "@stylistic/jsx-curly-brace-presence": [
11013
+ "error",
11014
+ { propElementValues: "always" }
11015
+ ],
11016
+ "@stylistic/jsx-indent": [
11017
+ "error",
11018
+ indent,
11019
+ { checkAttributes: true, indentLogicalExpressions: true }
11020
+ ],
11021
+ "@stylistic/jsx-quotes": "error"
11022
+ };
11023
+ }
10942
11024
  function stylistic(options = {}) {
10943
11025
  const { indent = 2, quotes = "double", jsx = true } = options;
10944
11026
  return [
@@ -10950,8 +11032,12 @@ function stylistic(options = {}) {
10950
11032
  },
10951
11033
  rules: {
10952
11034
  "@stylistic/quote-props": ["error", "as-needed"],
10953
- "@stylistic/quotes": ["error", quotes, { allowTemplateLiterals: false, avoidEscape: true }],
10954
- ...jsx && false ? jsxStylistic({ indent }) : {}
11035
+ "@stylistic/quotes": [
11036
+ "error",
11037
+ quotes,
11038
+ { allowTemplateLiterals: false, avoidEscape: true }
11039
+ ],
11040
+ ...jsx ? jsxStylistic({ indent }) : {}
10955
11041
  }
10956
11042
  }
10957
11043
  ];
@@ -10997,7 +11083,12 @@ function defaultOptions2() {
10997
11083
  };
10998
11084
  }
10999
11085
  function normalizeOptions(options = {}) {
11000
- const off = [.../* @__PURE__ */ new Set([...options.off ?? [], ...options.fast ? [...slowRules] : []])].sort(
11086
+ const off = [
11087
+ .../* @__PURE__ */ new Set([
11088
+ ...options.off ?? [],
11089
+ ...options.fast ? [...slowRules] : []
11090
+ ])
11091
+ ].sort(
11001
11092
  (a, b) => a.localeCompare(b, void 0, { numeric: true, sensitivity: "base" })
11002
11093
  );
11003
11094
  const stylisticOptions = options.stylistic === false ? false : typeof options.stylistic === "object" ? options.stylistic : {};
@@ -11195,6 +11286,7 @@ export {
11195
11286
  prettier,
11196
11287
  react,
11197
11288
  reactHooks,
11289
+ reactRules,
11198
11290
  renameRules,
11199
11291
  sortPackageJson,
11200
11292
  sortTsconfig,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jsse/eslint-config",
3
3
  "type": "module",
4
- "version": "0.0.4",
4
+ "version": "0.0.6",
5
5
  "packageManager": "pnpm@8.8.0",
6
6
  "description": "jsse eslint config",
7
7
  "author": "jessekrubin <jessekrubin@gmail.com> (https://github.com/jessekrubin/)",
@@ -30,7 +30,7 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@antfu/eslint-define-config": "^1.23.0-1",
33
- "@eslint/js": "~8.51.0",
33
+ "@eslint/js": "~8.52.0",
34
34
  "@stylistic/eslint-plugin": "0.0.12",
35
35
  "@typescript-eslint/eslint-plugin": "^6.7.5",
36
36
  "@typescript-eslint/parser": "^6.7.5",
@@ -83,7 +83,7 @@
83
83
  "vitest": "^0.34.6"
84
84
  },
85
85
  "scripts": {
86
- "build": "pnpm build-fast --dts",
86
+ "build": "pnpm typecheck && pnpm build-fast --dts",
87
87
  "build-fast": "tsup src/index.ts src/cli.ts --format esm,cjs --clean",
88
88
  "dev": "tsup src/index.ts --format esm,cjs --watch & eslint-flat-config-viewer",
89
89
  "fmt": "prettier -w .",