ts-codemod-lib 3.5.1 → 4.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 (59) hide show
  1. package/README.md +7 -3
  2. package/dist/functions/ast-transformers/append-as-const.d.mts +20 -12
  3. package/dist/functions/ast-transformers/append-as-const.d.mts.map +1 -1
  4. package/dist/functions/ast-transformers/append-as-const.mjs +170 -88
  5. package/dist/functions/ast-transformers/append-as-const.mjs.map +1 -1
  6. package/dist/functions/ast-transformers/convert-to-readonly.d.mts +25 -6
  7. package/dist/functions/ast-transformers/convert-to-readonly.d.mts.map +1 -1
  8. package/dist/functions/ast-transformers/convert-to-readonly.mjs +272 -255
  9. package/dist/functions/ast-transformers/convert-to-readonly.mjs.map +1 -1
  10. package/dist/functions/ast-transformers/enable-no-unchecked-indexed-access.d.mts +8 -8
  11. package/dist/functions/ast-transformers/enable-no-unchecked-indexed-access.mjs +103 -104
  12. package/dist/functions/ast-transformers/enable-no-unchecked-indexed-access.mjs.map +1 -1
  13. package/dist/functions/ast-transformers/replace-record-with-unknown-record.d.mts +2 -2
  14. package/dist/functions/ast-transformers/replace-record-with-unknown-record.mjs +51 -51
  15. package/dist/functions/ast-transformers/replace-record-with-unknown-record.mjs.map +1 -1
  16. package/dist/functions/ast-transformers/transform-source-code.d.mts.map +1 -1
  17. package/dist/functions/ast-transformers/transform-source-code.mjs +69 -69
  18. package/dist/functions/ast-transformers/transform-source-code.mjs.map +1 -1
  19. package/dist/functions/constants/index.d.mts +1 -0
  20. package/dist/functions/constants/index.d.mts.map +1 -1
  21. package/dist/functions/constants/index.mjs +1 -0
  22. package/dist/functions/constants/index.mjs.map +1 -1
  23. package/dist/functions/constants/mutable-prefixes.d.mts +23 -0
  24. package/dist/functions/constants/mutable-prefixes.d.mts.map +1 -0
  25. package/dist/functions/constants/mutable-prefixes.mjs +28 -0
  26. package/dist/functions/constants/mutable-prefixes.mjs.map +1 -0
  27. package/dist/functions/functions/has-disable-next-line-comment.mjs +23 -23
  28. package/dist/functions/functions/has-disable-next-line-comment.mjs.map +1 -1
  29. package/dist/functions/functions/is-readonly-node.d.mts +2 -2
  30. package/dist/functions/functions/is-readonly-node.d.mts.map +1 -1
  31. package/dist/functions/functions/is-readonly-node.mjs +13 -13
  32. package/dist/functions/functions/is-readonly-node.mjs.map +1 -1
  33. package/dist/functions/functions/wrap-with-parentheses.d.mts +2 -2
  34. package/dist/functions/functions/wrap-with-parentheses.d.mts.map +1 -1
  35. package/dist/functions/functions/wrap-with-parentheses.mjs +87 -32
  36. package/dist/functions/functions/wrap-with-parentheses.mjs.map +1 -1
  37. package/dist/functions/utils/replace-node-with-text.d.mts +10 -11
  38. package/dist/functions/utils/replace-node-with-text.d.mts.map +1 -1
  39. package/dist/functions/utils/replace-node-with-text.mjs +0 -1
  40. package/dist/functions/utils/replace-node-with-text.mjs.map +1 -1
  41. package/package.json +6 -6
  42. package/src/functions/ast-transformers/append-as-const.mts +319 -174
  43. package/src/functions/ast-transformers/append-as-const.test.mts +118 -7
  44. package/src/functions/ast-transformers/convert-to-readonly.mts +568 -489
  45. package/src/functions/ast-transformers/convert-to-readonly.test.mts +381 -74
  46. package/src/functions/ast-transformers/enable-no-unchecked-indexed-access.mts +178 -179
  47. package/src/functions/ast-transformers/enable-no-unchecked-indexed-access.test.mts +29 -29
  48. package/src/functions/ast-transformers/replace-any-with-unknown.test.mts +6 -6
  49. package/src/functions/ast-transformers/replace-record-with-unknown-record.mts +75 -75
  50. package/src/functions/ast-transformers/replace-record-with-unknown-record.test.mts +6 -6
  51. package/src/functions/ast-transformers/transform-source-code.mts +110 -110
  52. package/src/functions/ast-transformers/transformer-specific-ignore.test.mts +6 -6
  53. package/src/functions/constants/index.mts +1 -0
  54. package/src/functions/constants/mutable-prefixes.mts +28 -0
  55. package/src/functions/functions/has-disable-next-line-comment.mts +35 -35
  56. package/src/functions/functions/is-readonly-node.mts +25 -25
  57. package/src/functions/functions/wrap-with-parentheses.mts +138 -52
  58. package/src/functions/functions/wrap-with-parentheses.test.mts +115 -0
  59. package/src/functions/utils/replace-node-with-text.mts +10 -11
