eslint-rule-forge 0.3.2 → 0.4.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 +30 -31
- package/dist/comments.d.mts +10 -0
- package/dist/comments.d.mts.map +1 -0
- package/dist/comments.mjs +11 -0
- package/dist/comments.mjs.map +1 -0
- package/dist/imports.d.mts +47 -6
- package/dist/imports.d.mts.map +1 -1
- package/dist/imports.mjs +123 -6
- package/dist/imports.mjs.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/dist/rules/prefer-array-is-array.d.mts.map +1 -1
- package/dist/rules/prefer-array-is-array.mjs +13 -19
- package/dist/rules/prefer-array-is-array.mjs.map +1 -1
- package/dist/rules/prefer-is-non-null-object.d.mts.map +1 -1
- package/dist/rules/prefer-is-non-null-object.mjs +24 -25
- package/dist/rules/prefer-is-non-null-object.mjs.map +1 -1
- package/dist/rules/prefer-is-record-and-has-key.d.mts.map +1 -1
- package/dist/rules/prefer-is-record-and-has-key.mjs +32 -44
- package/dist/rules/prefer-is-record-and-has-key.mjs.map +1 -1
- package/dist/rules/prefer-safe-parse.d.mts.map +1 -1
- package/dist/rules/prefer-safe-parse.mjs +16 -15
- package/dist/rules/prefer-safe-parse.mjs.map +1 -1
- package/package.json +4 -4
- package/src/comments.mts +23 -0
- package/src/imports.mts +217 -17
- package/src/index.mts +1 -0
- package/src/rules/prefer-array-is-array.mts +23 -36
- package/src/rules/prefer-is-non-null-object.mts +37 -42
- package/src/rules/prefer-is-record-and-has-key.mts +42 -66
- package/src/rules/prefer-safe-parse.mts +31 -38
package/README.md
CHANGED
|
@@ -128,19 +128,22 @@ The range and the text of a node leave out the parentheses written around it.
|
|
|
128
128
|
| `getImportDeclarations` | every `import … from '<module>'` in the file, not only the first |
|
|
129
129
|
| `getNamedImports` | the export names those declarations import |
|
|
130
130
|
| `getImportedLocalName` | the local name an export is imported as (`'y'` for `import { x as y }`) |
|
|
131
|
+
| `importedNameOf` | the export name an import specifier imports (`'x'` for `import { x as y }`) |
|
|
131
132
|
| `buildCalleeResolver` | which export a callee calls, through aliases, namespace imports and type wrappers |
|
|
132
|
-
| `
|
|
133
|
+
| `bindValueImports` | the local names to write for exports, and the edits binding them as values (in the existing import) |
|
|
134
|
+
| `buildNamedImportFix` | a fix inserting a new `import { … } from '<module>';` after the directive prologue |
|
|
133
135
|
| `hasForeignBinding` | whether a name, at a node, is bound to something other than the module's import (a fix must give up) |
|
|
134
136
|
| `isLocallyBound` | whether a name, at a node, is declared in the file rather than a global or a standard-library type |
|
|
137
|
+
| `hasCommentWithin` | whether a comment inside a node lies in ranges a fix would delete (the fix must give up) |
|
|
135
138
|
|
|
136
139
|
```ts
|
|
137
140
|
import type { TSESLint } from '@typescript-eslint/utils';
|
|
138
141
|
import {
|
|
142
|
+
bindValueImports,
|
|
139
143
|
buildCalleeResolver,
|
|
140
|
-
buildNamedImportFix,
|
|
141
144
|
getImportDeclarations,
|
|
142
|
-
getImportedLocalName,
|
|
143
145
|
hasForeignBinding,
|
|
146
|
+
type ValueImportBinding,
|
|
144
147
|
} from 'eslint-rule-forge';
|
|
145
148
|
|
|
146
149
|
const MODULE = 'my-lib';
|
|
@@ -156,9 +159,9 @@ export const preferIsNullish: TSESLint.RuleModule<'preferIsNullish'> = {
|
|
|
156
159
|
defaultOptions: [],
|
|
157
160
|
},
|
|
158
161
|
create: (context) => {
|
|
159
|
-
const
|
|
162
|
+
const sourceCode = context.sourceCode;
|
|
160
163
|
|
|
161
|
-
const declarations = getImportDeclarations(
|
|
164
|
+
const declarations = getImportDeclarations(sourceCode.ast, MODULE);
|
|
162
165
|
|
|
163
166
|
// `isNull(x)`, `n(x)` after `import { isNull as n }` and `lib.isNull(x)`
|
|
164
167
|
// after `import * as lib` all call `isNull`.
|
|
@@ -172,37 +175,33 @@ export const preferIsNullish: TSESLint.RuleModule<'preferIsNullish'> = {
|
|
|
172
175
|
return;
|
|
173
176
|
}
|
|
174
177
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
178
|
+
// `lib.isNullish` needs no import. Otherwise `isNullish` is written by
|
|
179
|
+
// the name it is imported as, added to the existing named import, or
|
|
180
|
+
// has its `type` dropped; `undefined` when none of that can bind it.
|
|
181
|
+
const binding: ValueImportBinding | undefined =
|
|
182
|
+
resolved.isNamespace
|
|
183
|
+
? { localNames: ['isNullish'], edits: () => [] }
|
|
184
|
+
: bindValueImports(sourceCode, MODULE, ['isNullish']);
|
|
179
185
|
|
|
180
|
-
const name =
|
|
181
|
-
? 'isNullish'
|
|
182
|
-
: (importedAs ?? 'isNullish');
|
|
183
|
-
|
|
184
|
-
// A local `isNullish` that is not `my-lib`'s would capture the call.
|
|
185
|
-
const canFix =
|
|
186
|
-
resolved.isNamespace ||
|
|
187
|
-
!hasForeignBinding(context.sourceCode, node, name, MODULE);
|
|
186
|
+
const name = binding?.localNames[0];
|
|
188
187
|
|
|
189
188
|
context.report({
|
|
190
189
|
node,
|
|
191
190
|
messageId: 'preferIsNullish',
|
|
192
|
-
fix:
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
191
|
+
fix:
|
|
192
|
+
binding === undefined ||
|
|
193
|
+
name === undefined ||
|
|
194
|
+
// A local `isNullish` that is not `my-lib`'s would capture the call.
|
|
195
|
+
(!resolved.isNamespace &&
|
|
196
|
+
hasForeignBinding(sourceCode, node, name, MODULE))
|
|
197
|
+
? null
|
|
198
|
+
: (fixer) => [
|
|
199
|
+
...binding.edits(fixer),
|
|
200
|
+
fixer.replaceText(
|
|
201
|
+
resolved.propertyNode,
|
|
202
|
+
name,
|
|
203
|
+
),
|
|
204
|
+
],
|
|
206
205
|
});
|
|
207
206
|
},
|
|
208
207
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TSESLint, TSESTree } from '@typescript-eslint/utils';
|
|
2
|
+
import type { DeepReadonly } from 'ts-type-forge';
|
|
3
|
+
/**
|
|
4
|
+
* Whether a comment inside `node` lies within one of `ranges`, which a fix
|
|
5
|
+
* would delete along with it. Such a fix is dropped instead of the comment.
|
|
6
|
+
* Only comments inside `node` are looked at, so each range has to lie within
|
|
7
|
+
* it.
|
|
8
|
+
*/
|
|
9
|
+
export declare const hasCommentWithin: (sourceCode: TSESLint.SourceCode, node: TSESTree.Node, ranges: DeepReadonly<TSESTree.Range[]>) => boolean;
|
|
10
|
+
//# sourceMappingURL=comments.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comments.d.mts","sourceRoot":"","sources":["../src/comments.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAIlD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,eACf,QAAQ,CAAC,UAAU,QACzB,QAAQ,CAAC,IAAI,UACX,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,KACrC,OAOE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
export const hasCommentWithin = (sourceCode, node, ranges) => sourceCode
|
|
9
|
+
.getCommentsInside(node)
|
|
10
|
+
.some((comment) => ranges.some(([start, end]) => start <= comment.range[0] && comment.range[1] <= end));
|
|
11
|
+
//# sourceMappingURL=comments.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comments.mjs","sourceRoot":"","sources":["../src/comments.mts"],"names":[],"mappings":"AAGA,uEAAuE;AAEvE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,UAA+B,EAC/B,IAAmB,EACnB,MAAsC,EAC7B,EAAE,CACX,UAAU;KACP,iBAAiB,CAAC,IAAI,CAAC;KACvB,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAChB,MAAM,CAAC,IAAI,CACT,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CACvE,CACF,CAAC"}
|
package/dist/imports.d.mts
CHANGED
|
@@ -41,14 +41,55 @@ export type ResolvedCallee = Readonly<{
|
|
|
41
41
|
export declare const buildCalleeResolver: (declarations: DeepReadonly<TSESTree.ImportDeclaration[]>) => ((callee: TSESTree.Expression) => ResolvedCallee | undefined);
|
|
42
42
|
/**
|
|
43
43
|
* A fix that inserts `import { <specifiers> } from '<moduleName>';` at the top
|
|
44
|
-
* of the file,
|
|
44
|
+
* of the file, after its directive prologue (`'use client';` stays a
|
|
45
|
+
* directive), or no fix when `specifiers` is empty. Each specifier is written
|
|
45
46
|
* as given, so `type T` imports a type.
|
|
46
47
|
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
48
|
+
* Use it only when the file does not import from `moduleName` by name;
|
|
49
|
+
* {@link bindValueImports} adds to an existing declaration instead, which
|
|
50
|
+
* keeps `import-x/no-duplicates` satisfied, and falls back to this. An import
|
|
51
|
+
* sorter orders the declaration afterwards. Put every name one report needs
|
|
52
|
+
* into a single call: ESLint merges the fixes of one report into one edit,
|
|
53
|
+
* and two fixes inserting at the same place conflict, so that one of them is
|
|
54
|
+
* dropped.
|
|
52
55
|
*/
|
|
53
56
|
export declare const buildNamedImportFix: (fixer: TSESLint.RuleFixer, program: TSESTree.Program, moduleName: string, specifiers: readonly string[]) => readonly TSESLint.RuleFix[];
|
|
57
|
+
/**
|
|
58
|
+
* The local names `moduleName`'s exports `exportNames` are bound to as values
|
|
59
|
+
* once `edits` are made, in the same order, or `undefined` when one of them
|
|
60
|
+
* cannot be bound.
|
|
61
|
+
*
|
|
62
|
+
* - Imported as a value: that local name, and no edit.
|
|
63
|
+
* - Imported by `import { type x }`: the edit drops `type`, keeping a comment
|
|
64
|
+
* after it.
|
|
65
|
+
* - Not imported: the edit adds it to the first named import from the module
|
|
66
|
+
* that has a value specifier, or else to any named import from it that is
|
|
67
|
+
* not `import type`. Adding it there rather than in a new declaration keeps
|
|
68
|
+
* `import-x/no-duplicates` satisfied. Failing that, it goes into braces
|
|
69
|
+
* after a lone default import (`import D, { x }`), and when the module has
|
|
70
|
+
* neither, a new declaration goes after the directive prologue
|
|
71
|
+
* ({@link buildNamedImportFix}).
|
|
72
|
+
* - Refused when an import already binds the name to something else
|
|
73
|
+
* (`import type { x }`, `import { y as x }`, `import { x } from 'other'`),
|
|
74
|
+
* where adding it would be a duplicate binding.
|
|
75
|
+
*
|
|
76
|
+
* ESLint's default parser leaves `importKind` out, which counts as a value
|
|
77
|
+
* import. Every name a fix writes is bound by that fix's own edits rather than
|
|
78
|
+
* left to another report's: an editor applies one fix at a time, and a fix
|
|
79
|
+
* that loses a conflict with another in the same pass is dropped. Fixes that
|
|
80
|
+
* all add a name overlap, so `--fix` applies one per pass, and the rest in the
|
|
81
|
+
* next, by when the file imports it. Whether something other than an import
|
|
82
|
+
* binds the name where it is written is the caller's to check
|
|
83
|
+
* ({@link hasForeignBinding}).
|
|
84
|
+
*/
|
|
85
|
+
export declare const bindValueImports: (sourceCode: TSESLint.SourceCode, moduleName: string, exportNames: readonly string[]) => ValueImportBinding | undefined;
|
|
86
|
+
/** The exported name `specifier` imports: `x` for `import { x as y }`. */
|
|
87
|
+
export declare const importedNameOf: (specifier: DeepReadonly<TSESTree.ImportSpecifier>) => string;
|
|
88
|
+
/** What {@link bindValueImports} gives. */
|
|
89
|
+
export type ValueImportBinding = Readonly<{
|
|
90
|
+
/** The names to write, in the order of the export names asked for. */
|
|
91
|
+
localNames: readonly string[];
|
|
92
|
+
/** The edits that bring every one of them into scope. */
|
|
93
|
+
edits: (fixer: TSESLint.RuleFixer) => readonly TSESLint.RuleFix[];
|
|
94
|
+
}>;
|
|
54
95
|
//# sourceMappingURL=imports.d.mts.map
|
package/dist/imports.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imports.d.mts","sourceRoot":"","sources":["../src/imports.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKlD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,YACvB,QAAQ,CAAC,OAAO,cACb,MAAM,KACjB,SAAS,QAAQ,CAAC,iBAAiB,EAKnC,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,eAAe,iBACZ,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KACvD,SAAS,MAAM,EAOf,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,iBACjB,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,gBAC1C,MAAM,KACnB,MAAM,GAAG,SAOK,CAAC;AAElB,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC;IAElC,qEAAqE;IACrE,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,iBAChB,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KACvD,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,KAAK,cAAc,GAAG,SAAS,CAuD9D,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"imports.d.mts","sourceRoot":"","sources":["../src/imports.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKlD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,YACvB,QAAQ,CAAC,OAAO,cACb,MAAM,KACjB,SAAS,QAAQ,CAAC,iBAAiB,EAKnC,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,eAAe,iBACZ,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KACvD,SAAS,MAAM,EAOf,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,iBACjB,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,gBAC1C,MAAM,KACnB,MAAM,GAAG,SAOK,CAAC;AAElB,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC;IAElC,qEAAqE;IACrE,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,iBAChB,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KACvD,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,KAAK,cAAc,GAAG,SAAS,CAuD9D,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,UACvB,QAAQ,CAAC,SAAS,WAChB,QAAQ,CAAC,OAAO,cACb,MAAM,cACN,SAAS,MAAM,EAAE,KAC5B,SAAS,QAAQ,CAAC,OAAO,EAgC3B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,gBAAgB,eACf,QAAQ,CAAC,UAAU,cACnB,MAAM,eACL,SAAS,MAAM,EAAE,KAC7B,kBAAkB,GAAG,SAwDvB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,cAAc,cACd,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,KAChD,MAG2B,CAAC;AAE/B,2CAA2C;AAC3C,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,sEAAsE;IACtE,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAE9B,yDAAyD;IACzD,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,KAAK,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnE,CAAC,CAAC"}
|
package/dist/imports.mjs
CHANGED
|
@@ -79,12 +79,129 @@ export const buildCalleeResolver = (declarations) => {
|
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
export const buildNamedImportFix = (fixer, program, moduleName, specifiers) => {
|
|
86
|
+
if (specifiers.length === 0) {
|
|
87
|
+
return [];
|
|
88
|
+
}
|
|
89
|
+
const declaration = `import { ${specifiers.join(', ')} } from '${moduleName}';`;
|
|
90
|
+
const lastDirective = program.body
|
|
91
|
+
.filter((statement) => statement.type === AST_NODE_TYPES.ExpressionStatement &&
|
|
92
|
+
statement.directive !== undefined)
|
|
93
|
+
.at(-1);
|
|
94
|
+
if (lastDirective === undefined) {
|
|
95
|
+
return [fixer.insertTextBefore(program, `${declaration}\n`)];
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
const anchor = (program.comments ?? [])
|
|
100
|
+
.filter((comment) => comment.range[0] >= lastDirective.range[1] &&
|
|
101
|
+
comment.loc.start.line === lastDirective.loc.end.line)
|
|
102
|
+
.at(-1) ?? lastDirective;
|
|
103
|
+
return [fixer.insertTextAfter(anchor, `\n${declaration}`)];
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
export const bindValueImports = (sourceCode, moduleName, exportNames) => {
|
|
134
|
+
const program = sourceCode.ast;
|
|
135
|
+
const allImports = program.body.filter((node) => node.type === AST_NODE_TYPES.ImportDeclaration);
|
|
136
|
+
const declarations = getImportDeclarations(program, moduleName);
|
|
137
|
+
const named = declarations.flatMap((declaration) => declaration.specifiers.flatMap((specifier) => specifier.type === AST_NODE_TYPES.ImportSpecifier
|
|
138
|
+
? [{ declaration, specifier }]
|
|
139
|
+
: []));
|
|
140
|
+
const bindings = exportNames.map((exportName) => bindingOf(sourceCode, allImports, named, exportName));
|
|
141
|
+
if (bindings.includes(undefined)) {
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
const defined = bindings.filter((b) => b !== undefined);
|
|
145
|
+
const toAdd = defined.flatMap((b) => (b.isAdded ? [b.localName] : []));
|
|
146
|
+
const host = (named.find(isValueImport) ?? named.find(isNotTypeOnly))?.declaration.specifiers.at(-1);
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
const defaultHost = declarations.find((declaration) => declaration.importKind !== 'type' &&
|
|
150
|
+
declaration.specifiers.length === 1 &&
|
|
151
|
+
declaration.specifiers[0]?.type === AST_NODE_TYPES.ImportDefaultSpecifier)?.specifiers[0];
|
|
152
|
+
return {
|
|
153
|
+
localNames: defined.map((b) => b.localName),
|
|
154
|
+
edits: (fixer) => [
|
|
155
|
+
...defined.flatMap((b) => b.edits(fixer)),
|
|
156
|
+
...(toAdd.length === 0
|
|
157
|
+
? []
|
|
158
|
+
: host !== undefined
|
|
159
|
+
? [fixer.insertTextAfter(host, `, ${toAdd.join(', ')}`)]
|
|
160
|
+
: defaultHost !== undefined
|
|
161
|
+
? [fixer.insertTextAfter(defaultHost, `, { ${toAdd.join(', ')} }`)]
|
|
162
|
+
: buildNamedImportFix(fixer, program, moduleName, toAdd)),
|
|
163
|
+
],
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
export const importedNameOf = (specifier) => specifier.imported.type === AST_NODE_TYPES.Identifier
|
|
88
168
|
? specifier.imported.name
|
|
89
169
|
: specifier.imported.value;
|
|
170
|
+
|
|
171
|
+
const isValueImport = ({ declaration, specifier }) => isNotTypeOnly({ declaration, specifier }) && specifier.importKind !== 'type';
|
|
172
|
+
|
|
173
|
+
const isNotTypeOnly = ({ declaration }) => declaration.importKind !== 'type';
|
|
174
|
+
const bindingOf = (sourceCode, allImports, named, exportName) => {
|
|
175
|
+
const matching = named.filter(({ specifier }) => importedNameOf(specifier) === exportName);
|
|
176
|
+
const value = matching.find(isValueImport);
|
|
177
|
+
if (value !== undefined) {
|
|
178
|
+
return {
|
|
179
|
+
localName: value.specifier.local.name,
|
|
180
|
+
isAdded: false,
|
|
181
|
+
edits: () => [],
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
const inlineType = matching.find(isNotTypeOnly)?.specifier;
|
|
185
|
+
if (inlineType !== undefined) {
|
|
186
|
+
const typeKeyword = sourceCode.getFirstToken(inlineType);
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
const next = typeKeyword === null
|
|
190
|
+
? null
|
|
191
|
+
: sourceCode.getTokenAfter(typeKeyword, { includeComments: true });
|
|
192
|
+
return typeKeyword === null || next === null
|
|
193
|
+
? undefined
|
|
194
|
+
: {
|
|
195
|
+
localName: inlineType.local.name,
|
|
196
|
+
isAdded: false,
|
|
197
|
+
edits: (fixer) => [
|
|
198
|
+
fixer.removeRange([typeKeyword.range[0], next.range[0]]),
|
|
199
|
+
],
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
const isTaken = allImports.some((declaration) => declaration.specifiers.some((specifier) => specifier.local.name === exportName));
|
|
203
|
+
return isTaken
|
|
204
|
+
? undefined
|
|
205
|
+
: { localName: exportName, isAdded: true, edits: () => [] };
|
|
206
|
+
};
|
|
90
207
|
//# sourceMappingURL=imports.mjs.map
|
package/dist/imports.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imports.mjs","sourceRoot":"","sources":["../src/imports.mts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"imports.mjs","sourceRoot":"","sources":["../src/imports.mts"],"names":[],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
|
package/dist/index.mjs
CHANGED
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-array-is-array.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-array-is-array.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"prefer-array-is-array.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-array-is-array.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAMlC;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,+BAGlC,QAAQ,CAAC;IACV,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IAEnB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,KAAG,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,SAAS,EAAE,CA6DjD,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
|
|
2
|
-
import {
|
|
2
|
+
import { hasForeignBinding } from '../bindings.mjs';
|
|
3
|
+
import { bindValueImports } from '../imports.mjs';
|
|
3
4
|
import { getRangeWithParens } from '../parentheses.mjs';
|
|
4
5
|
import { isIdentifierNamed, skipTypeWrappers } from '../type-wrappers.mjs';
|
|
5
6
|
|
|
@@ -21,8 +22,6 @@ export const createPreferArrayIsArray = ({ moduleName, namespace, }) => {
|
|
|
21
22
|
},
|
|
22
23
|
create: (context) => {
|
|
23
24
|
const sourceCode = context.sourceCode;
|
|
24
|
-
const program = sourceCode.ast;
|
|
25
|
-
const moduleImports = getImportDeclarations(program, moduleName);
|
|
26
25
|
const mut_nodesToFix = [];
|
|
27
26
|
return {
|
|
28
27
|
CallExpression: (node) => {
|
|
@@ -32,30 +31,25 @@ export const createPreferArrayIsArray = ({ moduleName, namespace, }) => {
|
|
|
32
31
|
mut_nodesToFix.push(node);
|
|
33
32
|
},
|
|
34
33
|
'Program:exit': () => {
|
|
35
|
-
const
|
|
34
|
+
const binding = bindValueImports(sourceCode, moduleName, [namespace]);
|
|
35
|
+
const localName = binding?.localNames[0];
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
for (const [index, node] of mut_nodesToFix.entries()) {
|
|
38
|
+
for (const node of mut_nodesToFix) {
|
|
42
39
|
context.report({
|
|
43
40
|
node,
|
|
44
41
|
messageId: 'useIsArray',
|
|
45
|
-
fix:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
fix: binding === undefined ||
|
|
43
|
+
localName === undefined ||
|
|
44
|
+
hasForeignBinding(sourceCode, node, localName, moduleName)
|
|
45
|
+
? null
|
|
46
|
+
: (fixer) => [
|
|
47
|
+
...binding.edits(fixer),
|
|
51
48
|
|
|
52
49
|
|
|
53
50
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
fixer.replaceTextRange(getRangeWithParens(sourceCode, node.callee), replacement),
|
|
57
|
-
];
|
|
58
|
-
},
|
|
51
|
+
fixer.replaceTextRange(getRangeWithParens(sourceCode, node.callee), `${localName}.isArray`),
|
|
52
|
+
],
|
|
59
53
|
});
|
|
60
54
|
}
|
|
61
55
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-array-is-array.mjs","sourceRoot":"","sources":["../../src/rules/prefer-array-is-array.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAGf,MAAM,0BAA0B,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"prefer-array-is-array.mjs","sourceRoot":"","sources":["../../src/rules/prefer-array-is-array.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-is-non-null-object.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-is-non-null-object.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"prefer-is-non-null-object.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-is-non-null-object.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAMlC;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,oBAErC,QAAQ,CAAC;IACV,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,KAAG,QAAQ,CAAC,UAAU,CAAC,oBAAoB,EAAE,SAAS,EAAE,CAsE7C,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
|
|
2
|
-
import {
|
|
2
|
+
import { hasForeignBinding } from '../bindings.mjs';
|
|
3
|
+
import { bindValueImports } from '../imports.mjs';
|
|
3
4
|
import { getRangeWithParens, parenthesesDepth } from '../parentheses.mjs';
|
|
4
5
|
import { skipTypeWrappers } from '../type-wrappers.mjs';
|
|
5
6
|
|
|
@@ -22,8 +23,6 @@ export const createPreferIsNonNullObject = ({ moduleName, }) => ({
|
|
|
22
23
|
},
|
|
23
24
|
create: (context) => {
|
|
24
25
|
const sourceCode = context.sourceCode;
|
|
25
|
-
const program = sourceCode.ast;
|
|
26
|
-
const moduleImports = getImportDeclarations(program, moduleName);
|
|
27
26
|
const mut_pairsToFix = [];
|
|
28
27
|
return {
|
|
29
28
|
LogicalExpression: (node) => {
|
|
@@ -31,34 +30,34 @@ export const createPreferIsNonNullObject = ({ moduleName, }) => ({
|
|
|
31
30
|
if (node.operator !== '&&' || isChainOperand(sourceCode, node)) {
|
|
32
31
|
return;
|
|
33
32
|
}
|
|
34
|
-
mut_pairsToFix.push(...findNonNullObjectPairs(sourceCode, node))
|
|
33
|
+
mut_pairsToFix.push(...findNonNullObjectPairs(sourceCode, node).map((pair) => ({
|
|
34
|
+
...pair,
|
|
35
|
+
chain: node,
|
|
36
|
+
})));
|
|
35
37
|
},
|
|
36
38
|
'Program:exit': () => {
|
|
37
|
-
const
|
|
39
|
+
const binding = bindValueImports(sourceCode, moduleName, [
|
|
40
|
+
'isNonNullObject',
|
|
41
|
+
]);
|
|
42
|
+
const localName = binding?.localNames[0];
|
|
38
43
|
|
|
39
44
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
45
|
+
for (const { range, identifierName, chain } of mut_pairsToFix) {
|
|
46
|
+
const loc = {
|
|
47
|
+
start: sourceCode.getLocFromIndex(range[0]),
|
|
48
|
+
end: sourceCode.getLocFromIndex(range[1]),
|
|
49
|
+
};
|
|
44
50
|
context.report({
|
|
45
|
-
loc
|
|
46
|
-
start: sourceCode.getLocFromIndex(range[0]),
|
|
47
|
-
end: sourceCode.getLocFromIndex(range[1]),
|
|
48
|
-
},
|
|
51
|
+
loc,
|
|
49
52
|
messageId: 'useIsNonNullObject',
|
|
50
|
-
fix:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
...importFixes,
|
|
59
|
-
fixer.replaceTextRange(range, replacement),
|
|
60
|
-
];
|
|
61
|
-
},
|
|
53
|
+
fix: binding === undefined ||
|
|
54
|
+
localName === undefined ||
|
|
55
|
+
hasForeignBinding(sourceCode, chain, localName, moduleName)
|
|
56
|
+
? null
|
|
57
|
+
: (fixer) => [
|
|
58
|
+
...binding.edits(fixer),
|
|
59
|
+
fixer.replaceTextRange(range, `${localName}(${identifierName})`),
|
|
60
|
+
],
|
|
62
61
|
});
|
|
63
62
|
}
|
|
64
63
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-is-non-null-object.mjs","sourceRoot":"","sources":["../../src/rules/prefer-is-non-null-object.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAGf,MAAM,0BAA0B,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"prefer-is-non-null-object.mjs","sourceRoot":"","sources":["../../src/rules/prefer-is-non-null-object.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-is-record-and-has-key.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-is-record-and-has-key.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"prefer-is-record-and-has-key.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-is-record-and-has-key.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAWlC;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,oBAEvC,QAAQ,CAAC;IACV,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,KAAG,QAAQ,CAAC,UAAU,CAAC,sBAAsB,GAAG,WAAW,EAAE,SAAS,EAAE,CAgM7D,CAAC"}
|