ts-codemod-lib 1.4.2 → 2.0.1

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.
Files changed (93) hide show
  1. package/README.md +10 -7
  2. package/dist/cmd/append-as-const.mjs +5 -4
  3. package/dist/cmd/append-as-const.mjs.map +1 -1
  4. package/dist/cmd/convert-interface-to-type.mjs +5 -4
  5. package/dist/cmd/convert-interface-to-type.mjs.map +1 -1
  6. package/dist/cmd/convert-to-readonly.mjs +6 -5
  7. package/dist/cmd/convert-to-readonly.mjs.map +1 -1
  8. package/dist/cmd/replace-any-with-unknown.mjs +5 -4
  9. package/dist/cmd/replace-any-with-unknown.mjs.map +1 -1
  10. package/dist/cmd/replace-record-with-unknown-record.mjs +5 -4
  11. package/dist/cmd/replace-record-with-unknown-record.mjs.map +1 -1
  12. package/dist/cmd/run-transformer-cli.d.mts.map +1 -1
  13. package/dist/cmd/run-transformer-cli.mjs +1 -2
  14. package/dist/cmd/run-transformer-cli.mjs.map +1 -1
  15. package/dist/entry-point.mjs +2 -2
  16. package/dist/functions/ast-transformers/append-as-const.d.mts +3 -0
  17. package/dist/functions/ast-transformers/append-as-const.d.mts.map +1 -1
  18. package/dist/functions/ast-transformers/append-as-const.mjs +90 -168
  19. package/dist/functions/ast-transformers/append-as-const.mjs.map +1 -1
  20. package/dist/functions/ast-transformers/convert-interface-to-type.d.mts.map +1 -1
  21. package/dist/functions/ast-transformers/convert-interface-to-type.mjs +12 -7
  22. package/dist/functions/ast-transformers/convert-interface-to-type.mjs.map +1 -1
  23. package/dist/functions/ast-transformers/{convert-to-readonly-type.d.mts → convert-to-readonly.d.mts} +2 -2
  24. package/dist/functions/ast-transformers/convert-to-readonly.d.mts.map +1 -0
  25. package/dist/functions/ast-transformers/{convert-to-readonly-type.mjs → convert-to-readonly.mjs} +23 -18
  26. package/dist/functions/ast-transformers/convert-to-readonly.mjs.map +1 -0
  27. package/dist/functions/ast-transformers/index.d.mts +1 -1
  28. package/dist/functions/ast-transformers/index.d.mts.map +1 -1
  29. package/dist/functions/ast-transformers/index.mjs +1 -1
  30. package/dist/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mjs +2 -3
  31. package/dist/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mjs.map +1 -1
  32. package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.d.mts +2 -2
  33. package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.d.mts.map +1 -1
  34. package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mjs +2 -2
  35. package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mjs.map +1 -1
  36. package/dist/functions/ast-transformers/readonly-transformer-helpers/readonly-context.d.mts.map +1 -1
  37. package/dist/functions/ast-transformers/readonly-transformer-helpers/readonly-context.mjs.map +1 -1
  38. package/dist/functions/ast-transformers/replace-any-with-unknown.d.mts.map +1 -1
  39. package/dist/functions/ast-transformers/replace-any-with-unknown.mjs +28 -34
  40. package/dist/functions/ast-transformers/replace-any-with-unknown.mjs.map +1 -1
  41. package/dist/functions/ast-transformers/replace-record-with-unknown-record.d.mts.map +1 -1
  42. package/dist/functions/ast-transformers/replace-record-with-unknown-record.mjs +154 -150
  43. package/dist/functions/ast-transformers/replace-record-with-unknown-record.mjs.map +1 -1
  44. package/dist/functions/ast-transformers/transform-source-code.d.mts.map +1 -1
  45. package/dist/functions/ast-transformers/transform-source-code.mjs +4 -6
  46. package/dist/functions/ast-transformers/transform-source-code.mjs.map +1 -1
  47. package/dist/functions/ast-transformers/types.d.mts +5 -5
  48. package/dist/functions/ast-transformers/types.d.mts.map +1 -1
  49. package/dist/functions/functions/index.d.mts +1 -1
  50. package/dist/functions/functions/index.d.mts.map +1 -1
  51. package/dist/functions/functions/index.mjs +1 -1
  52. package/dist/functions/functions/{is-primitive-type-node.d.mts → is-atomic-type-node.d.mts} +3 -3
  53. package/dist/functions/functions/is-atomic-type-node.d.mts.map +1 -0
  54. package/dist/functions/functions/{is-primitive-type-node.mjs → is-atomic-type-node.mjs} +5 -5
  55. package/dist/functions/functions/is-atomic-type-node.mjs.map +1 -0
  56. package/dist/functions/functions/is-readonly-node.d.mts +4 -4
  57. package/dist/functions/functions/is-readonly-node.d.mts.map +1 -1
  58. package/dist/functions/functions/is-readonly-node.mjs +2 -2
  59. package/dist/functions/functions/is-readonly-node.mjs.map +1 -1
  60. package/dist/functions/functions/wrap-with-parentheses.d.mts +1 -1
  61. package/dist/functions/functions/wrap-with-parentheses.d.mts.map +1 -1
  62. package/dist/functions/index.mjs +2 -2
  63. package/dist/index.mjs +2 -2
  64. package/package.json +17 -5
  65. package/src/cmd/append-as-const.mts +5 -3
  66. package/src/cmd/convert-interface-to-type.mts +5 -3
  67. package/src/cmd/convert-to-readonly.mts +6 -4
  68. package/src/cmd/replace-any-with-unknown.mts +5 -3
  69. package/src/cmd/replace-record-with-unknown-record.mts +5 -3
  70. package/src/cmd/run-transformer-cli.mts +0 -1
  71. package/src/functions/ast-transformers/append-as-const.mts +143 -266
  72. package/src/functions/ast-transformers/append-as-const.test.mts +67 -56
  73. package/src/functions/ast-transformers/convert-interface-to-type.mts +96 -89
  74. package/src/functions/ast-transformers/convert-interface-to-type.test.mts +20 -20
  75. package/src/functions/ast-transformers/{convert-to-readonly-type.mts → convert-to-readonly.mts} +32 -30
  76. package/src/functions/ast-transformers/{convert-to-readonly-type.test.mts → convert-to-readonly.test.mts} +36 -10
  77. package/src/functions/ast-transformers/index.mts +1 -1
  78. package/src/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mts +7 -8
  79. package/src/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mts +5 -5
  80. package/src/functions/ast-transformers/readonly-transformer-helpers/readonly-context.mts +4 -4
  81. package/src/functions/ast-transformers/replace-any-with-unknown.mts +31 -40
  82. package/src/functions/ast-transformers/replace-record-with-unknown-record.mts +183 -182
  83. package/src/functions/ast-transformers/transform-source-code.mts +3 -4
  84. package/src/functions/ast-transformers/transformer-specific-ignore.test.mts +6 -6
  85. package/src/functions/ast-transformers/types.mts +7 -7
  86. package/src/functions/functions/index.mts +1 -1
  87. package/src/functions/functions/{is-primitive-type-node.mts → is-atomic-type-node.mts} +11 -10
  88. package/src/functions/functions/is-readonly-node.mts +6 -6
  89. package/src/functions/functions/wrap-with-parentheses.mts +2 -2
  90. package/dist/functions/ast-transformers/convert-to-readonly-type.d.mts.map +0 -1
  91. package/dist/functions/ast-transformers/convert-to-readonly-type.mjs.map +0 -1
  92. package/dist/functions/functions/is-primitive-type-node.d.mts.map +0 -1
  93. package/dist/functions/functions/is-primitive-type-node.mjs.map +0 -1
