ts-codemod-lib 3.3.3 → 3.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.
@@ -758,6 +758,7 @@ node, readonlyContext, options) => {
758
758
 
759
759
 
760
760
 
761
+
761
762
  const transformUnionTypeNode = (
762
763
 
763
764
  node, readonlyContext, options) => {
@@ -822,7 +823,11 @@ node, readonlyContext, options, operator) => {
822
823
  ])
823
824
  : undefined,
824
825
  mapNullable(others, (a) => [
825
- a.nodes.map((n) => wrapWithParentheses(n.getFullText())),
826
+
827
+
828
+ operator === '|'
829
+ ? mergeDeepReadonlyUnionMembers(a.nodes, options.DeepReadonly.typeName)
830
+ : a.nodes.map((n) => wrapWithParentheses(n.getFullText())),
826
831
  a.firstPosition,
827
832
  ]),
828
833
  ]
@@ -848,6 +853,74 @@ node, readonlyContext, options, operator) => {
848
853
 
849
854
  options.replaceNode(node, unionToString({ types: sorted, op: operator, wrapWithReadonly: false }));
850
855
  };
856
+
857
+
858
+
859
+
860
+
861
+
862
+
863
+
864
+
865
+
866
+
867
+
868
+
869
+
870
+
871
+
872
+
873
+
874
+
875
+
876
+
877
+
878
+
879
+
880
+
881
+
882
+ const mergeDeepReadonlyUnionMembers = (
883
+
884
+ nodes, deepReadonlyTypeName) => {
885
+ const typeArgsOfDeepReadonly = nodes.map((n) => getDeepReadonlyTypeArg(n, deepReadonlyTypeName));
886
+ const typeArgs = typeArgsOfDeepReadonly.filter((t) => t !== undefined);
887
+ if (typeArgs.length < 2) {
888
+ return nodes.map((n) => wrapWithParentheses(n.getFullText()));
889
+ }
890
+ const firstIndex = typeArgsOfDeepReadonly.findIndex((t) => t !== undefined);
891
+ const merged = unionToString({
892
+ types: typeArgs.map((t_) => {
893
+ const t = removeParentheses(t_);
894
+
895
+
896
+ return t.isKind(tsm.SyntaxKind.UnionType)
897
+ ? t.getFullText()
898
+ : wrapWithParentheses(t.getFullText());
899
+ }),
900
+ op: '|',
901
+ wrapWithReadonly: deepReadonlyTypeName,
902
+ });
903
+ return nodes.flatMap((n, i) => typeArgsOfDeepReadonly[i] === undefined
904
+ ? [wrapWithParentheses(n.getFullText())]
905
+ : i === firstIndex
906
+ ? [merged]
907
+ : []);
908
+ };
909
+
910
+ const getDeepReadonlyTypeArg = (
911
+
912
+ node, deepReadonlyTypeName) => {
913
+ if (!node.isKind(tsm.SyntaxKind.TypeReference)) {
914
+ return undefined;
915
+ }
916
+ const typeName = node.getTypeName();
917
+ const typeArguments = node.getTypeArguments();
918
+ return typeName.isKind(tsm.SyntaxKind.Identifier) &&
919
+ typeName.getText() === deepReadonlyTypeName &&
920
+ Arr.isFixedLengthArray(1, typeArguments)
921
+ ? typeArguments[0]
922
+ : undefined;
923
+ };
851
924
  const unionToString = ({ types: typesRaw, op, wrapWithReadonly, }) => {
852
925
 
853
926
 
@@ -1 +1 @@
1
- {"version":3,"file":"convert-to-readonly.mjs","sourceRoot":"","sources":["../../../src/functions/ast-transformers/convert-to-readonly.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convert-to-readonly.mjs","sourceRoot":"","sources":["../../../src/functions/ast-transformers/convert-to-readonly.mts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-codemod-lib",
3
- "version": "3.3.3",
3
+ "version": "3.4.0",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "typescript",
@@ -43,39 +43,39 @@
43
43
  "ts-type-forge": "^9.2.2"
44
44
  },
45
45
  "devDependencies": {
46
- "@types/node": "26.6.1",
47
- "@vitest/browser-playwright": "5.0.1",
48
- "@vitest/coverage-v8": "5.0.1",
49
- "@vitest/ui": "5.0.1",
50
- "cspell": "10.3.3",
46
+ "@types/node": "26.6.3",
47
+ "@vitest/browser-playwright": "5.0.2",
48
+ "@vitest/coverage-v8": "5.0.2",
49
+ "@vitest/ui": "5.0.2",
50
+ "cspell": "10.3.5",
51
51
  "dedent": "1.7.2",
52
52
  "esbuild": "0.28.2",
53
- "eslint": "10.10.0",
54
- "eslint-config-typed": "5.14.0",
55
- "eslint-plugin-ts-data-forge": "0.8.1",
56
- "eslint-plugin-ts-fortress": "1.2.3",
57
- "eslint-plugin-ts-type-forge": "0.8.4",
53
+ "eslint": "10.11.0",
54
+ "eslint-config-typed": "5.16.0",
55
+ "eslint-plugin-ts-data-forge": "0.8.2",
56
+ "eslint-plugin-ts-fortress": "1.2.4",
57
+ "eslint-plugin-ts-type-forge": "0.8.5",
58
58
  "jiti": "2.7.0",
59
59
  "npm-run-all2": "9.0.3",
60
60
  "playwright": "1.63.0",
61
- "prettier": "3.9.7",
61
+ "prettier": "3.9.9",
62
62
  "prettier-plugin-organize-imports": "4.3.0",
63
63
  "prettier-plugin-packagejson": "3.0.2",
64
64
  "ts-repo-utils": "10.7.1",
65
- "tsx": "4.23.13",
65
+ "tsx": "4.23.15",
66
66
  "typedoc": "0.28.20",
67
67
  "typedoc-github-theme": "0.4.0",
68
68
  "typescript": "6.0.3",
69
69
  "typescript-native": "npm:typescript@7.0.2",
70
- "vite": "8.3.0",
71
- "vitest": "5.0.1"
70
+ "vite": "8.3.1",
71
+ "vitest": "5.0.2"
72
72
  },
73
73
  "engines": {
74
74
  "node": ">=22.22.2",
75
75
  "pnpm": ">=9.0.0"
76
76
  },
77
77
  "volta": {
78
- "node": "26.9.0"
78
+ "node": "26.10.0"
79
79
  },
80
80
  "publishConfig": {
81
81
  "access": "public",
@@ -1303,6 +1303,7 @@ const transformIntersectionTypeNode = (
1303
1303
  /**
1304
1304
  * - `tr(A | B) |-> tr(A) | tr(B)`
1305
1305
  * - `tr(Readonly<A> | Readonly<B>) |-> Readonly<tr(A) | tr(B)>`
1306
+ * - `tr(DeepReadonly<A> | DeepReadonly<B>) |-> DeepReadonly<tr(A) | tr(B)>`
1306
1307
  */
1307
1308
  const transformUnionTypeNode = (
1308
1309
  // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
@@ -1416,7 +1417,14 @@ const transformUnionOrIntersectionTypeNodeImpl = (
1416
1417
  others,
1417
1418
  (a) =>
1418
1419
  [
1419
- a.nodes.map((n) => wrapWithParentheses(n.getFullText())),
1420
+ // `&` is deliberately not merged, unlike `Readonly<A> & Readonly<B>`
1421
+ // above. See `mergeDeepReadonlyUnionMembers` for why.
1422
+ operator === '|'
1423
+ ? mergeDeepReadonlyUnionMembers(
1424
+ a.nodes,
1425
+ options.DeepReadonly.typeName,
1426
+ )
1427
+ : a.nodes.map((n) => wrapWithParentheses(n.getFullText())),
1420
1428
  a.firstPosition,
1421
1429
  ] as const,
1422
1430
  ),
@@ -1450,6 +1458,93 @@ const transformUnionOrIntersectionTypeNodeImpl = (
1450
1458
  );
1451
1459
  };
1452
1460
 
1461
+ /**
1462
+ * - `tr(DeepReadonly<A> | B | DeepReadonly<C>) |-> DeepReadonly<A | C> | B`
1463
+ *
1464
+ * The merged member takes the place of the first `DeepReadonly` member.
1465
+ *
1466
+ * Only a union is merged, although `Readonly<A> & Readonly<B>` is merged into
1467
+ * `Readonly<A & B>`. The two differ in kind:
1468
+ *
1469
+ * - `Readonly` is a homomorphic mapped type, and over type literals
1470
+ * `Readonly<A & B>` and `Readonly<A> & Readonly<B>` have the same properties
1471
+ * with the same modifiers. (That merge also takes `Readonly<T>` with any
1472
+ * `T`, where this does not hold for an array `T`; it is not relied on here.)
1473
+ * - `DeepReadonly` is a conditional type that picks a branch by what `T` is
1474
+ * (primitive, function, Map, Set, array, object). It distributes over a union
1475
+ * because each member is tested on its own, but an intersection is tested as
1476
+ * a whole and matches every branch any one member matches: with
1477
+ * `F = () => void`, `F & { x: number[] }` extends a function type because `F`
1478
+ * does, so `DeepReadonly<F & { x: number[] }>` hits that branch and returns
1479
+ * the intersection unchanged, leaving `x` mutable, while `DeepReadonly<F> &
1480
+ * DeepReadonly<{ x: number[] }>` is `F & { readonly x: readonly number[] }`.
1481
+ * The codemod cannot tell whether a type argument is such a member, so it
1482
+ * merges no intersection.
1483
+ *
1484
+ * The test "premises of merging DeepReadonly members" pins both facts against
1485
+ * ts-type-forge's `DeepReadonly`.
1486
+ */
1487
+ const mergeDeepReadonlyUnionMembers = (
1488
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
1489
+ nodes: readonly tsm.TypeNode[],
1490
+ deepReadonlyTypeName: string,
1491
+ ): readonly string[] => {
1492
+ const typeArgsOfDeepReadonly = nodes.map((n) =>
1493
+ getDeepReadonlyTypeArg(n, deepReadonlyTypeName),
1494
+ );
1495
+
1496
+ const typeArgs = typeArgsOfDeepReadonly.filter((t) => t !== undefined);
1497
+
1498
+ if (typeArgs.length < 2) {
1499
+ return nodes.map((n) => wrapWithParentheses(n.getFullText()));
1500
+ }
1501
+
1502
+ const firstIndex = typeArgsOfDeepReadonly.findIndex((t) => t !== undefined);
1503
+
1504
+ const merged = unionToString({
1505
+ types: typeArgs.map((t_) => {
1506
+ const t = removeParentheses(t_);
1507
+
1508
+ // NOTE: DeepReadonly<A | B> | DeepReadonly<C> -> DeepReadonly<A | B | C>
1509
+ // NOTE: DeepReadonly<() => void> | DeepReadonly<B> -> DeepReadonly<(() => void) | B>
1510
+ return t.isKind(tsm.SyntaxKind.UnionType)
1511
+ ? t.getFullText()
1512
+ : wrapWithParentheses(t.getFullText());
1513
+ }),
1514
+ op: '|',
1515
+ wrapWithReadonly: deepReadonlyTypeName,
1516
+ });
1517
+
1518
+ return nodes.flatMap((n, i) =>
1519
+ typeArgsOfDeepReadonly[i] === undefined
1520
+ ? [wrapWithParentheses(n.getFullText())]
1521
+ : i === firstIndex
1522
+ ? [merged]
1523
+ : [],
1524
+ );
1525
+ };
1526
+
1527
+ /** `DeepReadonly<T>` |-> `T`, anything else |-> `undefined` */
1528
+ const getDeepReadonlyTypeArg = (
1529
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
1530
+ node: tsm.TypeNode,
1531
+ deepReadonlyTypeName: string,
1532
+ ): tsm.TypeNode | undefined => {
1533
+ if (!node.isKind(tsm.SyntaxKind.TypeReference)) {
1534
+ return undefined;
1535
+ }
1536
+
1537
+ const typeName = node.getTypeName();
1538
+
1539
+ const typeArguments = node.getTypeArguments();
1540
+
1541
+ return typeName.isKind(tsm.SyntaxKind.Identifier) &&
1542
+ typeName.getText() === deepReadonlyTypeName &&
1543
+ Arr.isFixedLengthArray(1, typeArguments)
1544
+ ? typeArguments[0]
1545
+ : undefined;
1546
+ };
1547
+
1453
1548
  const unionToString = ({
1454
1549
  types: typesRaw,
1455
1550
  op,
@@ -6,6 +6,10 @@ import dedent from 'dedent';
6
6
  import * as prettierPluginEstree from 'prettier/plugins/estree';
7
7
  import * as prettierPluginTypeScript from 'prettier/plugins/typescript';
8
8
  import * as prettier from 'prettier/standalone';
9
+ import { expectType } from 'ts-data-forge';
10
+ // Aliased: an import named `DeepReadonly` makes `vitest/prefer-describe-function-title`
11
+ // rewrite `describe('DeepReadonly', ...)` into a reference to this type.
12
+ import { type DeepReadonly as TsTypeForgeDeepReadonly } from 'ts-type-forge';
9
13
  import {
10
14
  convertToReadonlyTransformer,
11
15
  type ReadonlyTransformerOptions,
@@ -2831,6 +2835,205 @@ describe(convertToReadonlyTransformer, () => {
2831
2835
  ])('$name', testFn);
2832
2836
  });
2833
2837
 
2838
+ describe('Union of DeepReadonly members', () => {
2839
+ test.each([
2840
+ {
2841
+ name: 'DeepReadonly<A> | DeepReadonly<B> -> DeepReadonly<A | B>',
2842
+ source: dedent`
2843
+ type T = DeepReadonly<{ a: number[] }> | DeepReadonly<{ b: string[] }>;
2844
+ `,
2845
+ expected: dedent`
2846
+ type T = DeepReadonly<{ a: number[] } | { b: string[] }>;
2847
+ `,
2848
+ },
2849
+ {
2850
+ name: 'Three DeepReadonly members',
2851
+ source: dedent`
2852
+ type T<A, B> = DeepReadonly<A> | DeepReadonly<B> | DeepReadonly<{ c: boolean[] }>;
2853
+ `,
2854
+ expected: dedent`
2855
+ type T<A, B> = DeepReadonly<A | B | { c: boolean[] }>;
2856
+ `,
2857
+ },
2858
+ {
2859
+ name: 'DeepReadonly members separated by other members',
2860
+ source: dedent`
2861
+ type T = DeepReadonly<{ a: number[] }> | string | Map<string, number> | DeepReadonly<{ b: string[] }>;
2862
+ `,
2863
+ expected: dedent`
2864
+ type T = DeepReadonly<{ a: number[] } | { b: string[] }> | ReadonlyMap<string, number> | string;
2865
+ `,
2866
+ },
2867
+ {
2868
+ name: 'A DeepReadonly member whose argument is itself a union',
2869
+ source: dedent`
2870
+ type T = DeepReadonly<{ a: number[] } | { b: string[] }> | DeepReadonly<{ c: boolean[] }>;
2871
+ `,
2872
+ expected: dedent`
2873
+ type T = DeepReadonly<{ a: number[] } | { b: string[] } | { c: boolean[] }>;
2874
+ `,
2875
+ },
2876
+ {
2877
+ // `() => void | X` would parse as a function returning `void | X`.
2878
+ name: 'A function type argument keeps its parentheses',
2879
+ source: dedent`
2880
+ type T = DeepReadonly<() => void> | DeepReadonly<{ b: string[] }>;
2881
+ `,
2882
+ expected: dedent`
2883
+ type T = DeepReadonly<(() => void) | { b: string[] }>;
2884
+ `,
2885
+ },
2886
+ {
2887
+ name: 'Nested in a type literal',
2888
+ source: dedent`
2889
+ type T = { x: DeepReadonly<{ a: number[] }> | DeepReadonly<{ b: string[] }> };
2890
+ `,
2891
+ expected: dedent`
2892
+ type T = Readonly<{ x: DeepReadonly<{ a: number[] } | { b: string[] }> }>;
2893
+ `,
2894
+ },
2895
+ {
2896
+ name: 'A single DeepReadonly member is left as written',
2897
+ source: dedent`
2898
+ type T = DeepReadonly<{ a: number[] }> | { b: string[] };
2899
+ `,
2900
+ expected: dedent`
2901
+ type T = DeepReadonly<{ a: number[] }> | Readonly<{ b: readonly string[] }>;
2902
+ `,
2903
+ },
2904
+ {
2905
+ name: 'DeepReadonly and Readonly members are not merged',
2906
+ source: dedent`
2907
+ type T = DeepReadonly<{ a: number[] }> | Readonly<{ b: string[] }>;
2908
+ `,
2909
+ expected: dedent`
2910
+ type T = DeepReadonly<{ a: number[] }> | Readonly<{ b: readonly string[] }>;
2911
+ `,
2912
+ },
2913
+ // Unlike `Readonly<A> & Readonly<B>`, an intersection of DeepReadonly
2914
+ // members is never merged; see `mergeDeepReadonlyUnionMembers` and the
2915
+ // premises test below.
2916
+ {
2917
+ name: 'An intersection of DeepReadonly members is left as written',
2918
+ source: dedent`
2919
+ type T = DeepReadonly<{ a: number[] }> & DeepReadonly<{ b: string[] }>;
2920
+ `,
2921
+ expected: dedent`
2922
+ type T = DeepReadonly<{ a: number[] }> & DeepReadonly<{ b: string[] }>;
2923
+ `,
2924
+ },
2925
+ {
2926
+ // The case merging would get wrong: `DeepReadonly<F & X>` is `F & X`.
2927
+ name: 'An intersection with a function type argument is left as written',
2928
+ source: dedent`
2929
+ type T = DeepReadonly<() => void> & DeepReadonly<{ x: number[] }>;
2930
+ `,
2931
+ expected: dedent`
2932
+ type T = DeepReadonly<() => void> & DeepReadonly<{ x: number[] }>;
2933
+ `,
2934
+ },
2935
+ {
2936
+ name: 'An intersection of generic DeepReadonly members is left as written',
2937
+ source: dedent`
2938
+ type T<A, B> = DeepReadonly<A> & DeepReadonly<B>;
2939
+ `,
2940
+ expected: dedent`
2941
+ type T<A, B> = DeepReadonly<A> & DeepReadonly<B>;
2942
+ `,
2943
+ },
2944
+ {
2945
+ name: 'An intersection under a custom typeName is left as written',
2946
+ source: dedent`
2947
+ type T = DeepRO<{ a: number[] }> & DeepRO<{ b: string[] }>;
2948
+ `,
2949
+ expected: dedent`
2950
+ type T = DeepRO<{ a: number[] }> & DeepRO<{ b: string[] }>;
2951
+ `,
2952
+ options: { DeepReadonly: { typeName: 'DeepRO' } },
2953
+ },
2954
+ {
2955
+ // The union around it has one DeepReadonly member, so nothing merges.
2956
+ name: 'An intersection of DeepReadonly members inside a union is left as written',
2957
+ source: dedent`
2958
+ type T = (DeepReadonly<{ a: number[] }> & DeepReadonly<{ b: string[] }>) | DeepReadonly<{ c: boolean[] }>;
2959
+ `,
2960
+ expected: dedent`
2961
+ type T = (DeepReadonly<{ a: number[] }> & DeepReadonly<{ b: string[] }>) | DeepReadonly<{ c: boolean[] }>;
2962
+ `,
2963
+ },
2964
+ {
2965
+ name: 'Custom DeepReadonly typeName',
2966
+ source: dedent`
2967
+ type T = DeepRO<{ a: number[] }> | DeepRO<{ b: string[] }>;
2968
+ `,
2969
+ expected: dedent`
2970
+ type T = DeepRO<{ a: number[] } | { b: string[] }>;
2971
+ `,
2972
+ options: { DeepReadonly: { typeName: 'DeepRO' } },
2973
+ },
2974
+ {
2975
+ name: 'Other generic types are not merged',
2976
+ source: dedent`
2977
+ type T<A, B> = Partial<A> | Partial<B>;
2978
+ `,
2979
+ expected: dedent`
2980
+ type T<A, B> = Partial<A> | Partial<B>;
2981
+ `,
2982
+ },
2983
+ ])('$name', testFn);
2984
+
2985
+ // What `mergeDeepReadonlyUnionMembers` relies on. If ts-type-forge's
2986
+ // `DeepReadonly` changes so that one of these no longer holds, revisit
2987
+ // which operators the codemod merges.
2988
+ test('premises of merging DeepReadonly members', () => {
2989
+ type F = () => void;
2990
+
2991
+ type X = Readonly<{ x: number[] }>;
2992
+
2993
+ type A = Readonly<{ a: number[] }>;
2994
+
2995
+ type B = Readonly<{ b: string[] }>;
2996
+
2997
+ // `|` commutes with DeepReadonly, so merging a union is safe.
2998
+ expectType<
2999
+ TsTypeForgeDeepReadonly<A | B>,
3000
+ TsTypeForgeDeepReadonly<A> | TsTypeForgeDeepReadonly<B>
3001
+ >('=');
3002
+
3003
+ expectType<
3004
+ TsTypeForgeDeepReadonly<F | X>,
3005
+ TsTypeForgeDeepReadonly<F> | TsTypeForgeDeepReadonly<X>
3006
+ >('=');
3007
+
3008
+ expectType<
3009
+ TsTypeForgeDeepReadonly<readonly string[] | X>,
3010
+ TsTypeForgeDeepReadonly<readonly string[]> | TsTypeForgeDeepReadonly<X>
3011
+ >('=');
3012
+
3013
+ // `&` does not: an intersection is tested as a whole and matches every
3014
+ // branch any one member matches. `F & X` hits the function branch and
3015
+ // comes back unchanged, leaving `x` mutable.
3016
+ expectType<TsTypeForgeDeepReadonly<F & X>, F & X>('=');
3017
+
3018
+ expectType<
3019
+ TsTypeForgeDeepReadonly<F & X>,
3020
+ TsTypeForgeDeepReadonly<F> & TsTypeForgeDeepReadonly<X>
3021
+ >('!=');
3022
+
3023
+ expectType<
3024
+ TsTypeForgeDeepReadonly<readonly string[] & X>,
3025
+ TsTypeForgeDeepReadonly<readonly string[]> & TsTypeForgeDeepReadonly<X>
3026
+ >('!=');
3027
+
3028
+ // `Readonly` over type literals does commute with `&`, which is what
3029
+ // merging `{ a: A } & Readonly<{ b: B }>` into one `Readonly` relies on.
3030
+ expectType<
3031
+ Readonly<{ a: number[] } & { b: string[] }>,
3032
+ Readonly<{ a: number[] }> & Readonly<{ b: string[] }>
3033
+ >('~=');
3034
+ });
3035
+ });
3036
+
2834
3037
  describe('Parenthesized types', () => {
2835
3038
  test.each([
2836
3039
  {