eslint-plugin-ts-fortress 1.3.2 → 1.3.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"no-type-only-codec.d.mts","sourceRoot":"","sources":["../../src/rules/no-type-only-codec.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAQlC,KAAK,OAAO,GAAG,SAAS;IACtB,QAAQ,CAAC;QACP,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACjC,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,UAAU,GAAG,eAAe,CAAC;AAKlC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CA2F3D,CAAC"}
1
+ {"version":3,"file":"no-type-only-codec.d.mts","sourceRoot":"","sources":["../../src/rules/no-type-only-codec.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AASlC,KAAK,OAAO,GAAG,SAAS;IACtB,QAAQ,CAAC;QACP,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACjC,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,UAAU,GAAG,eAAe,CAAC;AAKlC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CA6F3D,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
2
+ import { getImportDeclarations } from 'eslint-rule-forge';
2
3
  import * as path from 'node:path';
3
4
  import { Arr } from 'ts-data-forge';
5
+ import { TS_FORTRESS_MODULE } from './constants.mjs';
4
6
  import { isExportedValueUsed } from './export-usage.mjs';
5
- import { getTsFortressImports } from './import-utils.mjs';
6
7
  import { packageEntryPoints } from './package-entry-points.mjs';
7
8
 
8
9
  const TYPE_OF = 'TypeOf';
@@ -57,7 +58,7 @@ export const noTypeOnlyCodec = {
57
58
  const entryPointOption = context.options[0]?.entryPoints;
58
59
  return {
59
60
  Program: (program) => {
60
- const isTypeOf = buildTypeOfMatcher(getTsFortressImports(program));
61
+ const isTypeOf = buildTypeOfMatcher(getImportDeclarations(program, TS_FORTRESS_MODULE));
61
62
  if (isTypeOf === undefined) {
62
63
  return;
63
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"no-type-only-codec.mjs","sourceRoot":"","sources":["../../src/rules/no-type-only-codec.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-type-only-codec.mjs","sourceRoot":"","sources":["../../src/rules/no-type-only-codec.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-canonical-length-constrained-type.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-canonical-length-constrained-type.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAoBlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,kBAAkB,CAAC;AAyFrC,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CAAC,UAAU,CACpE,UAAU,EACV,OAAO,CAmIC,CAAC"}
1
+ {"version":3,"file":"prefer-canonical-length-constrained-type.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-canonical-length-constrained-type.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAsBlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,kBAAkB,CAAC;AAyFrC,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CAAC,UAAU,CACpE,UAAU,EACV,OAAO,CAgJC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { AST_NODE_TYPES, ASTUtils, } from '@typescript-eslint/utils';
2
+ import { buildCalleeResolver, buildNamedImportFix, getImportDeclarations, getImportedLocalName, hasForeignBinding, parenthesesDepth, } from 'eslint-rule-forge';
2
3
  import { Arr } from 'ts-data-forge';
3
- import { ARRAY_FN, BOUNDED_LENGTH_TUPLE_FN, FIXED_LENGTH_TUPLE_FN, MAX_LENGTH_TUPLE_FN, MIN_LENGTH_ARRAY_FN, MIN_LENGTH_TUPLE_FN, NON_EMPTY_ARRAY_FN, STRUCTURAL_PREFIX_CAP, } from './constants.mjs';
4
- import { buildCalleeResolver, buildImportsFix, getImportedLocalName, getTsFortressImports, hasForeignBinding, } from './import-utils.mjs';
4
+ import { ARRAY_FN, BOUNDED_LENGTH_TUPLE_FN, FIXED_LENGTH_TUPLE_FN, MAX_LENGTH_TUPLE_FN, MIN_LENGTH_ARRAY_FN, MIN_LENGTH_TUPLE_FN, NON_EMPTY_ARRAY_FN, STRUCTURAL_PREFIX_CAP, TS_FORTRESS_MODULE, } from './constants.mjs';
5
5
 
6
6
 
7
7
 
@@ -84,7 +84,7 @@ export const preferCanonicalLengthConstrainedType = {
84
84
  create: (context) => {
85
85
  const sourceCode = context.sourceCode;
86
86
  const program = sourceCode.ast;
87
- const tsFortressImports = getTsFortressImports(program);
87
+ const tsFortressImports = getImportDeclarations(program, TS_FORTRESS_MODULE);
88
88
  const resolveCallee = buildCalleeResolver(tsFortressImports);
89
89
  const mut_matches = [];
90
90
  return {
@@ -118,7 +118,7 @@ export const preferCanonicalLengthConstrainedType = {
118
118
  propertyNode: resolved.propertyNode,
119
119
  isNamespace: false,
120
120
  rewrite,
121
- localName: hasForeignBinding(sourceCode, node, localName)
121
+ localName: hasForeignBinding(sourceCode, node, localName, TS_FORTRESS_MODULE)
122
122
  ? undefined
123
123
  : localName,
124
124
  needsImport: importedLocalName === undefined,
@@ -145,7 +145,7 @@ export const preferCanonicalLengthConstrainedType = {
145
145
  },
146
146
  fix: (fixer) => [
147
147
  ...(index === importFixIndex
148
- ? buildImportsFix(fixer, program, namesNeedingImport)
148
+ ? buildNamedImportFix(fixer, program, TS_FORTRESS_MODULE, namesNeedingImport)
149
149
  : []),
150
150
  fixer.replaceText(propertyNode, localName),
151
151
  ...dropBoundsFix(fixer, node, rewrite, sourceCode),
@@ -217,7 +217,7 @@ const dropBoundsFix = (fixer, node, rewrite, sourceCode) => rewrite.bounds.flatM
217
217
  if (dropped === undefined || rewrite.keep.includes(index)) {
218
218
  return [];
219
219
  }
220
- const depth = parenthesesDepth(dropped, sourceCode);
220
+ const depth = parenthesesDepth(sourceCode, dropped);
221
221
  const first = sourceCode.getFirstToken(dropped);
222
222
  const start = first === null || depth === 0
223
223
  ? first
@@ -231,10 +231,6 @@ const dropBoundsFix = (fixer, node, rewrite, sourceCode) => rewrite.bounds.flatM
231
231
  : [fixer.removeRange([start.range[0], end.range[0]])];
232
232
  });
233
233
 
234
- const parenthesesDepth = (node, sourceCode, depth = 0) => ASTUtils.isParenthesized(depth + 1, node, sourceCode)
235
- ? parenthesesDepth(node, sourceCode, depth + 1)
236
- : depth;
237
-
238
234
 
239
235
 
240
236
 
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-canonical-length-constrained-type.mjs","sourceRoot":"","sources":["../../src/rules/prefer-canonical-length-constrained-type.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefer-canonical-length-constrained-type.mjs","sourceRoot":"","sources":["../../src/rules/prefer-canonical-length-constrained-type.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-namespace-import.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-namespace-import.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAKlC,KAAK,OAAO,GAAG,SAAS;IACtB,QAAQ,CAAC;QACP,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,UAAU,GAAG,wBAAwB,GAAG,oBAAoB,CAAC;AA0BlE;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAuGjE,CAAC"}
1
+ {"version":3,"file":"prefer-namespace-import.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-namespace-import.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAKlC,KAAK,OAAO,GAAG,SAAS;IACtB,QAAQ,CAAC;QACP,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,UAAU,GAAG,wBAAwB,GAAG,oBAAoB,CAAC;AA0BlE;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CA0GjE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
2
+ import { getImportDeclarations, hasForeignBinding } from 'eslint-rule-forge';
2
3
  import { Arr } from 'ts-data-forge';
3
4
  import { TS_FORTRESS_MODULE } from './constants.mjs';
4
- import { getTsFortressImports, hasForeignBinding } from './import-utils.mjs';
5
5
 
6
6
  const DEFAULT_NAMESPACE_NAME = 't';
7
7
 
@@ -52,7 +52,7 @@ export const preferNamespaceImport = {
52
52
 
53
53
 
54
54
  'Program:exit': () => {
55
- const declarations = getTsFortressImports(sourceCode.ast);
55
+ const declarations = getImportDeclarations(sourceCode.ast, TS_FORTRESS_MODULE);
56
56
  const reported = declarations.filter((declaration) => !isNamespaceOnly(declaration));
57
57
  if (!Arr.isNonEmpty(reported)) {
58
58
  return;
@@ -183,7 +183,7 @@ const buildReferenceRewrite = (sourceCode, identifier, namespaceName, memberName
183
183
  if (identifier.type !== AST_NODE_TYPES.Identifier ||
184
184
 
185
185
 
186
- hasForeignBinding(sourceCode, identifier, namespaceName)) {
186
+ hasForeignBinding(sourceCode, identifier, namespaceName, TS_FORTRESS_MODULE)) {
187
187
  return undefined;
188
188
  }
189
189
  const target = memberName === undefined
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-namespace-import.mjs","sourceRoot":"","sources":["../../src/rules/prefer-namespace-import.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefer-namespace-import.mjs","sourceRoot":"","sources":["../../src/rules/prefer-namespace-import.mts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
2
- import { isTypeWrapper, skipTypeWrappers } from './ast-utils.mjs';
2
+ import { isTypeWrapper, skipTypeWrappers } from 'eslint-rule-forge';
3
3
  import { TS_FORTRESS_MODULE } from './constants.mjs';
4
4
 
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-schema-over-guard-chain.mjs","sourceRoot":"","sources":["../../src/rules/prefer-schema-over-guard-chain.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefer-schema-over-guard-chain.mjs","sourceRoot":"","sources":["../../src/rules/prefer-schema-over-guard-chain.mts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-ts-fortress",
3
- "version": "1.3.2",
3
+ "version": "1.3.3",
4
4
  "private": false,
5
5
  "description": "ESLint rules that steer schema definitions toward ts-fortress idioms.",
6
6
  "keywords": [
@@ -36,6 +36,7 @@
36
36
  ],
37
37
  "dependencies": {
38
38
  "@typescript-eslint/utils": "8.71.1",
39
+ "eslint-rule-forge": "^0.1.0",
39
40
  "ts-data-forge": "~14.7.1",
40
41
  "ts-type-forge": "~9.2.2"
41
42
  },
@@ -43,9 +44,9 @@
43
44
  "@typescript-eslint/parser": "8.71.1",
44
45
  "@typescript-eslint/rule-tester": "8.71.1",
45
46
  "dedent": "1.7.2",
46
- "eslint-config-typed": "5.17.3",
47
- "eslint-plugin-ts-data-forge": "0.8.5",
48
- "eslint-plugin-ts-type-forge": "0.8.7",
47
+ "eslint-config-typed": "5.17.4",
48
+ "eslint-plugin-ts-data-forge": "0.8.6",
49
+ "eslint-plugin-ts-type-forge": "0.8.8",
49
50
  "prettier": "3.9.9",
50
51
  "prettier-plugin-organize-imports": "4.3.0",
51
52
  "prettier-plugin-packagejson": "3.0.2",
@@ -3,11 +3,12 @@ import {
3
3
  type TSESLint,
4
4
  type TSESTree,
5
5
  } from '@typescript-eslint/utils';
6
+ import { getImportDeclarations } from 'eslint-rule-forge';
6
7
  import * as path from 'node:path';
7
8
  import { Arr } from 'ts-data-forge';
8
9
  import type { FixedLengthTuple } from 'ts-type-forge';
10
+ import { TS_FORTRESS_MODULE } from './constants.mjs';
9
11
  import { isExportedValueUsed } from './export-usage.mjs';
10
- import { getTsFortressImports } from './import-utils.mjs';
11
12
  import { packageEntryPoints } from './package-entry-points.mjs';
12
13
 
13
14
  type Options = readonly [
@@ -75,7 +76,9 @@ export const noTypeOnlyCodec: TSESLint.RuleModule<MessageIds, Options> = {
75
76
 
76
77
  return {
77
78
  Program: (program) => {
78
- const isTypeOf = buildTypeOfMatcher(getTsFortressImports(program));
79
+ const isTypeOf = buildTypeOfMatcher(
80
+ getImportDeclarations(program, TS_FORTRESS_MODULE),
81
+ );
79
82
 
80
83
  if (isTypeOf === undefined) {
81
84
  return;
@@ -4,6 +4,14 @@ import {
4
4
  type TSESLint,
5
5
  type TSESTree,
6
6
  } from '@typescript-eslint/utils';
7
+ import {
8
+ buildCalleeResolver,
9
+ buildNamedImportFix,
10
+ getImportDeclarations,
11
+ getImportedLocalName,
12
+ hasForeignBinding,
13
+ parenthesesDepth,
14
+ } from 'eslint-rule-forge';
7
15
  import { Arr } from 'ts-data-forge';
8
16
  import {
9
17
  ARRAY_FN,
@@ -14,14 +22,8 @@ import {
14
22
  MIN_LENGTH_TUPLE_FN,
15
23
  NON_EMPTY_ARRAY_FN,
16
24
  STRUCTURAL_PREFIX_CAP,
25
+ TS_FORTRESS_MODULE,
17
26
  } from './constants.mjs';
18
- import {
19
- buildCalleeResolver,
20
- buildImportsFix,
21
- getImportedLocalName,
22
- getTsFortressImports,
23
- hasForeignBinding,
24
- } from './import-utils.mjs';
25
27
 
26
28
  type Options = readonly [];
27
29
 
@@ -137,7 +139,10 @@ export const preferCanonicalLengthConstrainedType: TSESLint.RuleModule<
137
139
 
138
140
  const program = sourceCode.ast;
139
141
 
140
- const tsFortressImports = getTsFortressImports(program);
142
+ const tsFortressImports = getImportDeclarations(
143
+ program,
144
+ TS_FORTRESS_MODULE,
145
+ );
141
146
 
142
147
  const resolveCallee = buildCalleeResolver(tsFortressImports);
143
148
 
@@ -196,7 +201,12 @@ export const preferCanonicalLengthConstrainedType: TSESLint.RuleModule<
196
201
  propertyNode: resolved.propertyNode,
197
202
  isNamespace: false,
198
203
  rewrite,
199
- localName: hasForeignBinding(sourceCode, node, localName)
204
+ localName: hasForeignBinding(
205
+ sourceCode,
206
+ node,
207
+ localName,
208
+ TS_FORTRESS_MODULE,
209
+ )
200
210
  ? undefined
201
211
  : localName,
202
212
  needsImport: importedLocalName === undefined,
@@ -213,7 +223,7 @@ export const preferCanonicalLengthConstrainedType: TSESLint.RuleModule<
213
223
  .map((match) => match.rewrite.to),
214
224
  );
215
225
 
216
- // Every missing import rides on a single report; see `buildImportsFix`.
226
+ // Every missing import rides on a single report; see `buildNamedImportFix`.
217
227
  const importFixIndex = reportable.findIndex(
218
228
  (match) => match.needsImport,
219
229
  );
@@ -236,7 +246,12 @@ export const preferCanonicalLengthConstrainedType: TSESLint.RuleModule<
236
246
  },
237
247
  fix: (fixer) => [
238
248
  ...(index === importFixIndex
239
- ? buildImportsFix(fixer, program, namesNeedingImport)
249
+ ? buildNamedImportFix(
250
+ fixer,
251
+ program,
252
+ TS_FORTRESS_MODULE,
253
+ namesNeedingImport,
254
+ )
240
255
  : []),
241
256
  fixer.replaceText(propertyNode, localName),
242
257
  ...dropBoundsFix(fixer, node, rewrite, sourceCode),
@@ -342,7 +357,7 @@ const dropBoundsFix = (
342
357
  return [];
343
358
  }
344
359
 
345
- const depth = parenthesesDepth(dropped, sourceCode);
360
+ const depth = parenthesesDepth(sourceCode, dropped);
346
361
 
347
362
  const first = sourceCode.getFirstToken(dropped);
348
363
 
@@ -362,16 +377,6 @@ const dropBoundsFix = (
362
377
  : [fixer.removeRange([start.range[0], end.range[0]])];
363
378
  });
364
379
 
365
- /** How many pairs of parentheses the source puts around `node`. */
366
- const parenthesesDepth = (
367
- node: TSESTree.Node,
368
- sourceCode: TSESLint.SourceCode,
369
- depth: number = 0,
370
- ): number =>
371
- ASTUtils.isParenthesized(depth + 1, node, sourceCode)
372
- ? parenthesesDepth(node, sourceCode, depth + 1)
373
- : depth;
374
-
375
380
  /**
376
381
  * A non-negative integer literal's value, or `undefined` for anything else —
377
382
  * a computed bound cannot be matched against the rewrite table.
@@ -164,6 +164,36 @@ describe('prefer-canonical-length-constrained-type', () => {
164
164
  `,
165
165
  errors: [{ messageId: 'useCanonicalType' }],
166
166
  },
167
+ {
168
+ name: 'reads the namespace object through a type wrapper',
169
+ code: dedent`
170
+ import * as t from 'ts-fortress';
171
+
172
+ const T = (t as typeof t).minLengthArray(1, t.string());
173
+ `,
174
+ output: dedent`
175
+ import * as t from 'ts-fortress';
176
+
177
+ const T = (t as typeof t).nonEmptyArray(t.string());
178
+ `,
179
+ errors: [{ messageId: 'useCanonicalType' }],
180
+ },
181
+ {
182
+ name: 'reads a namespace import from a second declaration',
183
+ code: dedent`
184
+ import type { Type } from 'ts-fortress';
185
+ import * as t from 'ts-fortress';
186
+
187
+ const T = t.minLengthArray(1, t.string());
188
+ `,
189
+ output: dedent`
190
+ import type { Type } from 'ts-fortress';
191
+ import * as t from 'ts-fortress';
192
+
193
+ const T = t.nonEmptyArray(t.string());
194
+ `,
195
+ errors: [{ messageId: 'useCanonicalType' }],
196
+ },
167
197
  {
168
198
  name: 'keeps a typeName-only options object',
169
199
  code: dedent`
@@ -394,9 +424,7 @@ describe('prefer-canonical-length-constrained-type', () => {
394
424
  const C = boundedLengthTuple(0, 5, string());
395
425
  `,
396
426
  output: dedent`
397
- import { nonEmptyArray } from 'ts-fortress';
398
- import { fixedLengthTuple } from 'ts-fortress';
399
- import { maxLengthTuple } from 'ts-fortress';
427
+ import { nonEmptyArray, fixedLengthTuple, maxLengthTuple } from 'ts-fortress';
400
428
  import { boundedLengthTuple, minLengthArray, string } from 'ts-fortress';
401
429
 
402
430
  const A = nonEmptyArray(string());
@@ -3,9 +3,9 @@ import {
3
3
  type TSESLint,
4
4
  type TSESTree,
5
5
  } from '@typescript-eslint/utils';
6
+ import { getImportDeclarations, hasForeignBinding } from 'eslint-rule-forge';
6
7
  import { Arr } from 'ts-data-forge';
7
8
  import { TS_FORTRESS_MODULE } from './constants.mjs';
8
- import { getTsFortressImports, hasForeignBinding } from './import-utils.mjs';
9
9
 
10
10
  type Options = readonly [
11
11
  Readonly<{
@@ -91,7 +91,10 @@ export const preferNamespaceImport: TSESLint.RuleModule<MessageIds, Options> = {
91
91
  // has to see every ts-fortress import at once to know whether there is a
92
92
  // namespace to merge into, and which declaration becomes it.
93
93
  'Program:exit': () => {
94
- const declarations = getTsFortressImports(sourceCode.ast);
94
+ const declarations = getImportDeclarations(
95
+ sourceCode.ast,
96
+ TS_FORTRESS_MODULE,
97
+ );
95
98
 
96
99
  const reported = declarations.filter(
97
100
  (declaration) => !isNamespaceOnly(declaration),
@@ -299,7 +302,7 @@ const buildReferenceRewrite = (
299
302
  identifier.type !== AST_NODE_TYPES.Identifier ||
300
303
  // The namespace name has to mean the namespace import at every site the fix
301
304
  // writes it; a binding of the same name in scope would capture it instead.
302
- hasForeignBinding(sourceCode, identifier, namespaceName)
305
+ hasForeignBinding(sourceCode, identifier, namespaceName, TS_FORTRESS_MODULE)
303
306
  ) {
304
307
  return undefined;
305
308
  }
@@ -3,7 +3,7 @@ import {
3
3
  type TSESLint,
4
4
  type TSESTree,
5
5
  } from '@typescript-eslint/utils';
6
- import { isTypeWrapper, skipTypeWrappers } from './ast-utils.mjs';
6
+ import { isTypeWrapper, skipTypeWrappers } from 'eslint-rule-forge';
7
7
  import { TS_FORTRESS_MODULE } from './constants.mjs';
8
8
 
9
9
  type Options = readonly [
@@ -1,15 +0,0 @@
1
- import { type TSESTree } from '@typescript-eslint/utils';
2
- /**
3
- * `node` with every `as`, `satisfies`, `!` and `<T>` around it taken off: the
4
- * expression whose value it is. Judge syntax on what this returns, so that a
5
- * wrapper does not hide a pattern (`isString((x as R).a)`), and keep the
6
- * original node for fix text. See `docs/writing-lint-rules.md` at the
7
- * repository root.
8
- *
9
- * A copy of the helper in `eslint-config-typed`, which this package, published
10
- * on its own, cannot import.
11
- */
12
- export declare const skipTypeWrappers: (node: TSESTree.Node) => TSESTree.Node;
13
- export declare const isTypeWrapper: (node: TSESTree.Node) => node is TypeWrapper;
14
- export type TypeWrapper = TSESTree.TSAsExpression | TSESTree.TSNonNullExpression | TSESTree.TSSatisfiesExpression | TSESTree.TSTypeAssertion;
15
- //# sourceMappingURL=ast-utils.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast-utils.d.mts","sourceRoot":"","sources":["../../src/rules/ast-utils.mts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzE;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,SAErB,QAAQ,CAAC,IAAI,KAClB,QAAQ,CAAC,IACoD,CAAC;AAEjE,eAAO,MAAM,aAAa,SAElB,QAAQ,CAAC,IAAI,KAClB,IAAI,IAAI,WAA2C,CAAC;AAEvD,MAAM,MAAM,WAAW,GACnB,QAAQ,CAAC,cAAc,GACvB,QAAQ,CAAC,mBAAmB,GAC5B,QAAQ,CAAC,qBAAqB,GAC9B,QAAQ,CAAC,eAAe,CAAC"}
@@ -1,24 +0,0 @@
1
- import { AST_NODE_TYPES } from '@typescript-eslint/utils';
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
- export const skipTypeWrappers = (
13
-
14
- node) => isTypeWrapper(node) ? skipTypeWrappers(node.expression) : node;
15
- export const isTypeWrapper = (
16
-
17
- node) => TYPE_WRAPPERS.has(node.type);
18
- const TYPE_WRAPPERS = new Set([
19
- AST_NODE_TYPES.TSAsExpression,
20
- AST_NODE_TYPES.TSNonNullExpression,
21
- AST_NODE_TYPES.TSSatisfiesExpression,
22
- AST_NODE_TYPES.TSTypeAssertion,
23
- ]);
24
- //# sourceMappingURL=ast-utils.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast-utils.mjs","sourceRoot":"","sources":["../../src/rules/ast-utils.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,0BAA0B,CAAC;AAEzE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;AAC9B,8EAA8E;AAC9E,IAAmB,EACJ,EAAE,CACjB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAG;AAC3B,8EAA8E;AAC9E,IAAmB,EACE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAQvD,MAAM,aAAa,GAAgC,IAAI,GAAG,CAAC;IACzD,cAAc,CAAC,cAAc;IAC7B,cAAc,CAAC,mBAAmB;IAClC,cAAc,CAAC,qBAAqB;IACpC,cAAc,CAAC,eAAe;CAC/B,CAAC,CAAC"}
@@ -1,47 +0,0 @@
1
- import { type TSESLint, type TSESTree } from '@typescript-eslint/utils';
2
- export type ResolvedCallee = Readonly<{
3
- /** The canonical (imported) ts-fortress name, regardless of local alias. */
4
- canonicalName: string;
5
- /** The identifier node to rewrite when replacing the callee name. */
6
- propertyNode: TSESTree.Node;
7
- /** Whether the call was made through a namespace import (`t.foo(...)`). */
8
- isNamespace: boolean;
9
- }>;
10
- /** Every `import ... from 'ts-fortress'` declaration in the file. */
11
- export declare const getTsFortressImports: (program: TSESTree.Program) => readonly TSESTree.ImportDeclaration[];
12
- /**
13
- * Returns the in-scope local name a given ts-fortress export is imported as
14
- * (handling aliases such as `import { nonEmptyArray as nea }` → `'nea'`), or
15
- * `undefined` when it is not imported. Used so autofixes reference the binding
16
- * that actually exists rather than the canonical name.
17
- */
18
- export declare const getImportedLocalName: (importDeclarations: readonly TSESTree.ImportDeclaration[], importedName: string) => string | undefined;
19
- /**
20
- * Builds a resolver that maps a call expression's callee to the canonical
21
- * ts-fortress function it refers to. Handles named imports (including aliases)
22
- * and namespace imports (`import * as t` → `t.foo(...)`) — the latter being the
23
- * idiomatic way to consume ts-fortress. Returns `undefined` for any callee that
24
- * does not reference the given ts-fortress imports.
25
- */
26
- export declare const buildCalleeResolver: (importDeclarations: readonly TSESTree.ImportDeclaration[]) => ((callee: TSESTree.Expression) => ResolvedCallee | undefined);
27
- /**
28
- * Whether `name` resolves, at `node`, to a binding that is not a ts-fortress
29
- * import — a local declaration, a parameter, or an import from another module.
30
- * An autofix that makes a call reference `name` must bail out in that case,
31
- * because the rewritten call would resolve to the wrong binding.
32
- *
33
- * Scope-based rather than a scan of the top-level statements, so a binding that
34
- * merely shadows the ts-fortress one around the call site is caught too.
35
- */
36
- export declare const hasForeignBinding: (sourceCode: TSESLint.SourceCode, node: TSESTree.Node, name: string) => boolean;
37
- /**
38
- * Inserts `import { <name> } from 'ts-fortress';` for each name at the top of
39
- * the file. Placement is deliberately naive: prettier-plugin-organize-imports
40
- * (or any equivalent) merges and sorts them afterwards.
41
- *
42
- * All names go into a single fix on purpose: ESLint merges the fixes of one
43
- * report into one edit span, so two reports each inserting at the start of the
44
- * file would conflict and one of them would be dropped.
45
- */
46
- export declare const buildImportsFix: (fixer: TSESLint.RuleFixer, program: TSESTree.Program, names: readonly string[]) => readonly TSESLint.RuleFix[];
47
- //# sourceMappingURL=import-utils.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-utils.d.mts","sourceRoot":"","sources":["../../src/rules/import-utils.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAMlC,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC;IAC5B,2EAA2E;IAC3E,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC,CAAC;AAEH,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,YACtB,QAAQ,CAAC,OAAO,KACxB,SAAS,QAAQ,CAAC,iBAAiB,EAKnC,CAAC;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,uBACX,SAAS,QAAQ,CAAC,iBAAiB,EAAE,gBAC3C,MAAM,KACnB,MAAM,GAAG,SASK,CAAC;AAElB;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,uBACV,SAAS,QAAQ,CAAC,iBAAiB,EAAE,KACxD,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,KAAK,cAAc,GAAG,SAAS,CAoD9D,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,eAChB,QAAQ,CAAC,UAAU,QACzB,QAAQ,CAAC,IAAI,QACb,MAAM,KACX,OAgBF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,UACnB,QAAQ,CAAC,SAAS,WAChB,QAAQ,CAAC,OAAO,SAClB,SAAS,MAAM,EAAE,KACvB,SAAS,QAAQ,CAAC,OAAO,EAUX,CAAC"}
@@ -1,103 +0,0 @@
1
- import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
2
- import { Arr } from 'ts-data-forge';
3
- import { TS_FORTRESS_MODULE } from './constants.mjs';
4
-
5
- export const getTsFortressImports = (program) => program.body.filter((node) => node.type === AST_NODE_TYPES.ImportDeclaration &&
6
- node.source.value === TS_FORTRESS_MODULE);
7
-
8
-
9
-
10
-
11
-
12
-
13
- export const getImportedLocalName = (importDeclarations, importedName) => importDeclarations
14
- .flatMap((declaration) => declaration.specifiers)
15
- .find((specifier) => specifier.type === AST_NODE_TYPES.ImportSpecifier &&
16
- (specifier.imported.type === AST_NODE_TYPES.Identifier
17
- ? specifier.imported.name
18
- : specifier.imported.value) === importedName)?.local.name;
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
- export const buildCalleeResolver = (importDeclarations) => {
27
- const specifiers = importDeclarations.flatMap((declaration) => declaration.specifiers);
28
- const namespaceNames = new Set(specifiers
29
- .filter((specifier) => specifier.type === AST_NODE_TYPES.ImportNamespaceSpecifier)
30
- .map((specifier) => specifier.local.name));
31
- const localToCanonical = new Map(specifiers.flatMap((specifier) => {
32
- if (specifier.type !== AST_NODE_TYPES.ImportSpecifier) {
33
- return [];
34
- }
35
- const importedName = specifier.imported.type === AST_NODE_TYPES.Identifier
36
- ? specifier.imported.name
37
- : specifier.imported.value;
38
- return typeof importedName === 'string'
39
- ? [[specifier.local.name, importedName]]
40
- : [];
41
- }));
42
- return (callee) => {
43
- if (callee.type === AST_NODE_TYPES.Identifier) {
44
- const canonicalName = localToCanonical.get(callee.name);
45
- return canonicalName === undefined
46
- ? undefined
47
- : { canonicalName, propertyNode: callee, isNamespace: false };
48
- }
49
- return callee.type === AST_NODE_TYPES.MemberExpression &&
50
- !callee.computed &&
51
- callee.object.type === AST_NODE_TYPES.Identifier &&
52
- namespaceNames.has(callee.object.name) &&
53
- callee.property.type === AST_NODE_TYPES.Identifier
54
- ? {
55
- canonicalName: callee.property.name,
56
- propertyNode: callee.property,
57
- isNamespace: true,
58
- }
59
- : undefined;
60
- };
61
- };
62
-
63
-
64
-
65
-
66
-
67
-
68
-
69
-
70
-
71
- export const hasForeignBinding = (sourceCode, node, name) => {
72
- for (let mut_scope = sourceCode.getScope(node); mut_scope !== null; mut_scope = mut_scope.upper) {
73
- const variable = mut_scope.set.get(name);
74
-
75
-
76
- if (variable !== undefined) {
77
- return variable.defs.some((def) => !isTsFortressImportDef(def.node));
78
- }
79
- }
80
- return false;
81
- };
82
-
83
-
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
- export const buildImportsFix = (fixer, program, names) => Arr.isEmpty(names)
92
- ? []
93
- : [
94
- fixer.insertTextBefore(program, names
95
- .map((name) => `import { ${name} } from '${TS_FORTRESS_MODULE}';\n`)
96
- .join('')),
97
- ];
98
- const isTsFortressImportDef = (node) => (node.type === AST_NODE_TYPES.ImportSpecifier ||
99
- node.type === AST_NODE_TYPES.ImportDefaultSpecifier ||
100
- node.type === AST_NODE_TYPES.ImportNamespaceSpecifier) &&
101
- node.parent.type === AST_NODE_TYPES.ImportDeclaration &&
102
- node.parent.source.value === TS_FORTRESS_MODULE;
103
- //# sourceMappingURL=import-utils.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import-utils.mjs","sourceRoot":"","sources":["../../src/rules/import-utils.mts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- import { AST_NODE_TYPES, type TSESTree } from '@typescript-eslint/utils';
2
-
3
- /**
4
- * `node` with every `as`, `satisfies`, `!` and `<T>` around it taken off: the
5
- * expression whose value it is. Judge syntax on what this returns, so that a
6
- * wrapper does not hide a pattern (`isString((x as R).a)`), and keep the
7
- * original node for fix text. See `docs/writing-lint-rules.md` at the
8
- * repository root.
9
- *
10
- * A copy of the helper in `eslint-config-typed`, which this package, published
11
- * on its own, cannot import.
12
- */
13
- export const skipTypeWrappers = (
14
- // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
15
- node: TSESTree.Node,
16
- ): TSESTree.Node =>
17
- isTypeWrapper(node) ? skipTypeWrappers(node.expression) : node;
18
-
19
- export const isTypeWrapper = (
20
- // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
21
- node: TSESTree.Node,
22
- ): node is TypeWrapper => TYPE_WRAPPERS.has(node.type);
23
-
24
- export type TypeWrapper =
25
- | TSESTree.TSAsExpression
26
- | TSESTree.TSNonNullExpression
27
- | TSESTree.TSSatisfiesExpression
28
- | TSESTree.TSTypeAssertion;
29
-
30
- const TYPE_WRAPPERS: ReadonlySet<AST_NODE_TYPES> = new Set([
31
- AST_NODE_TYPES.TSAsExpression,
32
- AST_NODE_TYPES.TSNonNullExpression,
33
- AST_NODE_TYPES.TSSatisfiesExpression,
34
- AST_NODE_TYPES.TSTypeAssertion,
35
- ]);
@@ -1,174 +0,0 @@
1
- import {
2
- AST_NODE_TYPES,
3
- type TSESLint,
4
- type TSESTree,
5
- } from '@typescript-eslint/utils';
6
- import { Arr } from 'ts-data-forge';
7
- import { TS_FORTRESS_MODULE } from './constants.mjs';
8
-
9
- /* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
10
-
11
- export type ResolvedCallee = Readonly<{
12
- /** The canonical (imported) ts-fortress name, regardless of local alias. */
13
- canonicalName: string;
14
- /** The identifier node to rewrite when replacing the callee name. */
15
- propertyNode: TSESTree.Node;
16
- /** Whether the call was made through a namespace import (`t.foo(...)`). */
17
- isNamespace: boolean;
18
- }>;
19
-
20
- /** Every `import ... from 'ts-fortress'` declaration in the file. */
21
- export const getTsFortressImports = (
22
- program: TSESTree.Program,
23
- ): readonly TSESTree.ImportDeclaration[] =>
24
- program.body.filter(
25
- (node): node is TSESTree.ImportDeclaration =>
26
- node.type === AST_NODE_TYPES.ImportDeclaration &&
27
- node.source.value === TS_FORTRESS_MODULE,
28
- );
29
-
30
- /**
31
- * Returns the in-scope local name a given ts-fortress export is imported as
32
- * (handling aliases such as `import { nonEmptyArray as nea }` → `'nea'`), or
33
- * `undefined` when it is not imported. Used so autofixes reference the binding
34
- * that actually exists rather than the canonical name.
35
- */
36
- export const getImportedLocalName = (
37
- importDeclarations: readonly TSESTree.ImportDeclaration[],
38
- importedName: string,
39
- ): string | undefined =>
40
- importDeclarations
41
- .flatMap((declaration) => declaration.specifiers)
42
- .find(
43
- (specifier) =>
44
- specifier.type === AST_NODE_TYPES.ImportSpecifier &&
45
- (specifier.imported.type === AST_NODE_TYPES.Identifier
46
- ? specifier.imported.name
47
- : specifier.imported.value) === importedName,
48
- )?.local.name;
49
-
50
- /**
51
- * Builds a resolver that maps a call expression's callee to the canonical
52
- * ts-fortress function it refers to. Handles named imports (including aliases)
53
- * and namespace imports (`import * as t` → `t.foo(...)`) — the latter being the
54
- * idiomatic way to consume ts-fortress. Returns `undefined` for any callee that
55
- * does not reference the given ts-fortress imports.
56
- */
57
- export const buildCalleeResolver = (
58
- importDeclarations: readonly TSESTree.ImportDeclaration[],
59
- ): ((callee: TSESTree.Expression) => ResolvedCallee | undefined) => {
60
- const specifiers = importDeclarations.flatMap(
61
- (declaration) => declaration.specifiers,
62
- );
63
-
64
- const namespaceNames = new Set(
65
- specifiers
66
- .filter(
67
- (specifier) =>
68
- specifier.type === AST_NODE_TYPES.ImportNamespaceSpecifier,
69
- )
70
- .map((specifier) => specifier.local.name),
71
- );
72
-
73
- const localToCanonical = new Map<string, string>(
74
- specifiers.flatMap((specifier) => {
75
- if (specifier.type !== AST_NODE_TYPES.ImportSpecifier) {
76
- return [];
77
- }
78
-
79
- const importedName =
80
- specifier.imported.type === AST_NODE_TYPES.Identifier
81
- ? specifier.imported.name
82
- : specifier.imported.value;
83
-
84
- return typeof importedName === 'string'
85
- ? [[specifier.local.name, importedName] as const]
86
- : [];
87
- }),
88
- );
89
-
90
- return (callee) => {
91
- if (callee.type === AST_NODE_TYPES.Identifier) {
92
- const canonicalName = localToCanonical.get(callee.name);
93
-
94
- return canonicalName === undefined
95
- ? undefined
96
- : { canonicalName, propertyNode: callee, isNamespace: false };
97
- }
98
-
99
- return callee.type === AST_NODE_TYPES.MemberExpression &&
100
- !callee.computed &&
101
- callee.object.type === AST_NODE_TYPES.Identifier &&
102
- namespaceNames.has(callee.object.name) &&
103
- callee.property.type === AST_NODE_TYPES.Identifier
104
- ? {
105
- canonicalName: callee.property.name,
106
- propertyNode: callee.property,
107
- isNamespace: true,
108
- }
109
- : undefined;
110
- };
111
- };
112
-
113
- /**
114
- * Whether `name` resolves, at `node`, to a binding that is not a ts-fortress
115
- * import — a local declaration, a parameter, or an import from another module.
116
- * An autofix that makes a call reference `name` must bail out in that case,
117
- * because the rewritten call would resolve to the wrong binding.
118
- *
119
- * Scope-based rather than a scan of the top-level statements, so a binding that
120
- * merely shadows the ts-fortress one around the call site is caught too.
121
- */
122
- export const hasForeignBinding = (
123
- sourceCode: TSESLint.SourceCode,
124
- node: TSESTree.Node,
125
- name: string,
126
- ): boolean => {
127
- for (
128
- let mut_scope: TSESLint.Scope.Scope | null = sourceCode.getScope(node);
129
- mut_scope !== null;
130
- mut_scope = mut_scope.upper
131
- ) {
132
- const variable = mut_scope.set.get(name);
133
-
134
- // The innermost binding wins, so the first scope that declares `name`
135
- // decides — an outer ts-fortress import does not rescue a shadowed name.
136
- if (variable !== undefined) {
137
- return variable.defs.some((def) => !isTsFortressImportDef(def.node));
138
- }
139
- }
140
-
141
- return false;
142
- };
143
-
144
- /**
145
- * Inserts `import { <name> } from 'ts-fortress';` for each name at the top of
146
- * the file. Placement is deliberately naive: prettier-plugin-organize-imports
147
- * (or any equivalent) merges and sorts them afterwards.
148
- *
149
- * All names go into a single fix on purpose: ESLint merges the fixes of one
150
- * report into one edit span, so two reports each inserting at the start of the
151
- * file would conflict and one of them would be dropped.
152
- */
153
- export const buildImportsFix = (
154
- fixer: TSESLint.RuleFixer,
155
- program: TSESTree.Program,
156
- names: readonly string[],
157
- ): readonly TSESLint.RuleFix[] =>
158
- Arr.isEmpty(names)
159
- ? ([] as const)
160
- : ([
161
- fixer.insertTextBefore(
162
- program,
163
- names
164
- .map((name) => `import { ${name} } from '${TS_FORTRESS_MODULE}';\n`)
165
- .join(''),
166
- ),
167
- ] as const);
168
-
169
- const isTsFortressImportDef = (node: TSESTree.Node): boolean =>
170
- (node.type === AST_NODE_TYPES.ImportSpecifier ||
171
- node.type === AST_NODE_TYPES.ImportDefaultSpecifier ||
172
- node.type === AST_NODE_TYPES.ImportNamespaceSpecifier) &&
173
- node.parent.type === AST_NODE_TYPES.ImportDeclaration &&
174
- node.parent.source.value === TS_FORTRESS_MODULE;