package/README.md CHANGED
@@ -51,7 +51,8 @@ Options:
51
51
  - `applyLevel`: `'all'` or `'avoidInFunctionArgs'` (default: `'avoidInFunctionArgs'`)
52
52
  - `'avoidInFunctionArgs'`: Avoids adding `as const` inside function call arguments
53
53
  - `'all'`: Applies `as const` everywhere
54
- - `ignorePrefixes`: Array of string prefixes for identifiers that should not have `as const` added (default: `['mut_', '#mut_', '_mut_', 'draft']`)
54
+ - `mutableVariablePrefixes`: Array of string prefixes for variable names that should not have `as const` added; a value annotated with their type (`typeof mut_x`) is left without one too (default: `['mut_']`)
55
+ - `mutableTypePrefixes`: Array of string prefixes for type names: a variable whose type annotation names such a type, an expression that `satisfies` one, or the expression body of an arrow function returning one, gets no `as const`, which would make it unassignable to that type (default: `['Mutable', 'mut_']`); so does a value annotated with the type of a class of such a name (`InstanceType<typeof MutableStore>`). Only names are read, so an alias of another name for such a type is not recognized
55
56
  - `removeAsConstForConstTypeParameters`: Whether to remove redundant `as const` assertions from call arguments whose corresponding parameter type is exactly a `const`-modified type parameter (default: `true`). Only applies when the callee resolves to a single call signature within the transformed file itself; imported callees, overloads, calls with explicit type arguments and spread arguments are left as they are.
56
57
 
57
58
  Example:
@@ -86,7 +87,10 @@ Converts TypeScript type definitions to readonly types. This transformer helps i
86
87
 
87
88
  Options:
88
89
 
