eslint-plugin-ts-fortress 1.2.2 → 1.2.4

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 CHANGED
@@ -1,8 +1,9 @@
1
1
  # eslint-plugin-ts-fortress
2
2
 
3
3
  ESLint rules that steer schema definitions toward
4
- [`ts-fortress`](https://www.npmjs.com/package/ts-fortress) idioms. Every rule is
5
- auto-fixable, and every rewrite is **type-preserving**.
4
+ [`ts-fortress`](https://www.npmjs.com/package/ts-fortress) idioms. Every rule except
5
+ `prefer-schema-over-guard-chain` (which only reports) is auto-fixable, and every
6
+ rewrite is **type-preserving**.
6
7
 
7
8
  ## Installation
8
9
 
@@ -93,12 +94,12 @@ import * as t from 'ts-fortress';
93
94
  // ❌
94
95
  const Tags = t.minLengthArray(1, t.string());
95
96
  const Rgb = t.boundedLengthTuple(3, 3, t.number());
96
- const Page = t.boundedLengthTuple(0, 20, t.string());
97
+ const Page = t.boundedLengthTuple(0, 10, t.string());
97
98
 
98
99
  // ✅
99
100
  const Tags = t.nonEmptyArray(t.string());
100
101
  const Rgb = t.fixedLengthTuple(3, t.number());
101
- const Page = t.maxLengthTuple(20, t.string());
102
+ const Page = t.maxLengthTuple(10, t.string());
102
103
  ```
103
104
 
104
105
  Each rewrite keeps the accepted values, the `defaultValue`, and the options
@@ -265,8 +266,8 @@ almost all of what a function-scoped count reports.
265
266
  'ts-fortress/prefer-schema-over-guard-chain': ['error', { threshold: 4 }],
266
267
  ```
267
268
 
268
- - `threshold` (default `5`) — how many guards on one value a single chain may
269
- contain before it is reported.
269
+ - `threshold` (default `5`) — the number of guards on one value at which a
270
+ single chain is reported.
270
271
  - `guards` (default: the `ts-data-forge` narrowing helpers — `hasKey`,
271
272
  `isRecord`, `isString`, `isNumber`, `isBoolean`, `isBigint`, `isSymbol`,
272
273
  `isArray`, `isNonEmpty`, `isNonNullish`, `isNotNull`, `isNotUndefined`,
@@ -1 +1 @@
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,CAkD9D,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
+ {"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"}
@@ -29,8 +29,9 @@ export const buildCalleeResolver = (importDeclarations) => {
29
29
  .filter((specifier) => specifier.type === AST_NODE_TYPES.ImportNamespaceSpecifier)
30
30
  .map((specifier) => specifier.local.name));
31
31
  const localToCanonical = new Map(specifiers.flatMap((specifier) => {
32
- if (specifier.type !== AST_NODE_TYPES.ImportSpecifier)
32
+ if (specifier.type !== AST_NODE_TYPES.ImportSpecifier) {
33
33
  return [];
34
+ }
34
35
  const importedName = specifier.imported.type === AST_NODE_TYPES.Identifier
35
36
  ? specifier.imported.name
36
37
  : specifier.imported.value;
@@ -1 +1 @@
1
- {"version":3,"file":"import-utils.mjs","sourceRoot":"","sources":["../../src/rules/import-utils.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAGf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAarD,qEAAqE;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAAyB,EACc,EAAE,CACzC,OAAO,CAAC,IAAI,CAAC,MAAM,CACjB,CAAC,IAAI,EAAsC,EAAE,CAC3C,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,iBAAiB;IAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,kBAAkB,CAC3C,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,kBAAyD,EACzD,YAAoB,EACA,EAAE,CACtB,kBAAkB;KACf,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC;KAChD,IAAI,CACH,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;IACjD,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;QACpD,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI;QACzB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,YAAY,CACjD,EAAE,KAAK,CAAC,IAAI,CAAC;AAElB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,kBAAyD,EACM,EAAE;IACjE,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAC3C,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,CACxC,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,UAAU;SACP,MAAM,CACL,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,IAAI,KAAK,cAAc,CAAC,wBAAwB,CAC7D;SACA,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAC5C,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC/B,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QAEjE,MAAM,YAAY,GAChB,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;YACnD,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI;YACzB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAE/B,OAAO,OAAO,YAAY,KAAK,QAAQ;YACrC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAU,CAAC;YACjD,CAAC,CAAC,EAAE,CAAC;IACT,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAExD,OAAO,aAAa,KAAK,SAAS;gBAChC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QAClE,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;YACpD,CAAC,MAAM,CAAC,QAAQ;YAChB,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;YAChD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;YAClD,CAAC,CAAC;gBACE,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;gBACnC,YAAY,EAAE,MAAM,CAAC,QAAQ;gBAC7B,WAAW,EAAE,IAAI;aAClB;YACH,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,UAA+B,EAC/B,IAAmB,EACnB,IAAY,EACH,EAAE;IACX,KACE,IAAI,SAAS,GAAgC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EACtE,SAAS,KAAK,IAAI,EAClB,SAAS,GAAG,SAAS,CAAC,KAAK,EAC3B,CAAC;QACD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzC,sEAAsE;QACtE,yEAAyE;QACzE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAAyB,EACzB,OAAyB,EACzB,KAAwB,EACK,EAAE,CAC/B,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;IAChB,CAAC,CAAE,EAAY;IACf,CAAC,CAAE;QACC,KAAK,CAAC,gBAAgB,CACpB,OAAO,EACP,KAAK;aACF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,IAAI,YAAY,kBAAkB,MAAM,CAAC;aACnE,IAAI,CAAC,EAAE,CAAC,CACZ;KACQ,CAAC;AAElB,MAAM,qBAAqB,GAAG,CAAC,IAAmB,EAAW,EAAE,CAC7D,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;IAC3C,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,sBAAsB;IACnD,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,wBAAwB,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,iBAAiB;IACrD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,kBAAkB,CAAC"}
1
+ {"version":3,"file":"import-utils.mjs","sourceRoot":"","sources":["../../src/rules/import-utils.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,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAmBlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,kBAAkB,CAAC;AAyFrC,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CAAC,UAAU,CACpE,UAAU,EACV,OAAO,CA+HC,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,EAEL,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,4 +1,5 @@
1
1
  import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
2
+ import { Arr } from 'ts-data-forge';
2
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';
3
4
  import { buildCalleeResolver, buildImportsFix, getImportedLocalName, getTsFortressImports, hasForeignBinding, } from './import-utils.mjs';
4
5
 
@@ -89,12 +90,14 @@ export const preferCanonicalLengthConstrainedType = {
89
90
  return {
90
91
  CallExpression: (node) => {
91
92
  const resolved = resolveCallee(node.callee);
92
- if (resolved === undefined)
93
+ if (resolved === undefined) {
93
94
  return;
95
+ }
94
96
  const rewrite = REWRITES.find((candidate) => candidate.from === resolved.canonicalName &&
95
97
  matchesRewrite(node, candidate));
96
- if (rewrite === undefined)
98
+ if (rewrite === undefined) {
97
99
  return;
100
+ }
98
101
 
99
102
 
100
103
  if (resolved.isNamespace) {
@@ -123,14 +126,15 @@ export const preferCanonicalLengthConstrainedType = {
123
126
  },
124
127
  'Program:exit': () => {
125
128
  const reportable = mut_matches.filter((match) => match.localName !== undefined);
126
- const namesNeedingImport = Array.from(new Set(reportable
129
+ const namesNeedingImport = Arr.uniq(reportable
127
130
  .filter((match) => match.needsImport)
128
- .map((match) => match.rewrite.to)));
131
+ .map((match) => match.rewrite.to));
129
132
 
130
133
  const importFixIndex = reportable.findIndex((match) => match.needsImport);
131
134
  for (const [index, { node, propertyNode, rewrite, localName },] of reportable.entries()) {
132
- if (localName === undefined)
135
+ if (localName === undefined) {
133
136
  continue;
137
+ }
134
138
  context.report({
135
139
  node,
136
140
  messageId: 'useCanonicalType',
@@ -162,7 +166,7 @@ const matchesRewrite = (node, rewrite) => {
162
166
  const args = node.arguments;
163
167
  const boundCount = rewrite.bounds.length;
164
168
  if (args.length < boundCount + 1 ||
165
- args.length > boundCount + 2 ||
169
+ boundCount + 2 < args.length ||
166
170
 
167
171
 
168
172
  node.typeArguments !== undefined ||
@@ -173,8 +177,9 @@ const matchesRewrite = (node, rewrite) => {
173
177
  const [first] = bounds;
174
178
  const boundsMatch = rewrite.bounds.every((matcher, index) => {
175
179
  const value = bounds[index];
176
- if (value === undefined)
180
+ if (value === undefined) {
177
181
  return false;
182
+ }
178
183
  switch (matcher) {
179
184
  case 'anyLength':
180
185
  return value <= STRUCTURAL_PREFIX_CAP;
@@ -208,9 +213,9 @@ const dropBoundsFix = (fixer, node, rewrite) => rewrite.bounds.flatMap((_, index
208
213
 
209
214
  const dropped = node.arguments[index];
210
215
  const next = node.arguments[index + 1];
211
- if (rewrite.keep.includes(index))
212
- return [];
213
- return dropped === undefined || next === undefined
216
+ return dropped === undefined ||
217
+ next === undefined ||
218
+ rewrite.keep.includes(index)
214
219
  ? []
215
220
  : [fixer.removeRange([dropped.range[0], next.range[0]])];
216
221
  });
@@ -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,CAqGjE,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,CAuGjE,CAAC"}
@@ -54,8 +54,9 @@ export const preferNamespaceImport = {
54
54
  'Program:exit': () => {
55
55
  const declarations = getTsFortressImports(sourceCode.ast);
56
56
  const reported = declarations.filter((declaration) => !isNamespaceOnly(declaration));
57
- if (!Arr.isNonEmpty(reported))
57
+ if (!Arr.isNonEmpty(reported)) {
58
58
  return;
59
+ }
59
60
  const namespaceSpecifiers = declarations
60
61
  .flatMap((declaration) => declaration.specifiers)
61
62
  .filter(isNamespaceSpecifier);
@@ -125,20 +126,23 @@ const buildFixPlan = (sourceCode, reported, namespaceSpecifiers, namespaceName)
125
126
 
126
127
 
127
128
 
128
- if (!typeOnly && reused?.parent.importKind === 'type')
129
+ if (!typeOnly && reused?.parent.importKind === 'type') {
129
130
  return undefined;
131
+ }
130
132
  const mut_rewrites = [];
131
133
  for (const declaration of offending) {
132
134
  const variables = sourceCode.getDeclaredVariables(declaration);
133
135
  for (const specifier of declaration.specifiers) {
134
136
  const member = resolveMember(specifier);
135
137
  const variable = variables.find((candidate) => candidate.defs.some((def) => def.node === specifier));
136
- if (member === undefined || variable === undefined)
138
+ if (member === undefined || variable === undefined) {
137
139
  return undefined;
140
+ }
138
141
  for (const reference of variable.references) {
139
142
  const rewrite = buildReferenceRewrite(sourceCode, reference.identifier, namespaceName, member.name);
140
- if (rewrite === undefined)
143
+ if (rewrite === undefined) {
141
144
  return undefined;
145
+ }
142
146
  mut_rewrites.push(rewrite);
143
147
  }
144
148
  }
@@ -188,8 +192,9 @@ const buildReferenceRewrite = (sourceCode, identifier, namespaceName, memberName
188
192
  const parent = identifier.parent;
189
193
 
190
194
 
191
- if (parent.type === AST_NODE_TYPES.ExportSpecifier)
195
+ if (parent.type === AST_NODE_TYPES.ExportSpecifier) {
192
196
  return undefined;
197
+ }
193
198
  return {
194
199
  identifier,
195
200
 
@@ -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 +1 @@
1
- {"version":3,"file":"prefer-schema-over-guard-chain.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-schema-over-guard-chain.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAGlC,KAAK,OAAO,GAAG,SAAS;IACtB,QAAQ,CAAC;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KAC5B,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,UAAU,GAAG,cAAc,CAAC;AAmDjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,UAAU,CAC1D,UAAU,EACV,OAAO,CA2GC,CAAC"}
1
+ {"version":3,"file":"prefer-schema-over-guard-chain.d.mts","sourceRoot":"","sources":["../../src/rules/prefer-schema-over-guard-chain.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAGlC,KAAK,OAAO,GAAG,SAAS;IACtB,QAAQ,CAAC;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KAC5B,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,UAAU,GAAG,cAAc,CAAC;AAmDjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,UAAU,CAC1D,UAAU,EACV,OAAO,CAqHC,CAAC"}
@@ -138,8 +138,9 @@ export const preferSchemaOverGuardChain = {
138
138
  operand.operator === '!'
139
139
  ? operand.argument
140
140
  : operand;
141
- if (call.type !== AST_NODE_TYPES.CallExpression)
141
+ if (call.type !== AST_NODE_TYPES.CallExpression) {
142
142
  return undefined;
143
+ }
143
144
  const name = call.callee.type === AST_NODE_TYPES.Identifier
144
145
  ? call.callee.name
145
146
  : call.callee.type === AST_NODE_TYPES.MemberExpression &&
@@ -147,15 +148,17 @@ export const preferSchemaOverGuardChain = {
147
148
  call.callee.property.type === AST_NODE_TYPES.Identifier
148
149
  ? call.callee.property.name
149
150
  : undefined;
150
- if (name === undefined || !guards.includes(name))
151
+ if (name === undefined || !guards.includes(name)) {
151
152
  return undefined;
153
+ }
152
154
  const [subject] = call.arguments;
153
155
  return subject === undefined ? undefined : rootIdentifierOf(subject);
154
156
  };
155
157
  return {
156
158
  LogicalExpression: (node) => {
157
- if (node.operator === '??')
159
+ if (node.operator === '??') {
158
160
  return;
161
+ }
159
162
 
160
163
 
161
164
  if (node.parent.type === AST_NODE_TYPES.LogicalExpression &&
@@ -165,13 +168,15 @@ export const preferSchemaOverGuardChain = {
165
168
  const mut_counts = new Map();
166
169
  for (const operand of operandsOf(node)) {
167
170
  const name = guardedName(operand);
168
- if (name === undefined)
171
+ if (name === undefined) {
169
172
  continue;
173
+ }
170
174
  mut_counts.set(name, (mut_counts.get(name) ?? 0) + 1);
171
175
  }
172
176
  for (const [name, count] of mut_counts) {
173
- if (count < threshold)
177
+ if (count < threshold) {
174
178
  continue;
179
+ }
175
180
  context.report({
176
181
  node,
177
182
  messageId: 'preferSchema',
@@ -197,8 +202,9 @@ node) => [node.left, node.right].flatMap((side) => side.type === AST_NODE_TYPES.
197
202
  const rootIdentifierOf = (
198
203
 
199
204
  node) => {
200
- if (node.type === AST_NODE_TYPES.Identifier)
205
+ if (node.type === AST_NODE_TYPES.Identifier) {
201
206
  return node.name;
207
+ }
202
208
  if (node.type === AST_NODE_TYPES.MemberExpression) {
203
209
  return rootIdentifierOf(node.object);
204
210
  }
@@ -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.2.2",
3
+ "version": "1.2.4",
4
4
  "private": false,
5
5
  "description": "ESLint rules that steer schema definitions toward ts-fortress idioms.",
6
6
  "keywords": [
@@ -35,21 +35,22 @@
35
35
  "LICENSE"
36
36
  ],
37
37
  "dependencies": {
38
- "@typescript-eslint/utils": "8.69.0",
39
- "ts-data-forge": "~14.7.0",
38
+ "@typescript-eslint/utils": "8.70.1",
39
+ "ts-data-forge": "~14.7.1",
40
40
  "ts-type-forge": "~9.2.2"
41
41
  },
42
42
  "devDependencies": {
43
- "@typescript-eslint/parser": "8.69.0",
44
- "@typescript-eslint/rule-tester": "8.69.0",
43
+ "@typescript-eslint/parser": "8.70.1",
44
+ "@typescript-eslint/rule-tester": "8.70.1",
45
45
  "dedent": "1.7.2",
46
- "eslint-config-typed": "5.11.6",
47
- "eslint-plugin-ts-data-forge": "0.7.3",
48
- "eslint-plugin-ts-type-forge": "0.8.3",
49
- "prettier": "3.9.6",
46
+ "eslint-config-typed": "5.16.0",
47
+ "eslint-plugin-ts-data-forge": "0.8.2",
48
+ "eslint-plugin-ts-type-forge": "0.8.5",
49
+ "prettier": "3.9.9",
50
50
  "prettier-plugin-organize-imports": "4.3.0",
51
51
  "prettier-plugin-packagejson": "3.0.2",
52
- "ts-repo-utils": "10.6.1"
52
+ "ts-fortress": "12.1.3",
53
+ "ts-repo-utils": "10.7.1"
53
54
  },
54
55
  "peerDependencies": {
55
56
  "eslint": ">=9.0.0",
@@ -65,20 +66,23 @@
65
66
  },
66
67
  "scripts": {
67
68
  "build": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/build.mts",
68
- "build:min": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/build.mts --skip-check",
69
69
  "check:ext": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/check-ext.mts",
70
- "fmt": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-repo-utils/src/cmd/format-uncommitted.mts --cwd .",
71
- "fmt:diff": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-repo-utils/src/cmd/format-diff-from.mts origin/main --cwd .",
72
- "fmt:full": "pnpm run z:prettier .",
70
+ "check:lint": "eslint .",
71
+ "check:test": "pnpm run z:vitest run",
72
+ "check:test:cov": "pnpm run z:vitest run --coverage",
73
+ "check:types": "node ../../node_modules/typescript-native/bin/tsc --noEmit",
74
+ "doc": "pnpm run gen:readme",
75
+ "fix:fmt": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-repo-utils/src/cmd/format-uncommitted.mts --cwd .",
76
+ "fix:fmt:diff": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ../../libs/ts-repo-utils/src/cmd/format-diff-from.mts origin/main --cwd .",
77
+ "fix:fmt:full": "pnpm run z:prettier .",
78
+ "fix:lint": "eslint . --fix",
79
+ "fmt": "pnpm run fix:fmt",
80
+ "gen": "run-s gen:rule-types gen:readme",
81
+ "gen:readme": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/embed-examples.mts",
73
82
  "gen:rule-types": "tsx --tsconfig ../../tools/configs/tsconfig.tsx.json ./scripts/cmd/gen-rule-types.mts",
74
- "lint": "eslint .",
75
- "lint:fix": "eslint . --fix",
76
- "test": "pnpm run z:vitest run",
77
- "test:cov": "pnpm run z:vitest run --coverage",
78
- "testw": "pnpm run z:vitest",
79
- "tsc": "node ../../node_modules/typescript-native/bin/tsc --noEmit",
80
- "tscw": "node ../../node_modules/typescript-native/bin/tsc --noEmit --watch -p ./tsconfig.json",
81
- "type-check": "node ../../node_modules/typescript-native/bin/tsc --noEmit",
83
+ "test": "pnpm run check:test",
84
+ "watch:test": "pnpm run z:vitest",
85
+ "watch:types": "node ../../node_modules/typescript-native/bin/tsc --noEmit --watch -p ./tsconfig.json",
82
86
  "z:prettier": "prettier --config ../../.prettierrc --ignore-path ../../.prettierignore --ignore-path ../../.gitignore --ignore-unknown --no-error-on-unmatched-pattern --write",
83
87
  "z:vitest": "vitest --config ./configs/vitest.config.mts"
84
88
  }
@@ -72,7 +72,9 @@ export const buildCalleeResolver = (
72
72
 
73
73
  const localToCanonical = new Map<string, string>(
74
74
  specifiers.flatMap((specifier) => {
75
- if (specifier.type !== AST_NODE_TYPES.ImportSpecifier) return [];
75
+ if (specifier.type !== AST_NODE_TYPES.ImportSpecifier) {
76
+ return [];
77
+ }
76
78
 
77
79
  const importedName =
78
80
  specifier.imported.type === AST_NODE_TYPES.Identifier
@@ -3,6 +3,7 @@ import {
3
3
  type TSESLint,
4
4
  type TSESTree,
5
5
  } from '@typescript-eslint/utils';
6
+ import { Arr } from 'ts-data-forge';
6
7
  import {
7
8
  ARRAY_FN,
8
9
  BOUNDED_LENGTH_TUPLE_FN,
@@ -153,7 +154,9 @@ export const preferCanonicalLengthConstrainedType: TSESLint.RuleModule<
153
154
  CallExpression: (node) => {
154
155
  const resolved = resolveCallee(node.callee);
155
156
 
156
- if (resolved === undefined) return;
157
+ if (resolved === undefined) {
158
+ return;
159
+ }
157
160
 
158
161
  const rewrite = REWRITES.find(
159
162
  (candidate) =>
@@ -161,7 +164,9 @@ export const preferCanonicalLengthConstrainedType: TSESLint.RuleModule<
161
164
  matchesRewrite(node, candidate),
162
165
  );
163
166
 
164
- if (rewrite === undefined) return;
167
+ if (rewrite === undefined) {
168
+ return;
169
+ }
165
170
 
166
171
  // A namespace call (`t.maxLengthTuple(...)`) only swaps the property
167
172
  // name, so it never needs a binding of its own.
@@ -201,12 +206,10 @@ export const preferCanonicalLengthConstrainedType: TSESLint.RuleModule<
201
206
  (match) => match.localName !== undefined,
202
207
  );
203
208
 
204
- const namesNeedingImport = Array.from(
205
- new Set(
206
- reportable
207
- .filter((match) => match.needsImport)
208
- .map((match) => match.rewrite.to),
209
- ),
209
+ const namesNeedingImport = Arr.uniq(
210
+ reportable
211
+ .filter((match) => match.needsImport)
212
+ .map((match) => match.rewrite.to),
210
213
  );
211
214
 
212
215
  // Every missing import rides on a single report; see `buildImportsFix`.
@@ -218,7 +221,9 @@ export const preferCanonicalLengthConstrainedType: TSESLint.RuleModule<
218
221
  index,
219
222
  { node, propertyNode, rewrite, localName },
220
223
  ] of reportable.entries()) {
221
- if (localName === undefined) continue;
224
+ if (localName === undefined) {
225
+ continue;
226
+ }
222
227
 
223
228
  context.report({
224
229
  node,
@@ -259,7 +264,7 @@ const matchesRewrite = (
259
264
 
260
265
  if (
261
266
  args.length < boundCount + 1 ||
262
- args.length > boundCount + 2 ||
267
+ boundCount + 2 < args.length ||
263
268
  // Explicit type arguments pin the bound independently of the literal, so
264
269
  // dropping or moving the literal could change the resulting type.
265
270
  node.typeArguments !== undefined ||
@@ -275,7 +280,9 @@ const matchesRewrite = (
275
280
  const boundsMatch = rewrite.bounds.every((matcher, index) => {
276
281
  const value = bounds[index];
277
282
 
278
- if (value === undefined) return false;
283
+ if (value === undefined) {
284
+ return false;
285
+ }
279
286
 
280
287
  switch (matcher) {
281
288
  case 'anyLength':
@@ -329,9 +336,9 @@ const dropBoundsFix = (
329
336
 
330
337
  const next = node.arguments[index + 1];
331
338
 
332
- if (rewrite.keep.includes(index)) return [];
333
-
334
- return dropped === undefined || next === undefined
339
+ return dropped === undefined ||
340
+ next === undefined ||
341
+ rewrite.keep.includes(index)
335
342
  ? []
336
343
  : [fixer.removeRange([dropped.range[0], next.range[0]])];
337
344
  });
@@ -97,7 +97,9 @@ export const preferNamespaceImport: TSESLint.RuleModule<MessageIds, Options> = {
97
97
  (declaration) => !isNamespaceOnly(declaration),
98
98
  );
99
99
 
100
- if (!Arr.isNonEmpty(reported)) return;
100
+ if (!Arr.isNonEmpty(reported)) {
101
+ return;
102
+ }
101
103
 
102
104
  const namespaceSpecifiers = declarations
103
105
  .flatMap((declaration) => declaration.specifiers)
@@ -210,7 +212,9 @@ const buildFixPlan = (
210
212
  // `import type * as t` cannot carry a value reference, so a value import
211
213
  // does not merge into one; a namespace import of its own would be a second
212
214
  // one, which the check above rules out.
213
- if (!typeOnly && reused?.parent.importKind === 'type') return undefined;
215
+ if (!typeOnly && reused?.parent.importKind === 'type') {
216
+ return undefined;
217
+ }
214
218
 
215
219
  const mut_rewrites: ReferenceRewrite[] = [];
216
220
 
@@ -224,7 +228,9 @@ const buildFixPlan = (
224
228
  candidate.defs.some((def) => def.node === specifier),
225
229
  );
226
230
 
227
- if (member === undefined || variable === undefined) return undefined;
231
+ if (member === undefined || variable === undefined) {
232
+ return undefined;
233
+ }
228
234
 
229
235
  for (const reference of variable.references) {
230
236
  const rewrite = buildReferenceRewrite(
@@ -234,7 +240,9 @@ const buildFixPlan = (
234
240
  member.name,
235
241
  );
236
242
 
237
- if (rewrite === undefined) return undefined;
243
+ if (rewrite === undefined) {
244
+ return undefined;
245
+ }
238
246
 
239
247
  mut_rewrites.push(rewrite);
240
248
  }
@@ -305,7 +313,9 @@ const buildReferenceRewrite = (
305
313
 
306
314
  // `export { string }` names the binding rather than using it, and a member
307
315
  // access is not a name — such a file has to be rewritten by hand.
308
- if (parent.type === AST_NODE_TYPES.ExportSpecifier) return undefined;
316
+ if (parent.type === AST_NODE_TYPES.ExportSpecifier) {
317
+ return undefined;
318
+ }
309
319
 
310
320
  return {
311
321
  identifier,
@@ -163,7 +163,9 @@ export const preferSchemaOverGuardChain: TSESLint.RuleModule<
163
163
  ? operand.argument
164
164
  : operand;
165
165
 
166
- if (call.type !== AST_NODE_TYPES.CallExpression) return undefined;
166
+ if (call.type !== AST_NODE_TYPES.CallExpression) {
167
+ return undefined;
168
+ }
167
169
 
168
170
  const name =
169
171
  call.callee.type === AST_NODE_TYPES.Identifier
@@ -174,7 +176,9 @@ export const preferSchemaOverGuardChain: TSESLint.RuleModule<
174
176
  ? call.callee.property.name
175
177
  : undefined;
176
178
 
177
- if (name === undefined || !guards.includes(name)) return undefined;
179
+ if (name === undefined || !guards.includes(name)) {
180
+ return undefined;
181
+ }
178
182
 
179
183
  const [subject] = call.arguments;
180
184
 
@@ -183,7 +187,9 @@ export const preferSchemaOverGuardChain: TSESLint.RuleModule<
183
187
 
184
188
  return {
185
189
  LogicalExpression: (node) => {
186
- if (node.operator === '??') return;
190
+ if (node.operator === '??') {
191
+ return;
192
+ }
187
193
 
188
194
  // Only the outermost node of a chain, so that `a && b && c` is judged
189
195
  // once as three operands rather than three times as nested pairs.
@@ -199,13 +205,17 @@ export const preferSchemaOverGuardChain: TSESLint.RuleModule<
199
205
  for (const operand of operandsOf(node)) {
200
206
  const name = guardedName(operand);
201
207
 
202
- if (name === undefined) continue;
208
+ if (name === undefined) {
209
+ continue;
210
+ }
203
211
 
204
212
  mut_counts.set(name, (mut_counts.get(name) ?? 0) + 1);
205
213
  }
206
214
 
207
215
  for (const [name, count] of mut_counts) {
208
- if (count < threshold) continue;
216
+ if (count < threshold) {
217
+ continue;
218
+ }
209
219
 
210
220
  context.report({
211
221
  node,
@@ -239,7 +249,9 @@ const rootIdentifierOf = (
239
249
  // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
240
250
  node: TSESTree.Node,
241
251
  ): string | undefined => {
242
- if (node.type === AST_NODE_TYPES.Identifier) return node.name;
252
+ if (node.type === AST_NODE_TYPES.Identifier) {
253
+ return node.name;
254
+ }
243
255
 
244
256
  if (node.type === AST_NODE_TYPES.MemberExpression) {
245
257
  return rootIdentifierOf(node.object);