@@ -1,8 +1,8 @@
1
- import { ISet, Arr, pipe } from 'ts-data-forge';
1
+ import { ISet, Arr } from 'ts-data-forge';
2
2
  import * as tsm from 'ts-morph';
3
3
  import { hasDisableNextLineComment } from '../functions/has-disable-next-line-comment.mjs';
4
4
  import { isAsConstNode } from '../functions/is-as-const-node.mjs';
5
- import '../functions/is-primitive-type-node.mjs';
5
+ import '../functions/is-atomic-type-node.mjs';
6
6
  import { replaceNodeWithDebugPrint } from '../utils/replace-with-debug.mjs';
7
7
 
8
8
  const TRANSFORMER_NAME = 'append-as-const';
@@ -16,30 +16,23 @@ const appendAsConstTransformer = (options) => {
16
16
  ? replaceNodeWithDebugPrint
17
17
  : (node, newNodeText) => node.replaceWithText(newNodeText),
18
18
  };
19
- const transformer = (sourceAst) => {
20
- for (const node of sourceAst.getChildren()) {
21
- transformNode(node, {
22
- isUnderConstContext: false,
23
- isDirectUnderConstInitializer: false,
24
- isUnderSpreadElement: false,
25
- }, optionsInternal);
26
- }
19
+ return {
20
+ name: TRANSFORMER_NAME,
21
+ transform: (sourceAst) => {
22
+ for (const node of sourceAst.getDescendantsOfKind(tsm.SyntaxKind.VariableDeclaration)) {
23
+ transformNode(node, {
24
+ isUnderConstContext: false,
25
+ isDirectUnderConstInitializer: false,
26
+ }, optionsInternal);
27
+ }
28
+ },
27
29
  };
28
- // eslint-disable-next-line functional/immutable-data
29
- transformer.transformerName = TRANSFORMER_NAME;
30
- return transformer;
31
30
  };