89
- - `ignorePrefixes`: Array of string prefixes for identifiers that should not be made readonly (default: `['mut_', '#mut_', '_mut_', 'draft']`). A type literal with a property, a method or an accessor of such a prefix is not wrapped with `Readonly<...>`, which would make that member readonly too; its other members are marked `readonly` one by one instead, and a `Readonly<...>` written around it is taken off. It is wrapped as before when it also has a member that cannot be marked `readonly` by itself (a method signature or an accessor without such a prefix, or a property or index signature not yet `readonly` that an ignore comment skips), or when it is a member of a `Readonly<...>` intersection beside a type that may be an array
90
+ - `mutableVariablePrefixes`: Array of string prefixes for the names of variables, parameters and functions whose types should not be made readonly (default: `['mut_']`). A constructor parameter property is decided by `mutablePropertyPrefixes` instead
91
+ - `mutableTypePrefixes`: Array of string prefixes for the names of type aliases, interfaces and classes (a named class expression included) whose declarations should not be made readonly (default: `['Mutable', 'mut_']`)
92
+ - `mutablePropertyPrefixes`: Array of string prefixes for the names of properties, methods and accessors (constructor parameter properties included; a private name is matched with or after its `#`, so both `mut_` and `#mut_` cover `#mut_x`) that should not be made readonly (default: `['mut_']`). Of a named tuple member with such a prefix, only the type is kept; the tuple is still made `readonly`.. A type literal with a property, a method or an accessor of such a prefix is not wrapped with `Readonly<...>`, which would make that member readonly too; its other members are marked `readonly` one by one instead, and a `Readonly<...>` written around it is taken off. It is wrapped as before when it also has a member that cannot be marked `readonly` by itself (a method signature or an accessor without such a prefix, or a property or index signature not yet `readonly` that an ignore comment skips), or when it is a member of a `Readonly<...>` intersection beside a type that may be an array
93
+ - A list given to `mutableVariablePrefixes`, `mutableTypePrefixes` or `mutablePropertyPrefixes` replaces the default; to add to it, spread `DEFAULT_MUTABLE_PREFIXES` (`[...DEFAULT_MUTABLE_PREFIXES, 'draft']`) or `DEFAULT_MUTABLE_TYPE_PREFIXES`
90
94
  - `DeepReadonly.typeName`: Custom name for the DeepReadonly type utility (default: `"DeepReadonly"`)
