eslint-plugin-ts-data-forge 0.10.8 → 0.10.9

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.
@@ -186,8 +186,13 @@ checker,
186
186
 
187
187
  type) => {
188
188
  const resolved = resolveConstraint(checker, type);
189
- return resolved.isUnion()
190
- ? resolved.types.every((t) => isPrimitiveType(checker, t))
189
+ if (resolved.isUnion()) {
190
+ return resolved.types.every((t) => isPrimitiveType(checker, t));
191
+ }
192
+
193
+
194
+ return resolved.isIntersection()
195
+ ? resolved.types.some((t) => isPrimitiveType(checker, t))
191
196
  : (resolved.flags & primitiveTypeFlags) !== 0;
192
197
  };
193
198
 
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-arr-uniq.mjs","sourceRoot":"","sources":["../../src/rules/prefer-arr-uniq.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,QAAQ,GAGT,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM1D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAA6C;IACrE,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,gGAAgG;SACnG;QACD,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,IAAI;QACpB,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,UAAU,EAAE,4DAA4D;YACxE,cAAc,EACZ,kGAAkG;SACrG;QACD,cAAc,EAAE,EAAE;KACnB;IAED,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QAClB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAEtC,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,CAAC;QAE3C,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QAEpD,MAAM,qBAAqB,GAAG,QAAQ,EAAE,qBAAqB,CAAC;QAE9D,4EAA4E;QAC5E,qEAAqE;QACrE,IAAI,OAAO,KAAK,SAAS,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;YACjE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,SAAS,GAAG;QAChB,8EAA8E;QAC9E,IAAmB,EACE,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE1D,MAAM,WAAW,GAIX,EAAE,CAAC;QAET,MAAM,KAAK,GAAG;QACZ,8EAA8E;QAC9E,IAAwD;QACxD,8EAA8E;QAC9E,OAAsB,EAChB,EAAE;YACR,MAAM,eAAe,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAEnD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;gBACvC,OAAO;YACT,CAAC;YAED,2DAA2D;YAC3D,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC,KAAK,CAC/D,CAAC,KAAK,EAAE,EAAE;gBACR,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;gBAEhC,OAAO,CACL,MAAM,KAAK,SAAS;oBACpB,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CACjE,CAAC;YACJ,CAAC,CACF,CAAC;YAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI;gBACJ,eAAe;gBACf,WAAW,EAAE,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC;aACvE,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvB,0BAA0B;gBAC1B,IACE,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;oBACpD,IAAI,CAAC,MAAM,CAAC,QAAQ;oBACpB,IAAI,CAAC,MAAM,CAAC,QAAQ;oBACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;oBACrD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;oBACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;oBACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM;oBACpC,iEAAiE;oBACjE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAC1C,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;oBACzC,OAAO;gBACT,CAAC;gBAED,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC;YACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,mBAAmB;gBACnB,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9C,OAAO;gBACT,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAEjC,IAAI,OAAO,EAAE,IAAI,KAAK,cAAc,CAAC,aAAa,EAAE,CAAC;oBACnD,OAAO;gBACT,CAAC;gBAED,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;YACD,cAAc,EAAE,GAAG,EAAE;gBACnB,MAAM,KAAK,GAAG,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAEpD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;oBAChC,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBAE5D,MAAM,YAAY,GAAG,eAAe,CAClC,UAAU,EACV,KAAK,CAAC,eAAe,CACtB,CAAC;oBAEF,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAE9B,MAAM,GAAG,GACP,GAAG,KAAK,SAAS;wBACf,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;4BACT,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;4BACnB,KAAK,CAAC,WAAW,CACf,KAAK,CAAC,IAAI,EACV,GAAG,GAAG,CAAC,SAAS,SAAS,YAAY,GAAG,CACzC;yBACF,CAAC;oBAER,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,SAAS,EAAW,CAAC;oBAE/C,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;wBACtB,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,SAAS,EAAE,YAAY;4BACvB,IAAI;4BACJ,GAAG;yBACJ,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,SAAS,EAAE,YAAY;4BACvB,IAAI;4BACJ,OAAO,EACL,GAAG,KAAK,IAAI;gCACV,CAAC,CAAC,EAAE;gCACJ,CAAC,CAAC;oCACE;wCACE,SAAS,EAAE,gBAAgB;wCAC3B,IAAI;wCACJ,GAAG;qCACJ;iCACF;yBACR,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACO,CAAC;AAEX;;;;GAIG;AACH,MAAM,iBAAiB,GAAG;AACxB,8EAA8E;AAC9E,OAAsB,EACW,EAAE;IACnC,+DAA+D;IAC/D,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEvC,IACE,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,aAAa;QAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;QAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK;QAC1B,IAAI,CAAC,aAAa,KAAK,SAAS;QAChC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAC1C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEnC,OAAO,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/E,CAAC,CAAC;AAEF,mFAAmF;AACnF,MAAM,QAAQ,GAAG;AACf,8EAA8E;AAC9E,UAA+B;AAC/B,8EAA8E;AAC9E,IAAmB,EACnB,IAAY,EACH,EAAE;IACX,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAExE,6EAA6E;IAC7E,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG;AACxB,8EAA8E;AAC9E,OAAuB;AACvB,8EAA8E;AAC9E,IAAa,EACJ,EAAE,CACX,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;IAC7C,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACjD,CAAC,CAAC,IAAI,CAAC;AAEX,MAAM,eAAe,GAAG;AACtB,8EAA8E;AAC9E,OAAuB;AACvB,8EAA8E;AAC9E,IAAa,EACJ,EAAE;IACX,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAElD,OAAO,QAAQ,CAAC,OAAO,EAAE;QACvB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,oBAAoB,GAAG;AAC3B,8EAA8E;AAC9E,OAAuB;AACvB,8EAA8E;AAC9E,IAAa,EACJ,EAAE;IACX,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAElD,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,6EAA6E;IAC7E,oEAAoE;IACpE,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB;IAC5C,oEAAoE;IACpE,QAA4B,CAC7B,CAAC;IAEF,oEAAoE;IACpE,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC"}
1
+ {"version":3,"file":"prefer-arr-uniq.mjs","sourceRoot":"","sources":["../../src/rules/prefer-arr-uniq.mts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-ts-data-forge",
3
- "version": "0.10.8",
3
+ "version": "0.10.9",
4
4
  "private": false,
5
5
  "description": "ESLint rules that steer code toward ts-data-forge idioms.",
6
6
  "keywords": [
@@ -35,21 +35,21 @@
35
35
  ],
36
36
  "dependencies": {
37
37
  "@typescript-eslint/utils": "^8.72.0",
38
- "eslint-rule-forge": "^0.5.0",
39
- "ts-data-forge": "14.10.2",
38
+ "eslint-rule-forge": "^0.5.1",
39
+ "ts-data-forge": "14.11.0",
40
40
  "ts-type-forge": "~9.2.2"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@typescript-eslint/parser": "8.72.0",
44
44
  "@typescript-eslint/rule-tester": "8.72.0",
45
45
  "dedent": "1.7.2",
46
- "eslint-config-typed": "7.3.1",
47
- "eslint-plugin-ts-fortress": "1.3.12",
48
- "eslint-plugin-ts-type-forge": "0.8.17",
46
+ "eslint-config-typed": "7.4.0",
47
+ "eslint-plugin-ts-fortress": "1.3.13",
48
+ "eslint-plugin-ts-type-forge": "0.8.18",
49
49
  "prettier": "3.9.10",
50
50
  "prettier-plugin-organize-imports": "4.3.0",
51
51
  "prettier-plugin-packagejson": "3.0.2",
52
- "ts-repo-utils": "10.7.1"
52
+ "ts-repo-utils": "10.7.2"
53
53
  },
54
54
  "peerDependencies": {
55
55
  "eslint": ">=9.0.0",
@@ -248,6 +248,42 @@ describe('prefer-arr-is-non-empty and the import it adds', () => {
248
248
  output: null,
249
249
  errors: [{ messageId: 'useIsNonEmpty' }],
250
250
  },
251
+ {
252
+ name: 'a type parameter of the name does not take the value',
253
+ code: dedent`
254
+ declare const xs: readonly number[];
255
+ function f<Arr>() {
256
+ return xs.length > 0;
257
+ }
258
+ `,
259
+ output: dedent`
260
+ import { Arr } from 'ts-data-forge';
261
+ declare const xs: readonly number[];
262
+ function f<Arr>() {
263
+ return Arr.isNonEmpty(xs);
264
+ }
265
+ `,
266
+ errors: [{ messageId: 'useIsNonEmpty' }],
267
+ },
268
+ {
269
+ name: 'a local type alias of the name does not take the value',
270
+ code: dedent`
271
+ declare const xs: readonly number[];
272
+ function f() {
273
+ type Arr = number;
274
+ return xs.length > 0;
275
+ }
276
+ `,
277
+ output: dedent`
278
+ import { Arr } from 'ts-data-forge';
279
+ declare const xs: readonly number[];
280
+ function f() {
281
+ type Arr = number;
282
+ return Arr.isNonEmpty(xs);
283
+ }
284
+ `,
285
+ errors: [{ messageId: 'useIsNonEmpty' }],
286
+ },
251
287
  {
252
288
  name: 'each fix adds the import it needs, one per pass',
253
289
  code: dedent`
@@ -264,8 +264,14 @@ const isPrimitiveType = (
264
264
  ): boolean => {
265
265
  const resolved = resolveConstraint(checker, type);
266
266
 
267
- return resolved.isUnion()
268
- ? resolved.types.every((t) => isPrimitiveType(checker, t))
267
+ if (resolved.isUnion()) {
268
+ return resolved.types.every((t) => isPrimitiveType(checker, t));
269
+ }
270
+
271
+ // A branded primitive (`Int`, `string & Readonly<{ brand: 'Id' }>`): one
272
+ // primitive member makes the whole a primitive, as at the array level below.
273
+ return resolved.isIntersection()
274
+ ? resolved.types.some((t) => isPrimitiveType(checker, t))
269
275
  : (resolved.flags & primitiveTypeFlags) !== 0;
270
276
  };
271
277
 
@@ -36,6 +36,13 @@ describe('prefer-arr-uniq', () => {
36
36
  const zs = [...new Set(xs)];
37
37
  `,
38
38
  },
39
+ {
40
+ name: 'ignores an array of intersections of objects',
41
+ code: dedent`
42
+ declare const xs: readonly (Readonly<{ a: 1 }> & Readonly<{ b: 2 }>)[];
43
+ const ys = Array.from(new Set(xs));
44
+ `,
45
+ },
39
46
  {
40
47
  name: 'ignores an array of unions including objects',
41
48
  code: dedent`
@@ -265,6 +272,36 @@ describe('prefer-arr-uniq', () => {
265
272
  `,
266
273
  errors: [{ messageId: 'useArrUniq' }],
267
274
  },
275
+ {
276
+ name: 'accepts an array of branded numbers',
277
+ code: dedent`
278
+ type Int = number & Readonly<{ 'Int': true }>;
279
+ declare const xs: readonly Int[];
280
+ const ys: readonly Int[] = Array.from(new Set(xs));
281
+ `,
282
+ output: dedent`
283
+ import { Arr } from 'ts-data-forge';
284
+ type Int = number & Readonly<{ 'Int': true }>;
285
+ declare const xs: readonly Int[];
286
+ const ys: readonly Int[] = Arr.uniq(xs);
287
+ `,
288
+ errors: [{ messageId: 'useArrUniq' }],
289
+ },
290
+ {
291
+ name: 'accepts an array of branded strings',
292
+ code: dedent`
293
+ type Id = string & Readonly<{ brand: 'Id' }>;
294
+ declare const xs: readonly Id[];
295
+ const ys: readonly Id[] = [...new Set(xs)];
296
+ `,
297
+ output: dedent`
298
+ import { Arr } from 'ts-data-forge';
299
+ type Id = string & Readonly<{ brand: 'Id' }>;
300
+ declare const xs: readonly Id[];
301
+ const ys: readonly Id[] = Arr.uniq(xs);
302
+ `,
303
+ errors: [{ messageId: 'useArrUniq' }],
304
+ },
268
305
  {
269
306
  name: 'accepts a readonly array parameter',
270
307
  code: dedent`