32
31
  const transformNode = (node, context, options) => {
33
- options.debugPrint(node.getKindName(), node.getText());
34
- if (node.isKind(tsm.SyntaxKind.LiteralType) ||
35
- node.isKind(tsm.SyntaxKind.TypeLiteral) ||
36
- node.isKind(tsm.SyntaxKind.TypeReference) ||
37
- node.isKind(tsm.SyntaxKind.UnionType) ||
38
- node.isKind(tsm.SyntaxKind.TypeAliasDeclaration) ||
39
- node.isKind(tsm.SyntaxKind.ImportDeclaration) ||
40
- isDirective(node)) {
41
- return; // skip type annotations, import declarations, and directives
32
+ if (node.wasForgotten()) {
33
+ return;
42
34
  }
35
+ options.debugPrint(node.getKindName(), node.getText(), { context });
43
36
  if (hasDisableNextLineComment(node, TRANSFORMER_NAME)) {
44
37
  options.debugPrint('skipped by disable-next-line comment');
45
38
  return;
@@ -48,23 +41,6 @@ const transformNode = (node, context, options) => {
48
41
  tsm.Node.isCallExpression(node)) {
49
42
  return;
50
43
  }
51
- if (node.isKind(tsm.SyntaxKind.NoSubstitutionTemplateLiteral) || // `abc`
52
- node.isKind(tsm.SyntaxKind.NumericLiteral) || // 123
53
- node.isKind(tsm.SyntaxKind.BigIntLiteral) || // 123n
54
- node.isKind(tsm.SyntaxKind.StringLiteral) || // 'abc'
55
- node.isKind(tsm.SyntaxKind.TrueKeyword) || // true
56
- node.isKind(tsm.SyntaxKind.FalseKeyword) // false
57
- ) {
58
- if (context.isDirectUnderConstInitializer || context.isUnderConstContext) {
59
- return;
60
- }
61
- options.replaceNode(node, `${node.getText()} as const`);
62
- return;
63
- }
64
- if (node.isKind(tsm.SyntaxKind.TemplateExpression)) {
65
- options.replaceNode(node, `${node.getText()} as const`);
66
- return;
67
- }
68
44
  if (node.isKind(tsm.SyntaxKind.VariableDeclaration)) {
69
45
  const nodeName = node.getName();
70
46
  // check for ignorePrefix
@@ -74,6 +50,11 @@ const transformNode = (node, context, options) => {
74
50
  options.debugPrint('skipped variable declaration by ignorePrefixes');
75
51
  return;
76
52
  }
53
+ const variableStatement = node.getVariableStatement();
54
+ if (variableStatement !== undefined &&
55
+ hasDisableNextLineComment(variableStatement, TRANSFORMER_NAME)) {
56
+ return;
57
+ }
77
58
  const initializer = node.getInitializer();
78
59
  if (initializer === undefined) {
79
60
  return;
@@ -87,7 +68,6 @@ const transformNode = (node, context, options) => {
87
68
  transformNode(initializer, {
88
69
  isDirectUnderConstInitializer: declarationKindKeywords[0] === 'const',
89
70
  isUnderConstContext: false,
90
- isUnderSpreadElement: context.isUnderSpreadElement,
91
71
  }, options);
92
72
  return;
93
73
  }
@@ -102,67 +82,56 @@ const transformNode = (node, context, options) => {
102
82
  // // for (const [i, el] of nodeName.elements.entries())
103
83
  // }
104
84
  }
105
- // `as const` node
106
- if (isAsConstNode(node)) {
107
- if (context.isDirectUnderConstInitializer) {
108
- // In const variable declarations, remove `as const` first and then re-append it later if needed
109
- transformNode(node.getExpression(), {
110
- isUnderConstContext: false,
111
- isDirectUnderConstInitializer: true,
112
- isUnderSpreadElement: context.isUnderSpreadElement,
113
- }, options);
114
- options.replaceNode(node,
115
- // The expression may be marked "as const"
116
- node.getExpression().getText()); // remove `as const`
117
- return;
118
- }
119
- if (context.isUnderConstContext) {
120
- transformNode(node.getExpression(), {
121
- isUnderConstContext: true,
122
- isDirectUnderConstInitializer: false,
123
- isUnderSpreadElement: context.isUnderSpreadElement,
124
- }, options);
125
- options.replaceNode(node,
126
- // The expression may be marked "as const"
127
- node.getExpression().getText()); // remove `as const`
128
- return;
85
+ // Skip already type asserted nodes
86
+ if (tsm.Node.isAsExpression(node) && !isAsConstNode(node)) {
87
+ return;
88
+ }
89
+ // pass by ([(X)] -> X)
90
+ if (tsm.Node.isParenthesizedExpression(node)) {
91
+ transformNode(node.getExpression(), context, options);
92
+ return;
93
+ }
94
+ // pass by ([X satisfies ...] -> X)
95
+ if (tsm.Node.isSatisfiesExpression(node)) {
96
+ transformNode(node.getExpression(), context, options);
97
+ return;
98
+ }
99
+ // pass by property initializer ([key: value] -> value)
100
+ if (tsm.Node.isPropertyAssignment(node)) {
101
+ const initializer = node.getInitializer();
102
+ if (initializer !== undefined) {
103
+ transformNode(initializer, context, options);
129
104
  }
130
- transformNode(node.getExpression(), {
131
- isUnderConstContext: true,
132
- isDirectUnderConstInitializer: false,
133
- isUnderSpreadElement: context.isUnderSpreadElement,
134
- }, options);
135
105
  return;
136
106
  }
137
- if (tsm.Node.isAsExpression(node)) {
107
+ // pass by arrow function body ([() => X] -> X)
108
+ if (tsm.Node.isArrowFunction(node)) {
109
+ const body = node.getBody();
110
+ transformNode(body, context, options);
138
111
  return;
139
112
  }
113
+ // pass by spread element ([...X] -> X)
140
114
  if (tsm.Node.isSpreadElement(node)) {
141
- transformNode(node.getExpression(), {
142
- isDirectUnderConstInitializer: false,
143
- isUnderConstContext: context.isUnderConstContext,
144
- isUnderSpreadElement: true,
145
- }, options);
115
+ transformNode(node.getExpression(), context, options);
146
116
  return;
147
117
  }
148
- if (tsm.Node.isConditionalExpression(node)) {
149
- if (context.isUnderSpreadElement) {
150
- // When under spread element, keep `as const` in both branches
151
- transformNode(node.getWhenTrue(), {
152
- isDirectUnderConstInitializer: false,
153
- isUnderConstContext: false,
154
- isUnderSpreadElement: false,
155
- }, options);
156
- transformNode(node.getWhenFalse(), {
157
- isDirectUnderConstInitializer: false,
158
- isUnderConstContext: false,
159
- isUnderSpreadElement: false,
160
- }, options);
118
+ if (node.isKind(tsm.SyntaxKind.NoSubstitutionTemplateLiteral) || // `abc`
119
+ node.isKind(tsm.SyntaxKind.NumericLiteral) || // 123
120
+ node.isKind(tsm.SyntaxKind.BigIntLiteral) || // 123n
121
+ node.isKind(tsm.SyntaxKind.StringLiteral) || // 'abc'
122
+ node.isKind(tsm.SyntaxKind.TrueKeyword) || // true
123
+ node.isKind(tsm.SyntaxKind.FalseKeyword) // false
124
+ ) {
125
+ if (!context.isDirectUnderConstInitializer &&
126
+ !context.isUnderConstContext) {
127
+ options.replaceNode(node, `${node.getText()} as const`);
161
128
  }
162
129
  return;
163
130
  }
164
- if (tsm.Node.isParenthesizedExpression(node)) {
165
- transformNode(node.getExpression(), context, options);
131
+ if (node.isKind(tsm.SyntaxKind.TemplateExpression)) {
132
+ if (!context.isUnderConstContext) {
133
+ options.replaceNode(node, `${node.getText()} as const`);
134
+ }
166
135
  return;
167
136
  }
168
137
  if (tsm.Node.isArrayLiteralExpression(node)) {
@@ -170,7 +139,6 @@ const transformNode = (node, context, options) => {
170
139
  transformNode(el, {
171
140
  isUnderConstContext: true, // [...] as const
172
141
  isDirectUnderConstInitializer: false,
173
- isUnderSpreadElement: context.isUnderSpreadElement,
174
142
  }, options);
175
143
  }
176
144
  if (!context.isUnderConstContext) {
@@ -183,7 +151,6 @@ const transformNode = (node, context, options) => {
183
151
  transformNode(el, {
184
152
  isUnderConstContext: true, // {...} as const
185
153
  isDirectUnderConstInitializer: false,
186
- isUnderSpreadElement: context.isUnderSpreadElement,
187
154
  }, options);
188
155
  }
189
156
  if (!context.isUnderConstContext) {
@@ -191,93 +158,48 @@ const transformNode = (node, context, options) => {
191
158
  }
192
159
  return;
193
160
  }
194
- if (node.isKind(tsm.SyntaxKind.ClassDeclaration)) {
195
- // Skip conversion for class declarations with ignored prefixes
196
- // Example: class mut_Class {...} -> properties remain without readonly
197
- if (options.ignoredPrefixes.some((p) => node.getName()?.startsWith(p) === true)) {
161
+ // `as const` node
162
+ if (isAsConstNode(node)) {
163
+ if (context.isDirectUnderConstInitializer) {
164
+ // In const variable declarations, remove `as const` first and then re-append it later if needed
165
+ transformNode(node.getExpression(), {
166
+ isUnderConstContext: false,
167
+ isDirectUnderConstInitializer: true,
168
+ }, options);
169
+ options.replaceNode(node,
170
+ // The expression may be marked "as const"
171
+ node.getExpression().getText()); // remove `as const`
198
172
  return;
199
173
  }
200
- transformClassDeclarationNode(node, context, options);
174
+ if (context.isUnderConstContext) {
175
+ transformNode(node.getExpression(), {
176
+ isUnderConstContext: true,
177
+ isDirectUnderConstInitializer: false,
178
+ }, options);
179
+ options.replaceNode(node,
180
+ // The expression may be marked "as const"
181
+ node.getExpression().getText()); // remove `as const`
182
+ return;
183
+ }
184
+ transformNode(node.getExpression(), {
185
+ isUnderConstContext: true,
186
+ isDirectUnderConstInitializer: false,
187
+ }, options);
201
188
  return;
202
189
  }
203
- for (const child of node.getChildren()) {
204
- transformNode(child, {
190
+ if (tsm.Node.isConditionalExpression(node)) {
191
+ // For conditional expressions, traverse both branches in a non-const context
192
+ transformNode(node.getWhenTrue(), {
205
193
  isDirectUnderConstInitializer: false,
206
- isUnderConstContext: context.isUnderConstContext,
207
- isUnderSpreadElement: context.isUnderSpreadElement,
194
+ isUnderConstContext: false,
208
195
  }, options);
209
- }
210
- };
211
- const transformClassDeclarationNode = (
212
- // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
213
- node, context, options) => {
214
- for (const mb of node.getMembers()) {
215
- if (hasDisableNextLineComment(mb)) {
216
- options.debugPrint('skipped member by disable-next-line comment');
217
- continue;
218
- }
219
- if (mb.isKind(tsm.SyntaxKind.PropertyDeclaration)) {
220
- if (!checkIfPropertyNameShouldBeIgnored(mb.getNameNode(), options)) {
221
- const type = mb.getTypeNode();
222
- if (type !== undefined) {
223
- transformNode(type, {
224
- isDirectUnderConstInitializer: false,
225
- isUnderConstContext: false,
226
- isUnderSpreadElement: context.isUnderSpreadElement,
227
- }, options);
228
- }
229
- const initializer = mb.getInitializer();
230
- if (initializer !== undefined) {
231
- transformNode(initializer, {
232
- isDirectUnderConstInitializer: false,
233
- isUnderConstContext: false,
234
- isUnderSpreadElement: context.isUnderSpreadElement,
235
- }, options);
236
- }
237
- }
238
- continue;
239
- }
240
- transformNode(mb, {
196
+ transformNode(node.getWhenFalse(), {
241
197
  isDirectUnderConstInitializer: false,
242
198
  isUnderConstContext: false,
243
- isUnderSpreadElement: context.isUnderSpreadElement,
244
199
  }, options);
200
+ // return;
245
201
  }
246
202
  };
247
- const checkIfPropertyNameShouldBeIgnored = (
248
- // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
249
- nameNode, options) => {
250
- return ((nameNode.isKind(tsm.SyntaxKind.Identifier) &&
251
- pipe(nameNode.getText()).map((nm) => options.ignoredPrefixes.some((p) => nm.startsWith(p))).value) ||
252
- (nameNode.isKind(tsm.SyntaxKind.StringLiteral) &&
253
- pipe(nameNode.getLiteralValue()).map((nm) => options.ignoredPrefixes.some((p) => nm.startsWith(p))).value) ||
254
- (nameNode.isKind(tsm.SyntaxKind.PrivateIdentifier) &&
255
- pipe(nameNode.getText()).map((nm) => options.ignoredPrefixes.some((p) => nm.startsWith(`#${p}`))).value) ||
256
- (nameNode.isKind(tsm.SyntaxKind.ComputedPropertyName) &&
257
- pipe(nameNode.getExpression()).map((exp) => {
258
- if (exp.isKind(tsm.SyntaxKind.StringLiteral)) {
259
- const nm = exp.getLiteralValue();
260
- return options.ignoredPrefixes.some((p) => nm.startsWith(p));
261
- }
262
- return false;
263
- }).value));
264
- };
265
- const isDirective = (node) => {
266
- if (!tsm.Node.isStringLiteral(node))
267
- return false;
268
- const parent = node.getParent();
269
- // 1. 親が ExpressionStatement であることを確認
270
- if (tsm.Node.isExpressionStatement(parent)) {
271
- // 2. その ExpressionStatement の子がこの StringLiteral だけである
272
- // かつ、ソースファイルやブロックの先頭付近にある
273
- const expression = parent.getExpression();
274
- if (expression === node) {
275
- // "use strict" や "use client" などの文字列そのものが文(Statement)になっている
276
- return true;
277
- }
278
- }
279
- return false;
280
- };
281
203
 
282
204
  export { appendAsConstTransformer };
283
205
  //# sourceMappingURL=append-as-const.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"append-as-const.mjs","sources":["../../../src/functions/ast-transformers/append-as-const.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"append-as-const.mjs","sources":["../../../src/functions/ast-transformers/append-as-const.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"convert-interface-to-type.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/convert-interface-to-type.mts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,iCAAiC,QAAO,kBAkHpD,CAAC"}
1
+ {"version":3,"file":"convert-interface-to-type.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/convert-interface-to-type.mts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD;;;GAGG;AACH,eAAO,MAAM,iCAAiC,QAAO,kBAsHxC,CAAC"}
@@ -1,16 +1,24 @@
1
1
  import { Arr } from 'ts-data-forge';
2
+ import { hasDisableNextLineComment } from '../functions/has-disable-next-line-comment.mjs';
3
+ import 'ts-morph';
4
+ import '../functions/is-atomic-type-node.mjs';
2
5
 
3
6
  /* eslint-disable unicorn/consistent-function-scoping -- helper functions are kept inside for clarity */
4
7
  /* eslint-disable @typescript-eslint/prefer-readonly-parameter-types -- ts-morph uses mutable types */
8
+ const TRANSFORMER_NAME = 'convert-interface-to-type';
5
9
  /**
6
10
  * interface による型定義を type による型定義に変換する。
7
11
  * @typescript-eslint/consistent-type-definitions: ["error", "type"] と同等の動作
8
12
  */
9
- const convertInterfaceToTypeTransformer = () => {
10
- const transformer = (sourceAst) => {
13
+ const convertInterfaceToTypeTransformer = () => ({
14
+ name: TRANSFORMER_NAME,
15
+ transform: (sourceAst) => {
11
16
  const processInterfaces = (container) => {
12
17
  const interfaces = container.getInterfaces();
13
18
  for (const interfaceDecl of interfaces) {
19
+ if (hasDisableNextLineComment(interfaceDecl, TRANSFORMER_NAME)) {
20
+ continue;
21
+ }
14
22
  convertInterfaceToType(interfaceDecl);
15
23
  }
16
24
  };
@@ -78,11 +86,8 @@ const convertInterfaceToTypeTransformer = () => {
78
86
  for (const namespace of namespaces) {
79
87
  processInterfaces(namespace);
80
88
  }
81
- };
82
- // eslint-disable-next-line functional/immutable-data
83
- transformer.transformerName = 'convert-interface-to-type';
84
- return transformer;
85
- };
89
+ },
90
+ });
86
91
 
87
92
  export { convertInterfaceToTypeTransformer };
88
93
  //# sourceMappingURL=convert-interface-to-type.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert-interface-to-type.mjs","sources":["../../../src/functions/ast-transformers/convert-interface-to-type.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convert-interface-to-type.mjs","sources":["../../../src/functions/ast-transformers/convert-interface-to-type.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type TsMorphTransformer } from './types.mjs';
2
- export declare const convertToReadonlyTypeTransformer: (options?: ReadonlyTransformerOptions) => TsMorphTransformer;
2
+ export declare const convertToReadonlyTransformer: (options?: ReadonlyTransformerOptions) => TsMorphTransformer;
3
3
  export type ReadonlyTransformerOptions = DeepReadonly<{
4
4
  /**
5
5
  * Options for a type utility `DeepReadonly` that recursively applies readonly.
@@ -28,4 +28,4 @@ export type ReadonlyTransformerOptions = DeepReadonly<{
28
28
  ignorePrefixes?: string[];
29
29
  debug?: boolean;
30
30
  }>;
31
- //# sourceMappingURL=convert-to-readonly-type.d.mts.map
31
+ //# sourceMappingURL=convert-to-readonly.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-to-readonly.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/convert-to-readonly.mts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,eAAO,MAAM,4BAA4B,GACvC,UAAU,0BAA0B,KACnC,kBAuCF,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,YAAY,CAAC;IACpD;;OAEG;IACH,YAAY,CAAC,EAAE;QACb;;;;WAIG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;KA2BnB,CAAC;IAEF;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { ISet, Arr, pipe, match, mapNullable, isString } from 'ts-data-forge';
2
2
  import * as tsm from 'ts-morph';
3
3
  import { hasDisableNextLineComment } from '../functions/has-disable-next-line-comment.mjs';
4
- import { isPrimitiveTypeNode } from '../functions/is-primitive-type-node.mjs';
4
+ import { isAtomicTypeNode } from '../functions/is-atomic-type-node.mjs';
5
5
  import { isReadonlyTypeReferenceNode, isReadonlyTupleOrArrayTypeNode, isReadonlyArrayTypeNode, isReadonlyTupleTypeNode } from '../functions/is-readonly-node.mjs';
6
6
  import { removeParentheses } from '../functions/remove-parentheses.mjs';
7
7
  import { unwrapReadonlyTypeArgText } from '../functions/unwrap-readonly.mjs';
@@ -11,8 +11,8 @@ import { invalidDeepReadonlyTypeName } from './readonly-transformer-helpers/cons
11
11
  import { groupUnionIntersectionTypes } from './readonly-transformer-helpers/group-union-types.mjs';
12
12
  import { nextReadonlyContext } from './readonly-transformer-helpers/readonly-context.mjs';
13
13
 
14
- const TRANSFORMER_NAME = 'convert-to-readonly-type';
15
- const convertToReadonlyTypeTransformer = (options) => {
14
+ const TRANSFORMER_NAME = 'convert-to-readonly';
15
+ const convertToReadonlyTransformer = (options) => {
16
16
  if (options?.DeepReadonly?.typeName !== undefined &&
17
17
  invalidDeepReadonlyTypeName.has(options.DeepReadonly.typeName)) {
18
18
  throw new Error(`Invalid DeepReadonly typeName "${options.DeepReadonly.typeName}" passed to convertToReadonlyType`);
@@ -31,14 +31,14 @@ const convertToReadonlyTypeTransformer = (options) => {
31
31
  ? replaceNodeWithDebugPrint
32
32
  : (node, newNodeText) => node.replaceWithText(newNodeText),
33
33
  };
34
- const transformer = (sourceAst) => {
35
- for (const node of sourceAst.getChildren()) {
36
- transformNode(node, initialReadonlyContext, optionsInternal);
37
- }
34
+ return {
35
+ name: TRANSFORMER_NAME,
36
+ transform: (sourceAst) => {
37
+ for (const node of sourceAst.getChildren()) {
38
+ transformNode(node, initialReadonlyContext, optionsInternal);
39
+ }
40
+ },
38
41
  };
39
- // eslint-disable-next-line functional/immutable-data
40
- transformer.transformerName = TRANSFORMER_NAME;
41
- return transformer;
42
42
  };
43
43
  const initialReadonlyContext = {
44
44
  type: 'none',
@@ -288,7 +288,7 @@ node, readonlyContext, options) => {
288
288
  return;
289
289
  }
290
290
  // Readonly<number> -> number
291
- if (isPrimitiveTypeNode(T)) {
291
+ if (isAtomicTypeNode(T)) {
292
292
  options.replaceNode(node, T.getFullText());
293
293
  return;
294
294
  }
@@ -336,7 +336,7 @@ node, readonlyContext, options) => {
336
336
  return;
337
337
  }
338
338
  // Readonly<number> -> number
339
- if (isPrimitiveTypeNode(T)) {
339
+ if (isAtomicTypeNode(T)) {
340
340
  options.replaceNode(node, T.getFullText());
341
341
  return;
342
342
  }
@@ -345,14 +345,14 @@ node, readonlyContext, options) => {
345
345
  // DeepReadonly<O[]> -> DeepReadonly<O[]> (for object type arrays, keep as is to recursively apply Readonly)
346
346
  // DeepReadonly<P[][]> -> DeepReadonly<P[][]>
347
347
  if (T.isKind(tsm.SyntaxKind.ArrayType) &&
348
- isPrimitiveTypeNode(T.getElementTypeNode())) {
348
+ isAtomicTypeNode(T.getElementTypeNode())) {
349
349
  options.replaceNode(node, wrapWithParentheses(`readonly ${T.getFullText()}`));
350
350
  return;
351
351
  }
352
352
  // T = [P1, P2, P3]
353
353
  // DeepReadonly<[P1, P2, P3]> -> readonly [P1, P2, P3]
354
354
  if (T.isKind(tsm.SyntaxKind.TupleType) &&
355
- T.getElements().every(isPrimitiveTypeNode)) {
355
+ T.getElements().every(isAtomicTypeNode)) {
356
356
  options.replaceNode(node, wrapWithParentheses(`readonly ${T.getFullText()}`));
357
357
  return;
358
358
  }
@@ -741,7 +741,7 @@ node, readonlyContext, options) => {
741
741
  T.isKind(tsm.SyntaxKind.TupleType) ||
742
742
  // remove () if T is PrimitiveTypeNode
743
743
  // e.g. `(number) |-> number`
744
- isPrimitiveTypeNode(T) ||
744
+ isAtomicTypeNode(T) ||
745
745
  // remove () if T is TypeLiteralNode
746
746
  // e.g. `({ member: V }) |-> { member: V }`
747
747
  T.isKind(tsm.SyntaxKind.TypeLiteral)) {
@@ -822,12 +822,17 @@ node, readonlyModifier, readonlyContext, options) => {
822
822
  const checkIfPropertyNameShouldBeIgnored = (
823
823
  // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
824
824
  nameNode, options) => {
825
- return ((nameNode.isKind(tsm.SyntaxKind.Identifier) &&
825
+ return (
826
+ // mut_x: number[]
827
+ (nameNode.isKind(tsm.SyntaxKind.Identifier) &&
826
828
  pipe(nameNode.getText()).map((nm) => options.ignoredPrefixes.some((p) => nm.startsWith(p))).value) ||
829
+ // "mut_x": number[]
827
830
  (nameNode.isKind(tsm.SyntaxKind.StringLiteral) &&
828
831
  pipe(nameNode.getLiteralValue()).map((nm) => options.ignoredPrefixes.some((p) => nm.startsWith(p))).value) ||
832
+ // #memberName: number[] (class only)
829
833
  (nameNode.isKind(tsm.SyntaxKind.PrivateIdentifier) &&
830
834
  pipe(nameNode.getText()).map((nm) => options.ignoredPrefixes.some((p) => nm.startsWith(`#${p}`))).value) ||
835
+ // [`mut_x`]: number[]
831
836
  (nameNode.isKind(tsm.SyntaxKind.ComputedPropertyName) &&
832
837
  pipe(nameNode.getExpression()).map((exp) => {
833
838
  if (exp.isKind(tsm.SyntaxKind.StringLiteral)) {
@@ -838,5 +843,5 @@ nameNode, options) => {
838
843
  }).value));
839
844
  };
840
845
 
841
- export { convertToReadonlyTypeTransformer };
842
- //# sourceMappingURL=convert-to-readonly-type.mjs.map
846
+ export { convertToReadonlyTransformer };
847
+ //# sourceMappingURL=convert-to-readonly.mjs.map