91
95
  - `recordStyle`: Output style used when making `Record<K, V>` readonly (default: `"ReadonlyRecord"`). `"ReadonlyRecord"` uses the `ReadonlyRecord` type utility provided by `ts-type-forge` (no import statement is added, so it has to be available in the transformed code, e.g. globally via `ts-type-forge`'s `global.d.mts`), while `"Readonly<Record>"` uses only built-in utility types (`Readonly<Record<K, V>>`). Whichever style is selected, `Record<K, V>`, `Readonly<Record<K, V>>`, `ReadonlyRecord<K, V>`, and redundant wrappers such as `Readonly<ReadonlyRecord<K, V>>` are all unified to that style.
92
96
 
@@ -99,7 +103,7 @@ type User = {
99
103
  description: string;
100
104
  preferences: Map<string, string>;
101
105
  friendIds: number[];
102
- mut_items: string[]; // With ignorePrefixes: ['mut_']
106
+ mut_items: string[]; // With mutablePropertyPrefixes: ['mut_']
103
107
  };
104
108
 
105
109
  // After (not wrapped with `Readonly`, which would make `mut_items` readonly
@@ -7,25 +7,33 @@ export type AppendAsConstTransformerOptions = DeepReadonly<{
7
7
  */
8
8
  applyLevel?: 'all' | 'avoidInFunctionArgs';
9
9
  /**
10
- * A mute keywords to ignore the readonly conversion.
10
+ * Prefixes of the names of variables that are left mutable: their
11
+ * initializers get no `as const`, nor does a value annotated with their type
12
+ * (`typeof mut_x`).
11
13
  *
12
- * (e.g. `"mut_"`)
14
+ * @default ['mut_']
15
+ */
16
+ mutableVariablePrefixes?: string[];
17
+ /**
18
+ * Prefixes of the names of mutable types (see `convert-to-readonly`): a
19
+ * variable whose type annotation names such a type, an expression that
20
+ * `satisfies` one and an arrow function body returning one get no `as const`,
21
+ * which would make them unassignable to it.
13
22
  *
14
- * @default ['mut_', '#mut_', '_mut_', 'draft']
23
+ * @default ['Mutable', 'mut_']
15
24
  */
16
- ignorePrefixes?: string[];
25
+ mutableTypePrefixes?: string[];
17
26
  /**
18
- * Whether to remove redundant `as const` assertions from call arguments
19
- * whose corresponding parameter type is exactly a `const`-modified type
20
- * parameter.
27
+ * Whether to remove redundant `as const` assertions from call arguments whose
28
+ * corresponding parameter type is exactly a `const`-modified type parameter.
21
29
  *
22
30
  * (e.g. `f([1, 2] as const)` becomes `f([1, 2])` for
23
- * `function f<const T>(x: T): T`, because the `const` type parameter
24
- * already makes TypeScript infer the argument as if it were annotated
25
- * with `as const`.)
31
+ * `function f<const T>(x: T): T`, because the `const` type parameter already
32
+ * makes TypeScript infer the argument as if it were annotated with
33
+ * `as const`.)
26
34
  *
27
- * Only applies when the callee resolves to a single call signature within
28
- * the transformed file itself; imported callees are left as they are.
35
+ * Only applies when the callee resolves to a single call signature within the
36
+ * transformed file itself; imported callees are left as they are.
29
37
  *
30
38
  * @default true
31
39
  */
@@ -1 +1 @@
1
- {"version":3,"file":"append-as-const.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/append-as-const.mts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AASlD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,eAAO,MAAM,wBAAwB,aACzB,+BAA+B,KACxC,kBA0CF,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,YAAY,CAAC;IACzD;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,GAAG,qBAAqB,CAAC;IAE3C;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;;;;;;;;;;;;;OAcG;IACH,mCAAmC,CAAC,EAAE,OAAO,CAAC;IAE9C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"append-as-const.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/append-as-const.mts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAalD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,eAAO,MAAM,wBAAwB,aACzB,+BAA+B,KACxC,kBAoDF,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,YAAY,CAAC;IACzD;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,GAAG,qBAAqB,CAAC;IAE3C;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;;;;;;;;;;;OAaG;IACH,mCAAmC,CAAC,EAAE,OAAO,CAAC;IAE9C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC"}
@@ -1,16 +1,20 @@
1
- import { Arr, ISet } from 'ts-data-forge';
1
+ import { Arr, ISet, isRecord } from 'ts-data-forge';
2
2
  import * as tsm from 'ts-morph';
3
+ import { DEFAULT_MUTABLE_PREFIXES, DEFAULT_MUTABLE_TYPE_PREFIXES, } from '../constants/index.mjs';
3
4
  import { hasDisableNextLineComment, isAsConstNode, } from '../functions/index.mjs';
4
5
  import { replaceNodeWithDebugPrint, replaceNodeWithText, } from '../utils/index.mjs';
5
6
  const TRANSFORMER_NAME = 'append-as-const';
6
7
  export const appendAsConstTransformer = (options) => {
7
8
 
8
-
9
-
10
- const ignorePrefixes = ISet.create(options?.ignorePrefixes ?? ['mut_', '#mut_', '_mut_', 'draft']);
9
+ const untypedOptions = options;
10
+ if (isRecord(untypedOptions) &&
11
+ untypedOptions['ignorePrefixes'] !== undefined) {
12
+ throw new Error(`The "ignorePrefixes" option of ${TRANSFORMER_NAME} was renamed to "mutableVariablePrefixes".`);
13
+ }
11
14
  const optionsInternal = {
12
15
  applyLevel: options?.applyLevel ?? 'avoidInFunctionArgs',
13
- ignoredPrefixes: ignorePrefixes,
16
+ mutableVariablePrefixes: ISet.create(options?.mutableVariablePrefixes ?? DEFAULT_MUTABLE_PREFIXES),
17
+ mutableTypePrefixes: ISet.create(options?.mutableTypePrefixes ?? DEFAULT_MUTABLE_TYPE_PREFIXES),
14
18
  removeAsConstForConstTypeParameters: options?.removeAsConstForConstTypeParameters ?? true,
15
19
  debugPrint: options?.debug === true ? console.debug : () => { },
16
20
  replaceNode: options?.debug === true
@@ -32,6 +36,73 @@ export const appendAsConstTransformer = (options) => {
32
36
  },
33
37
  };
34
38
  };
39
+
40
+
41
+
42
+
43
+ const isConstAssertionNode = (node) => {
44
+ if (isAsConstNode(node)) {
45
+ return true;
46
+ }
47
+ if (!tsm.Node.isTypeAssertion(node)) {
48
+ return false;
49
+ }
50
+ const typeNode = node.getTypeNode();
51
+ return (typeNode !== undefined &&
52
+ typeNode.isKind(tsm.SyntaxKind.TypeReference) &&
53
+ typeNode.getTypeName().getText() === 'const' &&
54
+ Arr.isEmpty(typeNode.getTypeArguments()));
55
+ };
56
+
57
+ const lastNameOf = (
58
+
59
+ entityName) => (tsm.Node.isQualifiedName(entityName)
60
+ ? entityName.getRight()
61
+ : entityName).getText();
62
+
63
+ const firstNameOf = (
64
+
65
+ entityName) => tsm.Node.isQualifiedName(entityName)
66
+ ? firstNameOf(entityName.getLeft())
67
+ : entityName.getText();
68
+ const startsWithAny = (prefixes, name) => prefixes.some((p) => name.startsWith(p));
69
+
70
+
71
+
72
+
73
+ const isMutableValueName = (name, options) => startsWithAny(options.mutableVariablePrefixes, name) ||
74
+ startsWithAny(options.mutableTypePrefixes, name);
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+ const refersToMutableType = (
83
+
84
+ typeNode, options) => {
85
+ if (typeNode === undefined) {
86
+ return false;
87
+ }
88
+ const refers = (n) => {
89
+ if (n.isKind(tsm.SyntaxKind.TypeReference)) {
90
+ return startsWithAny(options.mutableTypePrefixes, lastNameOf(n.getTypeName()));
91
+ }
92
+ if (n.isKind(tsm.SyntaxKind.ImportType)) {
93
+ const qualifier = n.getQualifier();
94
+ return (qualifier !== undefined &&
95
+
96
+ (n.compilerNode.isTypeOf
97
+ ? isMutableValueName(firstNameOf(qualifier), options)
98
+ : startsWithAny(options.mutableTypePrefixes, lastNameOf(qualifier))));
99
+ }
100
+
101
+ return (n.isKind(tsm.SyntaxKind.TypeQuery) &&
102
+ isMutableValueName(firstNameOf(n.getExprName()), options));
103
+ };
104
+ return refers(typeNode) || typeNode.getFirstDescendant(refers) !== undefined;
105
+ };
35
106
  const transformNode = (node, context, options) => {
36
107
  if (node.wasForgotten()) {
37
108
  return;
@@ -48,10 +119,10 @@ const transformNode = (node, context, options) => {
48
119
  if (node.isKind(tsm.SyntaxKind.VariableDeclaration)) {
49
120
  const nodeName = node.getName();
50
121
 
51
- if (options.ignoredPrefixes.some((p) => nodeName.startsWith(p))) {
122
+ if (options.mutableVariablePrefixes.some((p) => nodeName.startsWith(p))) {
52
123
 
53
124
 
54
- options.debugPrint('skipped variable declaration by ignorePrefixes');
125
+ options.debugPrint('skipped variable declaration by mutableVariablePrefixes');
55
126
  return;
56
127
  }
57
128
  const variableStatement = node.getVariableStatement();
@@ -63,6 +134,13 @@ const transformNode = (node, context, options) => {
63
134
  if (initializer === undefined) {
64
135
  return;
65
136
  }
137
+
138
+
139
+ const typeNode = node.getTypeNode();
140
+ if (refersToMutableType(typeNode, options)) {
141
+ options.debugPrint('skipped variable declaration annotated with a mutable type');
142
+ return;
143
+ }
66
144
  const declarationKindKeywords = node
67
145
  .getVariableStatement()
68
146
  ?.getDeclarationKindKeywords()
@@ -98,6 +176,12 @@ const transformNode = (node, context, options) => {
98
176
  }
99
177
 
100
178
  if (tsm.Node.isSatisfiesExpression(node)) {
179
+
180
+
181
+ if (refersToMutableType(node.getTypeNode(), options)) {
182
+ options.debugPrint('skipped satisfies expression with a mutable type');
183
+ return;
184
+ }
101
185
  transformNode(node.getExpression(), context, options);
102
186
  return;
103
187
  }
@@ -111,6 +195,12 @@ const transformNode = (node, context, options) => {
111
195
  }
112
196
 
113
197
  if (tsm.Node.isArrowFunction(node)) {
198
+
199
+
200
+ if (refersToMutableType(node.getReturnTypeNode(), options)) {
201
+ options.debugPrint('skipped arrow function with a mutable return type');
202
+ return;
203
+ }
114
204
  const body = node.getBody();
115
205
  transformNode(body, context, options);
116
206
  return;
@@ -216,58 +306,38 @@ const transformNode = (node, context, options) => {
216
306
 
217
307
  };
218
308
 
309
+ const skipParenthesizedExpressions = (node) => tsm.Node.isParenthesizedExpression(node)
310
+ ? skipParenthesizedExpressions(node.getExpression())
311
+ : node;
312
+ const getMatchedParameter = (
219
313
 
314
+ parameters, argumentIndex) => {
315
+ if (argumentIndex < parameters.length) {
316
+ return parameters[argumentIndex];
317
+ }
318
+ const lastParameter = parameters.at(-1);
319
+ return lastParameter?.isRestParameter() === true ? lastParameter : undefined;
320
+ };
220
321
 
221
322
 
222
323
 
223
324
 
224
325
 
225
326
 
327
+ const isBareConstTypeParameterReference = (
226
328
 
227
-
228
-
229
-
230
-
231
-
232
-
233
-
234
-
235
-
236
- const removeAsConstInConstTypeParameterArgs = (
237
-
238
- sourceAst, options) => {
239
-
240
-
241
- for (const call of sourceAst
242
- .getDescendantsOfKind(tsm.SyntaxKind.CallExpression)
243
- .toReversed()) {
244
- if (call.wasForgotten()) {
245
- continue;
246
- }
247
- const args = call.getArguments();
248
-
249
- if (args.every((arg) => !isConstAssertionNode(skipParenthesizedExpressions(arg)))) {
250
- continue;
251
- }
252
- if (hasDisableNextLineComment(call, TRANSFORMER_NAME)) {
253
- continue;
254
- }
255
- const variableStatement = call.getFirstAncestorByKind(tsm.SyntaxKind.VariableStatement);
256
- if (variableStatement !== undefined &&
257
- hasDisableNextLineComment(variableStatement, TRANSFORMER_NAME)) {
258
- continue;
259
- }
260
-
261
-
262
- if (!Arr.isEmpty(call.getTypeArguments())) {
263
- continue;
264
- }
265
- const callTarget = resolveSingleSignatureCallTarget(call);
266
- if (callTarget === undefined) {
267
- continue;
268
- }
269
- removeAsConstArgsOfCall(args, callTarget, options);
329
+ parameter, constTypeParameterNames) => {
330
+ const typeNode = parameter.getTypeNode();
331
+ if (typeNode === undefined) {
332
+ return false;
333
+ }
334
+ if (!typeNode.isKind(tsm.SyntaxKind.TypeReference)) {
335
+ return false;
270
336
  }
337
+ const typeName = typeNode.getTypeName();
338
+ return (typeName.isKind(tsm.SyntaxKind.Identifier) &&
339
+ Arr.isEmpty(typeNode.getTypeArguments()) &&
340
+ constTypeParameterNames.has(typeName.getText()));
271
341
  };
272
342
  const removeAsConstArgsOfCall = (args,
273
343
 
@@ -305,23 +375,12 @@ callTarget, options) => {
305
375
 
306
376
 
307
377
 
308
- const isConstAssertionNode = (node) => {
309
- if (isAsConstNode(node)) {
310
- return true;
311
- }
312
- if (!tsm.Node.isTypeAssertion(node)) {
313
- return false;
314
- }
315
- const typeNode = node.getTypeNode();
316
- return (typeNode !== undefined &&
317
- typeNode.isKind(tsm.SyntaxKind.TypeReference) &&
318
- typeNode.getTypeName().getText() === 'const' &&
319
- Arr.isEmpty(typeNode.getTypeArguments()));
320
- };
321
378
 
322
- const skipParenthesizedExpressions = (node) => tsm.Node.isParenthesizedExpression(node)
323
- ? skipParenthesizedExpressions(node.getExpression())
324
- : node;
379
+
380
+ const dropThisParameter = (
381
+
382
+ parameters) => parameters.filter((parameter) => parameter.getName() !== 'this');
383
+
325
384
 
326
385
 
327
386
 
@@ -342,7 +401,6 @@ call) => {
342
401
 
343
402
 
344
403
 
345
-
346
404
  if (!Arr.isFixedLengthArray(1, call.getExpression().getType().getCallSignatures())) {
347
405
  return undefined;
348
406
  }
@@ -367,38 +425,62 @@ call) => {
367
425
  return undefined;
368
426
  }
369
427
  return {
370
- parameters: declaration.getParameters(),
428
+ parameters: dropThisParameter(declaration.getParameters()),
371
429
  constTypeParameterNames,
372
430
  };
373
431
  };
374
- const getMatchedParameter = (
375
432
 
376
- parameters, argumentIndex) => {
377
- if (argumentIndex < parameters.length) {
378
- return parameters[argumentIndex];
379
- }
380
- const lastParameter = parameters.at(-1);
381
- return lastParameter?.isRestParameter() === true ? lastParameter : undefined;
382
- };
383
433
 
384
434
 
385
435
 
386
436
 
387
437
 
388
438
 
389
- const isBareConstTypeParameterReference = (
390
439
 
391
- parameter, constTypeParameterNames) => {
392
- const typeNode = parameter.getTypeNode();
393
- if (typeNode === undefined) {
394
- return false;
395
- }
396
- if (!typeNode.isKind(tsm.SyntaxKind.TypeReference)) {
397
- return false;
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+ const removeAsConstInConstTypeParameterArgs = (
451
+
452
+ sourceAst, options) => {
453
+
454
+
455
+ for (const call of sourceAst
456
+ .getDescendantsOfKind(tsm.SyntaxKind.CallExpression)
457
+ .toReversed()) {
458
+ if (call.wasForgotten()) {
459
+ continue;
460
+ }
461
+ const args = call.getArguments();
462
+
463
+ if (args.every((arg) => !isConstAssertionNode(skipParenthesizedExpressions(arg)))) {
464
+ continue;
465
+ }
466
+ if (hasDisableNextLineComment(call, TRANSFORMER_NAME)) {
467
+ continue;
468
+ }
469
+ const variableStatement = call.getFirstAncestorByKind(tsm.SyntaxKind.VariableStatement);
470
+ if (variableStatement !== undefined &&
471
+ hasDisableNextLineComment(variableStatement, TRANSFORMER_NAME)) {
472
+ continue;
473
+ }
474
+
475
+
476
+ if (!Arr.isEmpty(call.getTypeArguments())) {
477
+ continue;
478
+ }
479
+ const callTarget = resolveSingleSignatureCallTarget(call);
480
+ if (callTarget === undefined) {
481
+ continue;
482
+ }
483
+ removeAsConstArgsOfCall(args, callTarget, options);
398
484
  }
399
- const typeName = typeNode.getTypeName();
400
- return (typeName.isKind(tsm.SyntaxKind.Identifier) &&
401
- Arr.isEmpty(typeNode.getTypeArguments()) &&
402
- constTypeParameterNames.has(typeName.getText()));
403
485
  };
404
486
  //# sourceMappingURL=append-as-const.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"append-as-const.mjs","sourceRoot":"","sources":["../../../src/functions/ast-transformers/append-as-const.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"append-as-const.mjs","sourceRoot":"","sources":["../../../src/functions/ast-transformers/append-as-const.mts"],"names":[],"mappings":"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"}
@@ -20,12 +20,31 @@ export type ReadonlyTransformerOptions = DeepReadonly<{
20
20
  */
21
21
  ignoreEmptyObjectTypes?: boolean;
22
22
  /**
23
- * A mute keywords to ignore the readonly conversion.
23
+ * Prefixes of the names of variables, parameters (but for a constructor
24
+ * parameter property, which `mutablePropertyPrefixes` decides) and functions
25
+ * that are left mutable: their types are not made readonly.
24
26
  *
25
- * (e.g. `"mut_"`)
27
+ * @default ['mut_']
28
+ */
29
+ mutableVariablePrefixes?: string[];
30
+ /**
31
+ * Prefixes of the names of type aliases, interfaces, class declarations and
32
+ * named class expressions that are left mutable: their declarations are not
33
+ * made readonly.
34
+ *
35
+ * @default ['Mutable', 'mut_']
36
+ */
37
+ mutableTypePrefixes?: string[];
38
+ /**
39
+ * Prefixes of the names of properties, methods and accessors (of type
40
+ * literals, interfaces and classes, constructor parameter properties
41
+ * included) that are left mutable: they get no `readonly`, and their types
42
+ * are not made readonly. A private name is matched with or after its `#`, so
43
+ * both `mut_` and `#mut_` cover `#mut_x`. Of a named tuple member with such a prefix, only the type
44
+ * is kept; the tuple is still made `readonly`.
26
45
  *
27
- * A type literal with a property, a method or an accessor of such a prefix
28
- * is not wrapped with `Readonly<...>`, which would make that member readonly
46
+ * A type literal with a property, a method or an accessor of such a prefix is
47
+ * not wrapped with `Readonly<...>`, which would make that member readonly
29
48
  * too; its other members are marked `readonly` one by one instead, and a
30
49
  * `Readonly<...>` written around it is taken off. It is wrapped as before
31
50
  * when it also has a member that cannot be marked `readonly` by itself (a
@@ -34,9 +53,9 @@ export type ReadonlyTransformerOptions = DeepReadonly<{
34
53
  * it is a member of a `Readonly<...>` intersection beside a type that may be
35
54
  * an array.
36
55
  *
37
- * @default ['mut_', '#mut_', '_mut_', 'draft']
56
+ * @default ['mut_']
38
57
  */
39
- ignorePrefixes?: string[];
58
+ mutablePropertyPrefixes?: string[];
40
59
  /**
41
60
  * The output style used when making `Record<K, V>` readonly.
42
61
  *
@@ -1 +1 @@
1
- {"version":3,"file":"convert-to-readonly.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/convert-to-readonly.mts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,eAAe,CAAC;AA2BvB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,eAAO,MAAM,4BAA4B,aAC7B,0BAA0B,KACnC,kBA4CF,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;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;;;;;;;;;;;;;;;;OAiBG;IACH,WAAW,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,CAAC;IAEpD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"convert-to-readonly.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/convert-to-readonly.mts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,eAAe,CAAC;AA+BvB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,eAAO,MAAM,4BAA4B,aAC7B,0BAA0B,KACnC,kBAwDF,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,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE/B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnC;;;;;;;;;;;;;;;;;OAiBG;IACH,WAAW,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,CAAC;IAEpD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC"}