@jsse/eslint-config 0.0.4 → 0.0.5
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/LICENSE +21 -21
- package/dist/cli.cjs +4 -2
- package/dist/cli.js +4 -2
- package/dist/index.cjs +287 -194
- package/dist/index.d.cts +121 -2
- package/dist/index.d.ts +121 -2
- package/dist/index.js +286 -194
- package/package.json +3 -3
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 = [
|
|
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": [
|
|
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": [
|
|
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": [
|
|
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": [
|
|
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": [
|
|
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": [
|
|
2789
|
-
|
|
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": [
|
|
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
|
-
|
|
2994
|
-
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
"
|
|
2998
|
-
|
|
2999
|
-
|
|
3000
|
-
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
|
-
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
"error",
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
"error",
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
"error",
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
"error",
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
"error",
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
"error",
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
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 {
|
|
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: [
|
|
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(
|
|
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": [
|
|
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:
|
|
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: [
|
|
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({
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
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(
|
|
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": [
|
|
10954
|
-
|
|
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 = [
|
|
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
|
+
"version": "0.0.5",
|
|
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.
|
|
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 .",
|