eslint-config-typed 5.18.0 → 5.19.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/README.md +9 -5
- package/dist/configs/preact.d.mts +7 -0
- package/dist/configs/preact.d.mts.map +1 -1
- package/dist/configs/preact.mjs +38 -18
- package/dist/configs/preact.mjs.map +1 -1
- package/dist/configs/vitest.d.mts.map +1 -1
- package/dist/configs/vitest.mjs +10 -0
- package/dist/configs/vitest.mjs.map +1 -1
- package/dist/plugins/immer-coding-style/rules/prefer-curried-produce.d.mts +9 -1
- package/dist/plugins/immer-coding-style/rules/prefer-curried-produce.d.mts.map +1 -1
- package/dist/plugins/immer-coding-style/rules/prefer-curried-produce.mjs +47 -4
- package/dist/plugins/immer-coding-style/rules/prefer-curried-produce.mjs.map +1 -1
- package/dist/plugins/react-coding-style/rules/display-name.d.mts +2 -1
- package/dist/plugins/react-coding-style/rules/display-name.d.mts.map +1 -1
- package/dist/plugins/react-coding-style/rules/display-name.mjs +9 -4
- package/dist/plugins/react-coding-style/rules/display-name.mjs.map +1 -1
- package/dist/plugins/react-coding-style/rules/use-memo-hooks-style.d.mts.map +1 -1
- package/dist/plugins/react-coding-style/rules/use-memo-hooks-style.mjs +34 -15
- package/dist/plugins/react-coding-style/rules/use-memo-hooks-style.mjs.map +1 -1
- package/dist/plugins/total-functions/rules/no-partial-string-normalize.d.mts.map +1 -1
- package/dist/plugins/total-functions/rules/no-partial-string-normalize.mjs +21 -13
- package/dist/plugins/total-functions/rules/no-partial-string-normalize.mjs.map +1 -1
- package/dist/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.d.mts.map +1 -1
- package/dist/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mjs +1 -2
- package/dist/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mjs.map +1 -1
- package/dist/plugins/ts-restrictions/rules/no-negated-comparison.mjs +1 -3
- package/dist/plugins/ts-restrictions/rules/no-negated-comparison.mjs.map +1 -1
- package/dist/plugins/ts-restrictions/rules/no-string-spread.mjs +1 -1
- package/dist/plugins/ts-restrictions/rules/no-string-spread.mjs.map +1 -1
- package/dist/plugins/ts-restrictions/rules/no-unnecessary-array-from.d.mts.map +1 -1
- package/dist/plugins/ts-restrictions/rules/no-unnecessary-array-from.mjs +1 -2
- package/dist/plugins/ts-restrictions/rules/no-unnecessary-array-from.mjs.map +1 -1
- package/dist/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.d.mts.map +1 -1
- package/dist/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.mjs +1 -2
- package/dist/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.mjs.map +1 -1
- package/dist/plugins/ts-restrictions/rules/prefer-curried-call.d.mts +4 -1
- package/dist/plugins/ts-restrictions/rules/prefer-curried-call.d.mts.map +1 -1
- package/dist/plugins/ts-restrictions/rules/prefer-curried-call.mjs +11 -4
- package/dist/plugins/ts-restrictions/rules/prefer-curried-call.mjs.map +1 -1
- package/dist/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.d.mts +5 -4
- package/dist/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.d.mts.map +1 -1
- package/dist/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.mjs +15 -52
- package/dist/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.mjs.map +1 -1
- package/dist/plugins/ts-restrictions/rules/prefer-non-mutating-array-method.d.mts.map +1 -1
- package/dist/plugins/ts-restrictions/rules/prefer-non-mutating-array-method.mjs +1 -2
- package/dist/plugins/ts-restrictions/rules/prefer-non-mutating-array-method.mjs.map +1 -1
- package/dist/plugins/ts-restrictions/rules/prefer-nullish-coalescing-when-safe.d.mts.map +1 -1
- package/dist/plugins/ts-restrictions/rules/prefer-nullish-coalescing-when-safe.mjs +1 -2
- package/dist/plugins/ts-restrictions/rules/prefer-nullish-coalescing-when-safe.mjs.map +1 -1
- package/dist/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.d.mts.map +1 -1
- package/dist/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.mjs +1 -2
- package/dist/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.mjs.map +1 -1
- package/dist/rules/eslint-rules.d.mts +42 -11
- package/dist/rules/eslint-rules.d.mts.map +1 -1
- package/dist/rules/eslint-rules.mjs +28 -14
- package/dist/rules/eslint-rules.mjs.map +1 -1
- package/package.json +15 -13
- package/src/configs/preact.mts +45 -18
- package/src/configs/preact.test.mts +146 -0
- package/src/configs/vitest.mts +10 -0
- package/src/configs/vitest.test.mts +63 -0
- package/src/plugins/immer-coding-style/rules/prefer-curried-produce.mts +67 -3
- package/src/plugins/immer-coding-style/rules/prefer-curried-produce.test.mts +108 -0
- package/src/plugins/react-coding-style/rules/display-name.mts +12 -5
- package/src/plugins/react-coding-style/rules/display-name.test.mts +9 -0
- package/src/plugins/react-coding-style/rules/use-memo-hooks-style-namespace.test.mts +41 -0
- package/src/plugins/react-coding-style/rules/use-memo-hooks-style.mts +47 -18
- package/src/plugins/total-functions/rules/no-partial-string-normalize.mts +32 -23
- package/src/plugins/total-functions/rules/no-partial-string-normalize.test.mts +57 -0
- package/src/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mts +1 -2
- package/src/plugins/ts-restrictions/rules/no-negated-comparison.mts +5 -5
- package/src/plugins/ts-restrictions/rules/no-string-spread.mts +1 -1
- package/src/plugins/ts-restrictions/rules/no-unnecessary-array-from.mts +1 -2
- package/src/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.mts +1 -2
- package/src/plugins/ts-restrictions/rules/prefer-curried-call.mts +18 -7
- package/src/plugins/ts-restrictions/rules/prefer-curried-call.test.mts +64 -0
- package/src/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.mts +29 -72
- package/src/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.test.mts +9 -4
- package/src/plugins/ts-restrictions/rules/prefer-non-mutating-array-method.mts +5 -2
- package/src/plugins/ts-restrictions/rules/prefer-nullish-coalescing-when-safe.mts +1 -2
- package/src/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.mts +5 -2
- package/src/rules/eslint-rules.mts +56 -15
- package/dist/plugins/ts-restrictions/rules/comparison-utils.d.mts +0 -41
- package/dist/plugins/ts-restrictions/rules/comparison-utils.d.mts.map +0 -1
- package/dist/plugins/ts-restrictions/rules/comparison-utils.mjs +0 -89
- package/dist/plugins/ts-restrictions/rules/comparison-utils.mjs.map +0 -1
- package/dist/plugins/ts-restrictions/rules/type-layer-utils.d.mts +0 -15
- package/dist/plugins/ts-restrictions/rules/type-layer-utils.d.mts.map +0 -1
- package/dist/plugins/ts-restrictions/rules/type-layer-utils.mjs +0 -21
- package/dist/plugins/ts-restrictions/rules/type-layer-utils.mjs.map +0 -1
- package/src/plugins/ts-restrictions/rules/comparison-utils.mts +0 -140
- package/src/plugins/ts-restrictions/rules/type-layer-utils.mts +0 -36
package/README.md
CHANGED
|
@@ -537,11 +537,15 @@ Pre-configured rule sets that can be imported and customized:
|
|
|
537
537
|
|
|
538
538
|
### Exported Pre-configured Rule Options
|
|
539
539
|
|
|
540
|
-
| Pre-configured rule option
|
|
541
|
-
|
|
|
542
|
-
| **`restrictedGlobals`**
|
|
543
|
-
| **`restrictedGlobalsForBrowser`**
|
|
544
|
-
| **`restrictedSyntax`**
|
|
540
|
+
| Pre-configured rule option | Rule | Description |
|
|
541
|
+
| :-------------------------------------- | :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
542
|
+
| **`restrictedGlobals`** | `no-restricted-globals` | Array of restricted global variables |
|
|
543
|
+
| **`restrictedGlobalsForBrowser`** | `no-restricted-globals` | Browser-environment-specific restricted globals |
|
|
544
|
+
| **`restrictedSyntax`** | `no-restricted-syntax` | Disallows the `in` operator, `Object.prototype.hasOwnProperty.call` (suggests using `Object.hasOwn`), and `new Array(*)` syntax (suggests using `Array.from`) |
|
|
545
|
+
| **`restrictedImportsOptions`** | `no-restricted-imports` | Disallows importing `index.mjs` by relative path |
|
|
546
|
+
| **`restrictedImportsOptionsForPreact`** | `no-restricted-imports` | `restrictedImportsOptions` plus the hooks of `preact/compat` (suggests `preact/hooks`) |
|
|
547
|
+
|
|
548
|
+
A config that sets a rule replaces the options an earlier config set. To restrict more imports after `eslintConfigForPreact`, concatenate yours with the ones it set, using `mergeRestrictedImportsOptions(restrictedImportsOptionsForPreact, { paths: [...], patterns: [...] })`.
|
|
545
549
|
|
|
546
550
|
You can find other pre-configured rule options by traversing the pre-defined rules object like this:
|
|
547
551
|
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import { type RestrictedImportsOptions } from '../rules/index.mjs';
|
|
1
2
|
import { type FlatConfig } from '../types/index.mjs';
|
|
2
3
|
export declare const eslintConfigForPreact: (files?: readonly string[]) => readonly FlatConfig[];
|
|
4
|
+
/**
|
|
5
|
+
* The options `eslintConfigForPreact` sets `no-restricted-imports` with: the
|
|
6
|
+
* base config's and its own. A config after it that restricts more imports
|
|
7
|
+
* passes this to `mergeRestrictedImportsOptions` along with its own.
|
|
8
|
+
*/
|
|
9
|
+
export declare const restrictedImportsOptionsForPreact: RestrictedImportsOptions;
|
|
3
10
|
//# sourceMappingURL=preact.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preact.d.mts","sourceRoot":"","sources":["../../src/configs/preact.mts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGvE,eAAO,MAAM,qBAAqB,WACxB,SAAS,MAAM,EAAE,KACxB,SAAS,UAAU,
|
|
1
|
+
{"version":3,"file":"preact.d.mts","sourceRoot":"","sources":["../../src/configs/preact.mts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,wBAAwB,EAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGvE,eAAO,MAAM,qBAAqB,WACxB,SAAS,MAAM,EAAE,KACxB,SAAS,UAAU,EA8BlB,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,EAAE,wBAoB5C,CAAC"}
|
package/dist/configs/preact.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Arr } from 'ts-data-forge';
|
|
2
|
+
import { eslintReactRules, mergeRestrictedImportsOptions, restrictedImportsOptions, } from '../rules/index.mjs';
|
|
2
3
|
import { defineKnownRules } from '../types/index.mjs';
|
|
3
4
|
import { eslintConfigForReactBase } from './react-base.mjs';
|
|
4
5
|
export const eslintConfigForPreact = (files) => Arr.toPushed(eslintConfigForReactBase(files), {
|
|
@@ -12,29 +13,48 @@ export const eslintConfigForPreact = (files) => Arr.toPushed(eslintConfigForReac
|
|
|
12
13
|
},
|
|
13
14
|
},
|
|
14
15
|
rules: defineKnownRules({
|
|
15
|
-
'no-
|
|
16
|
+
'react/no-unknown-property': [
|
|
16
17
|
'error',
|
|
17
18
|
{
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
'useContext',
|
|
29
|
-
'useEffect',
|
|
30
|
-
'useLayoutEffect',
|
|
31
|
-
'useErrorBoundary',
|
|
32
|
-
],
|
|
33
|
-
message: 'import hooks from preact/hooks instead.',
|
|
34
|
-
},
|
|
19
|
+
ignore: [
|
|
20
|
+
...eslintReactRules['react/no-unknown-property'][1].ignore,
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
'tabindex',
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
'onDblClick',
|
|
35
29
|
],
|
|
36
30
|
},
|
|
37
31
|
],
|
|
32
|
+
'no-restricted-imports': ['error', restrictedImportsOptionsForPreact],
|
|
38
33
|
}),
|
|
39
34
|
});
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
export const restrictedImportsOptionsForPreact = mergeRestrictedImportsOptions(restrictedImportsOptions, {
|
|
41
|
+
paths: [
|
|
42
|
+
{
|
|
43
|
+
name: 'preact/compat',
|
|
44
|
+
importNames: [
|
|
45
|
+
'memo',
|
|
46
|
+
'useState',
|
|
47
|
+
'useReducer',
|
|
48
|
+
'useMemo',
|
|
49
|
+
'useCallback',
|
|
50
|
+
'useRef',
|
|
51
|
+
'useContext',
|
|
52
|
+
'useEffect',
|
|
53
|
+
'useLayoutEffect',
|
|
54
|
+
'useErrorBoundary',
|
|
55
|
+
],
|
|
56
|
+
message: 'import hooks from preact/hooks instead.',
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
});
|
|
40
60
|
//# sourceMappingURL=preact.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preact.mjs","sourceRoot":"","sources":["../../src/configs/preact.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAyB,EACF,EAAE,CACzB,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE;IAC5C,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;IACzC,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,MAAM,EAAE,GAAG;YACX,0DAA0D;YAC1D,qEAAqE;YACrE,6DAA6D;SAC9D;KACF;IACD,KAAK,EAAE,gBAAgB,CAAC;QACtB,
|
|
1
|
+
{"version":3,"file":"preact.mjs","sourceRoot":"","sources":["../../src/configs/preact.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EACL,gBAAgB,EAChB,6BAA6B,EAC7B,wBAAwB,GAEzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAyB,EACF,EAAE,CACzB,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE;IAC5C,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;IACzC,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,MAAM,EAAE,GAAG;YACX,0DAA0D;YAC1D,qEAAqE;YACrE,6DAA6D;SAC9D;KACF;IACD,KAAK,EAAE,gBAAgB,CAAC;QACtB,2BAA2B,EAAE;YAC3B,OAAO;YACP;gBACE,MAAM,EAAE;oBACN,GAAG,gBAAgB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;oBAC1D,+DAA+D;oBAC/D,0DAA0D;oBAC1D,gEAAgE;oBAChE,cAAc;oBACd,UAAU;oBACV,6DAA6D;oBAC7D,8DAA8D;oBAC9D,YAAY;iBACb;aACF;SACF;QACD,uBAAuB,EAAE,CAAC,OAAO,EAAE,iCAAiC,CAAC;KACtE,CAAC;CACH,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAC5C,6BAA6B,CAAC,wBAAwB,EAAE;IACtD,KAAK,EAAE;QACL;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE;gBACX,MAAM;gBACN,UAAU;gBACV,YAAY;gBACZ,SAAS;gBACT,aAAa;gBACb,QAAQ;gBACR,YAAY;gBACZ,WAAW;gBACX,iBAAiB;gBACjB,kBAAkB;aACnB;YACD,OAAO,EAAE,yCAAyC;SACnD;KACF;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.d.mts","sourceRoot":"","sources":["../../src/configs/vitest.mts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEvE,eAAO,MAAM,qBAAqB,WAAY,SAAS,MAAM,EAAE,KAAG,
|
|
1
|
+
{"version":3,"file":"vitest.d.mts","sourceRoot":"","sources":["../../src/configs/vitest.mts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEvE,eAAO,MAAM,qBAAqB,WAAY,SAAS,MAAM,EAAE,KAAG,UA0BrD,CAAC"}
|
package/dist/configs/vitest.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.mjs","sourceRoot":"","sources":["../../src/configs/vitest.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AAEvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAyB,EAAc,EAAE,CAC7E,CAAC;IACC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;IACzC,eAAe,EAAE;QACf,iEAAiE;QACjE,OAAO,EAAE;QACP,sCAAsC;SACvC;KACF;IACD,KAAK,EAAE,gBAAgB,CAAC;QACtB,GAAG,iBAAiB;QACpB,GAAG,4BAA4B;QAE/B,+DAA+D;QAC/D,mCAAmC,EAAE,KAAK;KAC3C,CAAC;CACH,CAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"vitest.mjs","sourceRoot":"","sources":["../../src/configs/vitest.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AAEvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAyB,EAAc,EAAE,CAC7E,CAAC;IACC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;IACzC,eAAe,EAAE;QACf,iEAAiE;QACjE,OAAO,EAAE;QACP,sCAAsC;SACvC;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,yCAAyC;YACzC,sEAAsE;YACtE,iEAAiE;YACjE,gEAAgE;YAChE,uDAAuD;YACvD,SAAS,EAAE,IAAI;SAChB;KACF;IACD,KAAK,EAAE,gBAAgB,CAAC;QACtB,GAAG,iBAAiB;QACpB,GAAG,4BAA4B;QAE/B,+DAA+D;QAC/D,mCAAmC,EAAE,KAAK;KAC3C,CAAC;CACH,CAAU,CAAC"}
|
|
@@ -3,7 +3,15 @@ type MessageIds = 'useCurriedProduce';
|
|
|
3
3
|
/**
|
|
4
4
|
* Rewrites `(state) => produce(state, recipe)` as `produce(recipe)`. The base
|
|
5
5
|
* state is recognized through type wrappers (`produce(state satisfies State,
|
|
6
|
-
* recipe)`), which change nothing at run time and go with the argument
|
|
6
|
+
* recipe)`), which change nothing at run time and go with the argument; the
|
|
7
|
+
* type an `as` gives it is kept as the type argument (`produce<State>`).
|
|
8
|
+
*
|
|
9
|
+
* The curried form passes its extra arguments on to the recipe (`recipe(draft,
|
|
10
|
+
* ...args)`), so `xs.map((s) => produce(s, r))` → `xs.map(produce(r))` would
|
|
11
|
+
* hand `r` the index and the array. The fix is applied only when the recipe is
|
|
12
|
+
* an arrow function taking at most one parameter, which cannot read them, and
|
|
13
|
+
* only when it is the last argument: a third one (a patch listener) would
|
|
14
|
+
* become the curried form's initial state.
|
|
7
15
|
*/
|
|
8
16
|
export declare const preferCurriedProduceRule: TSESLint.RuleModule<MessageIds>;
|
|
9
17
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-curried-produce.d.mts","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/prefer-curried-produce.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAKlC,KAAK,UAAU,GAAG,mBAAmB,CAAC;AAOtC
|
|
1
|
+
{"version":3,"file":"prefer-curried-produce.d.mts","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/prefer-curried-produce.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAKlC,KAAK,UAAU,GAAG,mBAAmB,CAAC;AAOtC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,CAyE3D,CAAC"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
|
|
2
|
-
import { skipTypeWrappers } from 'eslint-rule-forge';
|
|
2
|
+
import { isTypeWrapper, skipTypeWrappers } from 'eslint-rule-forge';
|
|
3
3
|
import { Arr, hasKey, isRecord } from 'ts-data-forge';
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
9
17
|
export const preferCurriedProduceRule = {
|
|
10
18
|
meta: {
|
|
11
19
|
type: 'suggestion',
|
|
@@ -36,7 +44,9 @@ export const preferCurriedProduceRule = {
|
|
|
36
44
|
return;
|
|
37
45
|
}
|
|
38
46
|
const [baseArgument, ...restArguments] = callExpression.arguments;
|
|
39
|
-
if (baseArgument === undefined ||
|
|
47
|
+
if (baseArgument === undefined ||
|
|
48
|
+
!Arr.isFixedLengthArray(1, restArguments) ||
|
|
49
|
+
!ignoresExtraArguments(restArguments[0])) {
|
|
40
50
|
return;
|
|
41
51
|
}
|
|
42
52
|
const baseIdentifier = findIdentifier(baseArgument, parameterName);
|
|
@@ -48,6 +58,7 @@ export const preferCurriedProduceRule = {
|
|
|
48
58
|
}
|
|
49
59
|
report(context, {
|
|
50
60
|
arrowFunction: node,
|
|
61
|
+
baseArgument,
|
|
51
62
|
callExpression,
|
|
52
63
|
remainingArguments: restArguments,
|
|
53
64
|
sourceCode,
|
|
@@ -57,10 +68,11 @@ export const preferCurriedProduceRule = {
|
|
|
57
68
|
},
|
|
58
69
|
defaultOptions: [],
|
|
59
70
|
};
|
|
60
|
-
const report = (context, { arrowFunction, callExpression, remainingArguments, sourceCode, }) => {
|
|
71
|
+
const report = (context, { arrowFunction, baseArgument, callExpression, remainingArguments, sourceCode, }) => {
|
|
61
72
|
const calleeText = sourceCode.getText(callExpression.callee);
|
|
62
73
|
const typeParametersText = getTypeParametersText({
|
|
63
74
|
arrowFunction,
|
|
75
|
+
baseArgument,
|
|
64
76
|
callExpression,
|
|
65
77
|
sourceCode,
|
|
66
78
|
});
|
|
@@ -85,6 +97,21 @@ const isProduceCall = (node) => {
|
|
|
85
97
|
|
|
86
98
|
|
|
87
99
|
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
const ignoresExtraArguments = (recipe) => {
|
|
103
|
+
if (recipe.type === AST_NODE_TYPES.SpreadElement) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
const node = skipTypeWrappers(recipe);
|
|
107
|
+
return (node.type === AST_NODE_TYPES.ArrowFunctionExpression &&
|
|
108
|
+
Arr.isMaxLengthArray(1, node.params) &&
|
|
109
|
+
node.params.every((param) => param.type !== AST_NODE_TYPES.RestElement));
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
88
115
|
const findIdentifier = (argument, expectedName) => {
|
|
89
116
|
if (argument.type === AST_NODE_TYPES.SpreadElement) {
|
|
90
117
|
return undefined;
|
|
@@ -113,11 +140,16 @@ const getTypeArguments = (node) => {
|
|
|
113
140
|
}
|
|
114
141
|
return undefined;
|
|
115
142
|
};
|
|
116
|
-
const getTypeParametersText = ({ arrowFunction, callExpression, sourceCode, }) => {
|
|
143
|
+
const getTypeParametersText = ({ arrowFunction, baseArgument, callExpression, sourceCode, }) => {
|
|
117
144
|
const typeArguments = getTypeArguments(callExpression);
|
|
118
145
|
if (typeArguments !== undefined) {
|
|
119
146
|
return sourceCode.getText(typeArguments);
|
|
120
147
|
}
|
|
148
|
+
|
|
149
|
+
const assertedType = getAssertedType(baseArgument);
|
|
150
|
+
if (assertedType !== undefined) {
|
|
151
|
+
return `<${sourceCode.getText(assertedType)}>`;
|
|
152
|
+
}
|
|
121
153
|
const parameterType = getArrowFunctionParameterType({
|
|
122
154
|
arrowFunction,
|
|
123
155
|
sourceCode,
|
|
@@ -131,6 +163,17 @@ const getTypeParametersText = ({ arrowFunction, callExpression, sourceCode, }) =
|
|
|
131
163
|
});
|
|
132
164
|
return returnType !== undefined ? `<${returnType}>` : '';
|
|
133
165
|
};
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
const getAssertedType = (node) => {
|
|
171
|
+
if (node.type === AST_NODE_TYPES.TSAsExpression ||
|
|
172
|
+
node.type === AST_NODE_TYPES.TSTypeAssertion) {
|
|
173
|
+
return node.typeAnnotation;
|
|
174
|
+
}
|
|
175
|
+
return isTypeWrapper(node) ? getAssertedType(node.expression) : undefined;
|
|
176
|
+
};
|
|
134
177
|
const getArrowFunctionParameterType = ({ arrowFunction, sourceCode, }) => {
|
|
135
178
|
const [parameter] = arrowFunction.params;
|
|
136
179
|
if (parameter?.type !== AST_NODE_TYPES.Identifier) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-curried-produce.mjs","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/prefer-curried-produce.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAGf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"prefer-curried-produce.mjs","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/prefer-curried-produce.mts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,8 @@ type MessageIds = 'missingDisplayName' | 'mismatchedDisplayName';
|
|
|
10
10
|
* This helps with debugging and component identification in React DevTools
|
|
11
11
|
*
|
|
12
12
|
* Type wrappers (`as`, `satisfies`, `!`, `<T>`) are looked through on the
|
|
13
|
-
* memo call, on the
|
|
13
|
+
* memo call, on the `C.displayName = ...` statement, on the component in
|
|
14
|
+
* `C.displayName` and on the assigned name.
|
|
14
15
|
*/
|
|
15
16
|
export declare const displayNameRule: TSESLint.RuleModule<MessageIds, Options>;
|
|
16
17
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-name.d.mts","sourceRoot":"","sources":["../../../../src/plugins/react-coding-style/rules/display-name.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAMlC,KAAK,OAAO,GAAG,SAAS;IACtB,QAAQ,CAAC;QACP,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;KACzC,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,UAAU,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;AAEjE
|
|
1
|
+
{"version":3,"file":"display-name.d.mts","sourceRoot":"","sources":["../../../../src/plugins/react-coding-style/rules/display-name.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAMlC,KAAK,OAAO,GAAG,SAAS;IACtB,QAAQ,CAAC;QACP,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;KACzC,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,UAAU,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;AAEjE;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CA+G3D,CAAC"}
|
|
@@ -9,6 +9,7 @@ import { castNode, isReactApiCall } from './shared.mjs';
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
export const displayNameRule = {
|
|
13
14
|
meta: {
|
|
14
15
|
type: 'suggestion',
|
|
@@ -123,10 +124,14 @@ const getDisplayNameAssignment = (node) => {
|
|
|
123
124
|
return undefined;
|
|
124
125
|
}
|
|
125
126
|
const nextStatement = program.body[componentIndex + 1];
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
127
|
+
if (nextStatement?.type !== AST_NODE_TYPES.ExpressionStatement) {
|
|
128
|
+
return undefined;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
const expression = skipTypeWrappers(nextStatement.expression);
|
|
132
|
+
return expression.type === AST_NODE_TYPES.AssignmentExpression
|
|
133
|
+
? expression
|
|
134
|
+
: undefined;
|
|
130
135
|
};
|
|
131
136
|
const isComponentDisplayNameAssignment = (assignment, componentName) => {
|
|
132
137
|
const left = skipTypeWrappers(assignment.left);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-name.mjs","sourceRoot":"","sources":["../../../../src/plugins/react-coding-style/rules/display-name.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAGf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAUxD
|
|
1
|
+
{"version":3,"file":"display-name.mjs","sourceRoot":"","sources":["../../../../src/plugins/react-coding-style/rules/display-name.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-memo-hooks-style.d.mts","sourceRoot":"","sources":["../../../../src/plugins/react-coding-style/rules/use-memo-hooks-style.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"use-memo-hooks-style.d.mts","sourceRoot":"","sources":["../../../../src/plugins/react-coding-style/rules/use-memo-hooks-style.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAMlC,KAAK,UAAU,GAAG,+BAA+B,CAAC;AAElD,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,CA6CxD,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
|
|
2
|
+
import { isTypeWrapper } from 'eslint-rule-forge';
|
|
2
3
|
import { hasKey } from 'ts-data-forge';
|
|
3
4
|
import { castNode, isReactApiCall } from './shared.mjs';
|
|
4
5
|
export const useMemoHooksStyleRule = {
|
|
@@ -28,22 +29,10 @@ export const useMemoHooksStyleRule = {
|
|
|
28
29
|
messageId: 'disallowUseMemoTypeAnnotation',
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
|
-
if (parent?.type === AST_NODE_TYPES.TSTypeAnnotation) {
|
|
32
|
-
context.report({
|
|
33
|
-
node: castNode(parent),
|
|
34
|
-
messageId: 'disallowUseMemoTypeAnnotation',
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
32
|
const [firstArg] = node.arguments;
|
|
38
|
-
if (firstArg
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
context.report({
|
|
42
|
-
node: castNode(returnType),
|
|
43
|
-
messageId: 'disallowUseMemoTypeAnnotation',
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
checkNodeForTypeAnnotations(context, body);
|
|
33
|
+
if (firstArg !== undefined &&
|
|
34
|
+
firstArg.type !== AST_NODE_TYPES.SpreadElement) {
|
|
35
|
+
checkFactory(context, firstArg);
|
|
47
36
|
}
|
|
48
37
|
},
|
|
49
38
|
}),
|
|
@@ -53,6 +42,36 @@ export const useMemoHooksStyleRule = {
|
|
|
53
42
|
|
|
54
43
|
|
|
55
44
|
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
const checkFactory = (context, node) => {
|
|
48
|
+
if ((node.type === AST_NODE_TYPES.TSAsExpression ||
|
|
49
|
+
node.type === AST_NODE_TYPES.TSTypeAssertion) &&
|
|
50
|
+
!isConstAssertion(node.typeAnnotation)) {
|
|
51
|
+
context.report({
|
|
52
|
+
node: castNode(node),
|
|
53
|
+
messageId: 'disallowUseMemoTypeAnnotation',
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
if (isTypeWrapper(node)) {
|
|
57
|
+
checkFactory(context, node.expression);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (node.type === AST_NODE_TYPES.ArrowFunctionExpression) {
|
|
61
|
+
const { returnType, body } = node;
|
|
62
|
+
if (returnType !== undefined) {
|
|
63
|
+
context.report({
|
|
64
|
+
node: castNode(returnType),
|
|
65
|
+
messageId: 'disallowUseMemoTypeAnnotation',
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
checkNodeForTypeAnnotations(context, body);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
56
75
|
const skipNonAssertingParents = (node) => {
|
|
57
76
|
const { parent } = node;
|
|
58
77
|
return (parent?.type === AST_NODE_TYPES.TSNonNullExpression ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-memo-hooks-style.mjs","sourceRoot":"","sources":["../../../../src/plugins/react-coding-style/rules/use-memo-hooks-style.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAGf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAIxD,MAAM,CAAC,MAAM,qBAAqB,GAAoC;IACpE,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,oEAAoE;SACvE;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,6BAA6B,EAC3B,qGAAqG;SACxG;KACF;IACD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACpB,cAAc,EAAE,CAAC,IAA2C,EAAE,EAAE;YAC9D,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,sEAAsE;YACtE,8CAA8C;YAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAEjD,IACE,CAAC,MAAM,EAAE,IAAI,KAAK,cAAc,CAAC,cAAc;gBAC7C,MAAM,EAAE,IAAI,KAAK,cAAc,CAAC,eAAe,CAAC;gBAClD,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,EACxC,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;oBACtB,SAAS,EAAE,+BAA+B;iBAC3C,CAAC,CAAC;YACL,CAAC;YAED,IAAI,MAAM,EAAE,IAAI,KAAK,cAAc,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"use-memo-hooks-style.mjs","sourceRoot":"","sources":["../../../../src/plugins/react-coding-style/rules/use-memo-hooks-style.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-partial-string-normalize.d.mts","sourceRoot":"","sources":["../../../../src/plugins/total-functions/rules/no-partial-string-normalize.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAEZ,MAAM,0BAA0B,CAAC;AAUlC;;;;;;;GAOG;AAEH,eAAO,MAAM,wBAAwB;;
|
|
1
|
+
{"version":3,"file":"no-partial-string-normalize.d.mts","sourceRoot":"","sources":["../../../../src/plugins/total-functions/rules/no-partial-string-normalize.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAEZ,MAAM,0BAA0B,CAAC;AAUlC;;;;;;;GAOG;AAEH,eAAO,MAAM,wBAAwB;;CA2I1B,CAAC"}
|
|
@@ -27,6 +27,24 @@ export const noPartialStringNormalize = createRule({
|
|
|
27
27
|
const parserServices = ESLintUtils.getParserServices(context);
|
|
28
28
|
const checker = parserServices.program.getTypeChecker();
|
|
29
29
|
const typeOf = (expression) => checker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(expression));
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
const isSafeForm = (node) => {
|
|
38
|
+
const expression = skipTypeWrappers(node);
|
|
39
|
+
if (expression.type === AST_NODE_TYPES.ConditionalExpression) {
|
|
40
|
+
return (isSafeForm(expression.consequent) && isSafeForm(expression.alternate));
|
|
41
|
+
}
|
|
42
|
+
if (expression.type === AST_NODE_TYPES.LogicalExpression) {
|
|
43
|
+
return isSafeForm(expression.left) && isSafeForm(expression.right);
|
|
44
|
+
}
|
|
45
|
+
return unionTypeParts(typeOf(expression)).every((type) => (type.isStringLiteral() && SAFE_FORMS.has(type.value)) ||
|
|
46
|
+
isTypeFlagSet(type, TypeFlags.Undefined));
|
|
47
|
+
};
|
|
30
48
|
return {
|
|
31
49
|
CallExpression: (node) => {
|
|
32
50
|
|
|
@@ -78,20 +96,9 @@ export const noPartialStringNormalize = createRule({
|
|
|
78
96
|
|
|
79
97
|
return;
|
|
80
98
|
}
|
|
81
|
-
const argument = rawArgument.type === AST_NODE_TYPES.SpreadElement
|
|
82
|
-
? rawArgument
|
|
83
|
-
: skipTypeWrappers(rawArgument);
|
|
84
|
-
const safeValues = new Set(['NFC', 'NFD', 'NFKC', 'NFKD']);
|
|
85
|
-
if (argument.type === AST_NODE_TYPES.Literal &&
|
|
86
|
-
typeof argument.value === 'string' &&
|
|
87
|
-
safeValues.has(argument.value)) {
|
|
88
|
-
|
|
89
99
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if (argument.type === AST_NODE_TYPES.Identifier &&
|
|
93
|
-
unionTypeParts(typeOf(argument)).every((type) => (type.isStringLiteral() && safeValues.has(type.value)) ||
|
|
94
|
-
isTypeFlagSet(type, TypeFlags.Undefined))) {
|
|
100
|
+
if (rawArgument.type !== AST_NODE_TYPES.SpreadElement &&
|
|
101
|
+
isSafeForm(rawArgument)) {
|
|
95
102
|
return;
|
|
96
103
|
}
|
|
97
104
|
|
|
@@ -104,4 +111,5 @@ export const noPartialStringNormalize = createRule({
|
|
|
104
111
|
},
|
|
105
112
|
defaultOptions: [],
|
|
106
113
|
});
|
|
114
|
+
const SAFE_FORMS = new Set(['NFC', 'NFD', 'NFKC', 'NFKD']);
|
|
107
115
|
//# sourceMappingURL=no-partial-string-normalize.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-partial-string-normalize.mjs","sourceRoot":"","sources":["../../../../src/plugins/total-functions/rules/no-partial-string-normalize.mts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"no-partial-string-normalize.mjs","sourceRoot":"","sources":["../../../../src/plugins/total-functions/rules/no-partial-string-normalize.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-boolean-logical-operands.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"jsx-boolean-logical-operands.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAMlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,UAAU,CACzD,UAAU,EACV,OAAO,CAyGC,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { AST_NODE_TYPES, ESLintUtils, } from '@typescript-eslint/utils';
|
|
2
|
-
import { isTypeWrapper } from 'eslint-rule-forge';
|
|
2
|
+
import { createGetLayerTypes, isTypeWrapper } from 'eslint-rule-forge';
|
|
3
3
|
import * as ts from 'typescript';
|
|
4
4
|
import { jsxValuePositionOf } from './jsx-utils.mjs';
|
|
5
|
-
import { createGetLayerTypes } from './type-layer-utils.mjs';
|
|
6
5
|
|
|
7
6
|
|
|
8
7
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-boolean-logical-operands.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,WAAW,GAGZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"jsx-boolean-logical-operands.mjs","sourceRoot":"","sources":["../../../../src/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { AST_NODE_TYPES, ESLintUtils, } from '@typescript-eslint/utils';
|
|
2
|
-
import { skipTypeWrappers } from 'eslint-rule-forge';
|
|
3
|
-
import { invertedComparisonText, isComparison, isExactlyInvertible, } from './comparison-utils.mjs';
|
|
4
|
-
import { createGetLayerTypes } from './type-layer-utils.mjs';
|
|
2
|
+
import { createGetLayerTypes, invertedComparisonText, isComparison, isExactlyInvertible, skipTypeWrappers, } from 'eslint-rule-forge';
|
|
5
3
|
|
|
6
4
|
|
|
7
5
|
|