ts-codemod-lib 3.4.0 → 3.4.2
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 +4 -4
- package/dist/functions/ast-transformers/append-as-const.d.mts +2 -2
- package/dist/functions/ast-transformers/append-as-const.d.mts.map +1 -1
- package/dist/functions/ast-transformers/append-as-const.mjs +13 -3
- package/dist/functions/ast-transformers/append-as-const.mjs.map +1 -1
- package/dist/functions/ast-transformers/convert-interface-to-type.d.mts +1 -1
- package/dist/functions/ast-transformers/convert-interface-to-type.d.mts.map +1 -1
- package/dist/functions/ast-transformers/convert-to-readonly.d.mts +2 -2
- package/dist/functions/ast-transformers/convert-to-readonly.d.mts.map +1 -1
- package/dist/functions/ast-transformers/convert-to-readonly.mjs +157 -33
- package/dist/functions/ast-transformers/convert-to-readonly.mjs.map +1 -1
- package/dist/functions/ast-transformers/enable-no-unchecked-indexed-access.d.mts +2 -2
- package/dist/functions/ast-transformers/enable-no-unchecked-indexed-access.d.mts.map +1 -1
- package/dist/functions/ast-transformers/enable-no-unchecked-indexed-access.mjs +24 -6
- package/dist/functions/ast-transformers/enable-no-unchecked-indexed-access.mjs.map +1 -1
- package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.d.mts +32 -2
- package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.d.mts.map +1 -1
- package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mjs +88 -2
- package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mjs.map +1 -1
- package/dist/functions/ast-transformers/readonly-transformer-helpers/readonly-context.d.mts +1 -1
- package/dist/functions/ast-transformers/readonly-transformer-helpers/readonly-context.d.mts.map +1 -1
- package/dist/functions/ast-transformers/replace-any-with-unknown.d.mts +1 -1
- package/dist/functions/ast-transformers/replace-any-with-unknown.d.mts.map +1 -1
- package/dist/functions/ast-transformers/replace-record-with-unknown-record.d.mts +1 -1
- package/dist/functions/ast-transformers/replace-record-with-unknown-record.d.mts.map +1 -1
- package/dist/functions/ast-transformers/transform-source-code.d.mts +1 -1
- package/dist/functions/ast-transformers/transform-source-code.d.mts.map +1 -1
- package/dist/functions/functions/is-atomic-type-node.d.mts +1 -1
- package/dist/functions/functions/is-atomic-type-node.d.mts.map +1 -1
- package/dist/functions/functions/is-readonly-node.d.mts +1 -1
- package/dist/functions/functions/is-readonly-node.d.mts.map +1 -1
- package/dist/functions/functions/unwrap-readonly.d.mts +1 -1
- package/dist/functions/functions/unwrap-readonly.d.mts.map +1 -1
- package/package.json +14 -14
- package/src/functions/ast-transformers/append-as-const.mts +21 -5
- package/src/functions/ast-transformers/append-as-const.test.mts +24 -0
- package/src/functions/ast-transformers/convert-interface-to-type.mts +1 -1
- package/src/functions/ast-transformers/convert-to-readonly.mts +249 -52
- package/src/functions/ast-transformers/convert-to-readonly.test.mts +421 -7
- package/src/functions/ast-transformers/enable-no-unchecked-indexed-access.mts +30 -8
- package/src/functions/ast-transformers/enable-no-unchecked-indexed-access.test.mts +111 -0
- package/src/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mts +1 -1
- package/src/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mts +124 -3
- package/src/functions/ast-transformers/readonly-transformer-helpers/readonly-context.mts +1 -1
- package/src/functions/ast-transformers/replace-any-with-unknown.mts +1 -1
- package/src/functions/ast-transformers/replace-record-with-unknown-record.mts +1 -1
- package/src/functions/ast-transformers/transform-source-code.mts +1 -1
- package/src/functions/functions/is-atomic-type-node.mts +1 -1
- package/src/functions/functions/is-readonly-node.mts +1 -1
- package/src/functions/functions/unwrap-readonly.mts +1 -1
package/README.md
CHANGED
|
@@ -383,12 +383,12 @@ const transformedCode = transformSourceCode(originalCode, isTsx, [
|
|
|
383
383
|
const expected = dedent`
|
|
384
384
|
import { type UnknownRecord } from "ts-type-forge";
|
|
385
385
|
|
|
386
|
-
export type A = Readonly<
|
|
386
|
+
export type A = Readonly<{
|
|
387
387
|
name?: string;
|
|
388
|
-
point: (readonly
|
|
389
|
-
meta: Readonly<
|
|
388
|
+
point: (readonly [x: number, y: number, z?: number]);
|
|
389
|
+
meta: Readonly<{
|
|
390
390
|
description?: string;
|
|
391
|
-
tags: (readonly
|
|
391
|
+
tags: (readonly string[]);
|
|
392
392
|
attributes: UnknownRecord;
|
|
393
393
|
data?: unknown;
|
|
394
394
|
}>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { DeepReadonly } from 'ts-type-forge';
|
|
2
|
+
import type { TsMorphTransformer } from './types.mjs';
|
|
3
3
|
export declare const appendAsConstTransformer: (options?: AppendAsConstTransformerOptions) => TsMorphTransformer;
|
|
4
4
|
export type AppendAsConstTransformerOptions = DeepReadonly<{
|
|
5
5
|
/**
|
|
@@ -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,EAAE,
|
|
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;AAMlD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,eAAO,MAAM,wBAAwB,aACzB,+BAA+B,KACxC,kBAuCF,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"}
|
|
@@ -233,7 +233,7 @@ sourceAst, options) => {
|
|
|
233
233
|
}
|
|
234
234
|
const args = call.getArguments();
|
|
235
235
|
|
|
236
|
-
if (
|
|
236
|
+
if (args.every((arg) => !isAsConstNode(skipParenthesizedExpressions(arg)))) {
|
|
237
237
|
continue;
|
|
238
238
|
}
|
|
239
239
|
if (hasDisableNextLineComment(call, TRANSFORMER_NAME)) {
|
|
@@ -267,7 +267,12 @@ callTarget, options) => {
|
|
|
267
267
|
if (argumentIndex >= mappableArgCount) {
|
|
268
268
|
return;
|
|
269
269
|
}
|
|
270
|
-
if (argument.wasForgotten()
|
|
270
|
+
if (argument.wasForgotten()) {
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
const asConst = skipParenthesizedExpressions(argument);
|
|
275
|
+
if (!isAsConstNode(asConst)) {
|
|
271
276
|
continue;
|
|
272
277
|
}
|
|
273
278
|
if (hasDisableNextLineComment(argument, TRANSFORMER_NAME)) {
|
|
@@ -279,10 +284,15 @@ callTarget, options) => {
|
|
|
279
284
|
continue;
|
|
280
285
|
}
|
|
281
286
|
options.debugPrint('removing redundant as const in const type parameter argument', argument.getText());
|
|
282
|
-
|
|
287
|
+
|
|
288
|
+
options.replaceNode(argument, asConst.getExpression().getText());
|
|
283
289
|
}
|
|
284
290
|
};
|
|
285
291
|
|
|
292
|
+
const skipParenthesizedExpressions = (node) => tsm.Node.isParenthesizedExpression(node)
|
|
293
|
+
? skipParenthesizedExpressions(node.getExpression())
|
|
294
|
+
: node;
|
|
295
|
+
|
|
286
296
|
|
|
287
297
|
|
|
288
298
|
|
|
@@ -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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"}
|
|
@@ -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":"AAKA,OAAO,EAAE,
|
|
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,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD;;;GAGG;AACH,eAAO,MAAM,iCAAiC,QAAO,kBAqHxC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { DeepReadonly } from 'ts-type-forge';
|
|
2
|
+
import type { TsMorphTransformer } from './types.mjs';
|
|
3
3
|
export declare const convertToReadonlyTransformer: (options?: ReadonlyTransformerOptions) => TsMorphTransformer;
|
|
4
4
|
export type ReadonlyTransformerOptions = DeepReadonly<{
|
|
5
5
|
/**
|
|
@@ -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,
|
|
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;AAuBvB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,eAAO,MAAM,4BAA4B,aAC7B,0BAA0B,KACnC,kBAwCF,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;;;;;;;;;;;;;;;;;OAiBG;IACH,WAAW,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,CAAC;IAEpD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { Arr, ISet, isString, mapNullable, match, pipe, } from 'ts-data-forge';
|
|
|
2
2
|
import * as tsm from 'ts-morph';
|
|
3
3
|
import { hasCallOrConstructSignature, hasDisableNextLineComment, isAtomicTypeNode, isConditionalTypeDistributionGuard, isReadonlyArrayTypeNode, isReadonlyTupleOrArrayTypeNode, isReadonlyTupleTypeNode, isReadonlyTypeReferenceNode, removeParentheses, shouldAvoidParenthesesForReadonly, unwrapReadonlyTypeArgText, wrapWithParentheses, } from '../functions/index.mjs';
|
|
4
4
|
import { replaceNodeWithDebugPrint } from '../utils/index.mjs';
|
|
5
|
-
import { groupUnionIntersectionTypes, invalidDeepReadonlyTypeName, nextReadonlyContext, } from './readonly-transformer-helpers/index.mjs';
|
|
5
|
+
import { groupUnionIntersectionTypes, invalidDeepReadonlyTypeName, isMergeableReadonlyTypeReferenceNode, nextReadonlyContext, } from './readonly-transformer-helpers/index.mjs';
|
|
6
6
|
const TRANSFORMER_NAME = 'convert-to-readonly';
|
|
7
7
|
export const convertToReadonlyTransformer = (options) => {
|
|
8
8
|
if (options?.DeepReadonly?.typeName !== undefined &&
|
|
@@ -344,25 +344,36 @@ node, readonlyContext, options) => {
|
|
|
344
344
|
indexedAccessDepthChange: 'keep',
|
|
345
345
|
}), options);
|
|
346
346
|
|
|
347
|
-
const
|
|
347
|
+
const typeArgument = node.getTypeArguments()[0];
|
|
348
|
+
const T = removeParentheses(typeArgument);
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
const commentsInFrontOfT = commentsBetween(node.getSourceFile(), typeArgument.getPos(), T.getStart());
|
|
352
|
+
const TText = `${commentsInFrontOfT}${T.getText()}`;
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
const unwrappedText = T.isKind(tsm.SyntaxKind.UnionType) ||
|
|
356
|
+
T.isKind(tsm.SyntaxKind.IntersectionType)
|
|
357
|
+
? wrapWithParentheses(TText)
|
|
358
|
+
: TText;
|
|
348
359
|
|
|
349
360
|
if (readonlyContext.type === 'DeepReadonly') {
|
|
350
|
-
options.replaceNode(node,
|
|
361
|
+
options.replaceNode(node, unwrappedText);
|
|
351
362
|
return;
|
|
352
363
|
}
|
|
353
364
|
|
|
354
365
|
if (readonlyContext.indexedAccessDepth > 0) {
|
|
355
|
-
options.replaceNode(node,
|
|
366
|
+
options.replaceNode(node, unwrappedText);
|
|
356
367
|
return;
|
|
357
368
|
}
|
|
358
369
|
|
|
359
370
|
if (isReadonlyTypeReferenceNode(T)) {
|
|
360
|
-
options.replaceNode(node,
|
|
371
|
+
options.replaceNode(node, TText);
|
|
361
372
|
return;
|
|
362
373
|
}
|
|
363
374
|
|
|
364
375
|
if (isAtomicTypeNode(T)) {
|
|
365
|
-
options.replaceNode(node,
|
|
376
|
+
options.replaceNode(node, TText);
|
|
366
377
|
return;
|
|
367
378
|
}
|
|
368
379
|
|
|
@@ -371,7 +382,7 @@ node, readonlyContext, options) => {
|
|
|
371
382
|
T.getTypeName().getText() === 'Record') {
|
|
372
383
|
const recordTypeArguments = T.getTypeArguments();
|
|
373
384
|
if (Arr.isFixedLengthArray(2, recordTypeArguments)) {
|
|
374
|
-
options.replaceNode(node, readonlyRecordText(recordTypeArguments[0].getFullText(), recordTypeArguments[1].getFullText(), options));
|
|
385
|
+
options.replaceNode(node, `${commentsInFrontOfT}${readonlyRecordText(recordTypeArguments[0].getFullText(), recordTypeArguments[1].getFullText(), options)}`);
|
|
375
386
|
return;
|
|
376
387
|
}
|
|
377
388
|
}
|
|
@@ -382,7 +393,7 @@ node, readonlyContext, options) => {
|
|
|
382
393
|
|
|
383
394
|
if (T.isKind(tsm.SyntaxKind.ArrayType) ||
|
|
384
395
|
T.isKind(tsm.SyntaxKind.TupleType)) {
|
|
385
|
-
const readonlyText = `readonly ${
|
|
396
|
+
const readonlyText = `readonly ${TText}`;
|
|
386
397
|
options.replaceNode(node, shouldAvoidParenthesesForReadonly(node)
|
|
387
398
|
? readonlyText
|
|
388
399
|
: wrapWithParentheses(readonlyText));
|
|
@@ -392,14 +403,17 @@ node, readonlyContext, options) => {
|
|
|
392
403
|
|
|
393
404
|
|
|
394
405
|
if (isReadonlyTupleOrArrayTypeNode(T)) {
|
|
395
|
-
options.replaceNode(node,
|
|
406
|
+
options.replaceNode(node, TText);
|
|
396
407
|
return;
|
|
397
408
|
}
|
|
398
409
|
|
|
399
410
|
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
|
|
400
414
|
if (T.isKind(tsm.SyntaxKind.UnionType) ||
|
|
401
415
|
T.isKind(tsm.SyntaxKind.IntersectionType)) {
|
|
402
|
-
options.replaceNode(node,
|
|
416
|
+
options.replaceNode(node, unwrappedText);
|
|
403
417
|
return;
|
|
404
418
|
}
|
|
405
419
|
return;
|
|
@@ -487,7 +501,7 @@ node, readonlyContext, options) => {
|
|
|
487
501
|
|
|
488
502
|
if (readonlyContext.indexedAccessDepth === 0 &&
|
|
489
503
|
!isConditionalTypeDistributionGuard(node)) {
|
|
490
|
-
const readonlyText = `readonly ${node.
|
|
504
|
+
const readonlyText = `readonly ${node.getText()}`;
|
|
491
505
|
options.replaceNode(node, shouldAvoidParenthesesForReadonly(node)
|
|
492
506
|
? readonlyText
|
|
493
507
|
: wrapWithParentheses(readonlyText));
|
|
@@ -527,7 +541,7 @@ node, readonlyContext, options) => {
|
|
|
527
541
|
|
|
528
542
|
if (readonlyContext.indexedAccessDepth === 0 &&
|
|
529
543
|
!isConditionalTypeDistributionGuard(node)) {
|
|
530
|
-
const readonlyText = `readonly ${node.
|
|
544
|
+
const readonlyText = `readonly ${node.getText()}`;
|
|
531
545
|
options.replaceNode(node, shouldAvoidParenthesesForReadonly(node)
|
|
532
546
|
? readonlyText
|
|
533
547
|
: wrapWithParentheses(readonlyText));
|
|
@@ -547,9 +561,13 @@ node, readonlyContext, options) => {
|
|
|
547
561
|
const R = removeParentheses(node.getTypeNode());
|
|
548
562
|
|
|
549
563
|
|
|
550
|
-
if (isReadonlyArrayTypeNode(R)
|
|
551
|
-
|
|
564
|
+
if (!isReadonlyArrayTypeNode(R) && !isReadonlyTupleTypeNode(R)) {
|
|
565
|
+
return;
|
|
552
566
|
}
|
|
567
|
+
|
|
568
|
+
|
|
569
|
+
const commentsInFrontOfR = commentsBetween(node.getSourceFile(), node.getTypeNode().getPos(), R.getStart());
|
|
570
|
+
options.replaceNode(node, `...${commentsInFrontOfR}${R.getTypeNode().getFullText()}` );
|
|
553
571
|
};
|
|
554
572
|
|
|
555
573
|
|
|
@@ -605,7 +623,7 @@ node, readonlyContext, options) => {
|
|
|
605
623
|
}), options);
|
|
606
624
|
if (wrappingApplies && !skipWrapping) {
|
|
607
625
|
|
|
608
|
-
options.replaceNode(node, `Readonly<${node.
|
|
626
|
+
options.replaceNode(node, `Readonly<${node.getText()}>`);
|
|
609
627
|
}
|
|
610
628
|
};
|
|
611
629
|
|
|
@@ -749,6 +767,7 @@ param, options) => {
|
|
|
749
767
|
|
|
750
768
|
|
|
751
769
|
|
|
770
|
+
|
|
752
771
|
const transformIntersectionTypeNode = (
|
|
753
772
|
|
|
754
773
|
node, readonlyContext, options) => {
|
|
@@ -777,7 +796,18 @@ node, readonlyContext, options, operator) => {
|
|
|
777
796
|
transformNode(n, nextReadonlyContextValue, options);
|
|
778
797
|
}
|
|
779
798
|
const newTypes = node.getTypeNodes();
|
|
780
|
-
const
|
|
799
|
+
const withLeadingComments = (
|
|
800
|
+
|
|
801
|
+
member, memberText) => `${leadingCommentsOfMember(node, member)}${memberText}`;
|
|
802
|
+
const { primitives, arraysAndTuples, typeLiterals, others } = groupUnionIntersectionTypes(newTypes, {
|
|
803
|
+
operator,
|
|
804
|
+
|
|
805
|
+
|
|
806
|
+
underReadonly: readonlyContext.type === 'Readonly' &&
|
|
807
|
+
readonlyContext.indexedAccessDepth === 0 &&
|
|
808
|
+
isTypeArgumentOfReadonly(node),
|
|
809
|
+
deepReadonlyTypeName: options.DeepReadonly.typeName,
|
|
810
|
+
});
|
|
781
811
|
options.debugPrint({ primitives, arraysAndTuples, typeLiterals, others });
|
|
782
812
|
|
|
783
813
|
const isEmptyTypeLiteral = (
|
|
@@ -795,10 +825,13 @@ node, readonlyContext, options, operator) => {
|
|
|
795
825
|
? []
|
|
796
826
|
: [
|
|
797
827
|
unionToString({
|
|
798
|
-
types: nonEmptyTypeLiterals.map((n) =>
|
|
828
|
+
types: nonEmptyTypeLiterals.map((n) => withLeadingComments(n, isMergeableReadonlyTypeReferenceNode(n, operator)
|
|
799
829
|
?
|
|
800
830
|
unwrapReadonlyTypeArgText(n)
|
|
801
|
-
: n.
|
|
831
|
+
: n.isKind(tsm.SyntaxKind.TypeLiteral)
|
|
832
|
+
? n.getText()
|
|
833
|
+
:
|
|
834
|
+
wrapWithParentheses(n.getText()))),
|
|
802
835
|
op: operator,
|
|
803
836
|
wrapWithReadonly: nextReadonlyContextValue.type !== 'DeepReadonly' &&
|
|
804
837
|
nextReadonlyContextValue.indexedAccessDepth === 0,
|
|
@@ -806,14 +839,20 @@ node, readonlyContext, options, operator) => {
|
|
|
806
839
|
];
|
|
807
840
|
|
|
808
841
|
const sorted = [
|
|
809
|
-
mapNullable(primitives, (a) => [
|
|
810
|
-
|
|
842
|
+
mapNullable(primitives, (a) => [
|
|
843
|
+
a.nodes.map((n) => withLeadingComments(n, n.getText())),
|
|
844
|
+
a.firstPosition,
|
|
845
|
+
]),
|
|
846
|
+
mapNullable(arraysAndTuples, (a) => [
|
|
847
|
+
a.nodes.map((n) => withLeadingComments(n, n.getText())),
|
|
848
|
+
a.firstPosition,
|
|
849
|
+
]),
|
|
811
850
|
nonEmptyTypeLiterals !== undefined && Arr.isNonEmpty(nonEmptyTypeLiterals)
|
|
812
851
|
? mapNullable(typeLiterals, (a) => [typeLiteralsWrappedWithReadonly, a.firstPosition])
|
|
813
852
|
: undefined,
|
|
814
853
|
emptyTypeLiterals !== undefined && Arr.isNonEmpty(emptyTypeLiterals)
|
|
815
854
|
? mapNullable(typeLiterals, (a) => [
|
|
816
|
-
emptyTypeLiterals.map((n) => n.
|
|
855
|
+
emptyTypeLiterals.map((n) => withLeadingComments(n, n.getText())),
|
|
817
856
|
|
|
818
857
|
a.firstPosition +
|
|
819
858
|
(nonEmptyTypeLiterals !== undefined &&
|
|
@@ -826,8 +865,8 @@ node, readonlyContext, options, operator) => {
|
|
|
826
865
|
|
|
827
866
|
|
|
828
867
|
operator === '|'
|
|
829
|
-
? mergeDeepReadonlyUnionMembers(a.nodes, options.DeepReadonly.typeName)
|
|
830
|
-
: a.nodes.map((n) => wrapWithParentheses(n.
|
|
868
|
+
? mergeDeepReadonlyUnionMembers(a.nodes, options.DeepReadonly.typeName, withLeadingComments)
|
|
869
|
+
: a.nodes.map((n) => withLeadingComments(n, wrapWithParentheses(n.getText()))),
|
|
831
870
|
a.firstPosition,
|
|
832
871
|
]),
|
|
833
872
|
]
|
|
@@ -877,36 +916,122 @@ node, readonlyContext, options, operator) => {
|
|
|
877
916
|
|
|
878
917
|
|
|
879
918
|
|
|
919
|
+
|
|
880
920
|
|
|
881
921
|
|
|
882
922
|
const mergeDeepReadonlyUnionMembers = (
|
|
883
923
|
|
|
884
|
-
nodes, deepReadonlyTypeName) => {
|
|
924
|
+
nodes, deepReadonlyTypeName, withLeadingComments) => {
|
|
885
925
|
const typeArgsOfDeepReadonly = nodes.map((n) => getDeepReadonlyTypeArg(n, deepReadonlyTypeName));
|
|
886
|
-
const
|
|
887
|
-
|
|
888
|
-
|
|
926
|
+
const asIs = (
|
|
927
|
+
|
|
928
|
+
n) => withLeadingComments(n, wrapWithParentheses(n.getText()));
|
|
929
|
+
if (typeArgsOfDeepReadonly.filter((t) => t !== undefined).length < 2) {
|
|
930
|
+
return nodes.map(asIs);
|
|
889
931
|
}
|
|
890
932
|
const firstIndex = typeArgsOfDeepReadonly.findIndex((t) => t !== undefined);
|
|
891
933
|
const merged = unionToString({
|
|
892
|
-
|
|
934
|
+
|
|
935
|
+
|
|
936
|
+
|
|
937
|
+
types: nodes.flatMap((n, i) => {
|
|
938
|
+
const t_ = typeArgsOfDeepReadonly[i];
|
|
939
|
+
if (t_ === undefined) {
|
|
940
|
+
return [];
|
|
941
|
+
}
|
|
893
942
|
const t = removeParentheses(t_);
|
|
894
943
|
|
|
895
944
|
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
945
|
+
const tText = textWithoutParentheses(t_, t);
|
|
946
|
+
return [
|
|
947
|
+
withLeadingComments(n, t.isKind(tsm.SyntaxKind.UnionType)
|
|
948
|
+
? tText
|
|
949
|
+
: wrapWithParentheses(tText)),
|
|
950
|
+
];
|
|
899
951
|
}),
|
|
900
952
|
op: '|',
|
|
901
953
|
wrapWithReadonly: deepReadonlyTypeName,
|
|
902
954
|
});
|
|
903
955
|
return nodes.flatMap((n, i) => typeArgsOfDeepReadonly[i] === undefined
|
|
904
|
-
? [
|
|
956
|
+
? [asIs(n)]
|
|
905
957
|
: i === firstIndex
|
|
906
958
|
? [merged]
|
|
907
959
|
: []);
|
|
908
960
|
};
|
|
909
961
|
|
|
962
|
+
const isTypeArgumentOfReadonly = (
|
|
963
|
+
|
|
964
|
+
node) => {
|
|
965
|
+
const parent = node.getParent();
|
|
966
|
+
return (parent !== undefined &&
|
|
967
|
+
(parent.isKind(tsm.SyntaxKind.ParenthesizedType)
|
|
968
|
+
? isTypeArgumentOfReadonly(parent)
|
|
969
|
+
: isReadonlyTypeReferenceNode(parent)));
|
|
970
|
+
};
|
|
971
|
+
|
|
972
|
+
|
|
973
|
+
|
|
974
|
+
|
|
975
|
+
|
|
976
|
+
|
|
977
|
+
|
|
978
|
+
|
|
979
|
+
|
|
980
|
+
|
|
981
|
+
|
|
982
|
+
|
|
983
|
+
|
|
984
|
+
|
|
985
|
+
|
|
986
|
+
const leadingCommentsOfMember = (
|
|
987
|
+
|
|
988
|
+
node,
|
|
989
|
+
|
|
990
|
+
member) => commentsBetween(node.getSourceFile(), node
|
|
991
|
+
.getTypeNodes()
|
|
992
|
+
.findLast((m) => m.getEnd() <= member.getStart())
|
|
993
|
+
?.getEnd() ?? node.getStart(), member.getStart());
|
|
994
|
+
|
|
995
|
+
|
|
996
|
+
|
|
997
|
+
|
|
998
|
+
|
|
999
|
+
|
|
1000
|
+
|
|
1001
|
+
|
|
1002
|
+
const textWithoutParentheses = (
|
|
1003
|
+
|
|
1004
|
+
outer,
|
|
1005
|
+
|
|
1006
|
+
inner) => `${commentsBetween(outer.getSourceFile(), outer.getPos(), inner.getStart())}${inner.getText()}`;
|
|
1007
|
+
|
|
1008
|
+
|
|
1009
|
+
|
|
1010
|
+
|
|
1011
|
+
|
|
1012
|
+
const commentsBetween = (
|
|
1013
|
+
|
|
1014
|
+
sourceFile, from, to) => {
|
|
1015
|
+
if (to <= from) {
|
|
1016
|
+
return '';
|
|
1017
|
+
}
|
|
1018
|
+
const scanner = tsm.ts.createScanner(tsm.ts.ScriptTarget.Latest, false, tsm.ts.LanguageVariant.Standard, sourceFile.getFullText(), undefined, from, to - from);
|
|
1019
|
+
const mut_comments = [];
|
|
1020
|
+
while (scanner.scan() !== tsm.ts.SyntaxKind.EndOfFileToken) {
|
|
1021
|
+
const token = scanner.getToken();
|
|
1022
|
+
|
|
1023
|
+
const separator = token === tsm.ts.SyntaxKind.SingleLineCommentTrivia
|
|
1024
|
+
? '\n'
|
|
1025
|
+
: token === tsm.ts.SyntaxKind.MultiLineCommentTrivia
|
|
1026
|
+
? ' '
|
|
1027
|
+
: undefined;
|
|
1028
|
+
if (separator !== undefined) {
|
|
1029
|
+
mut_comments.push(`${scanner.getTokenText()}${separator}`);
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
return mut_comments.join('');
|
|
1033
|
+
};
|
|
1034
|
+
|
|
910
1035
|
const getDeepReadonlyTypeArg = (
|
|
911
1036
|
|
|
912
1037
|
node, deepReadonlyTypeName) => {
|
|
@@ -927,7 +1052,6 @@ const unionToString = ({ types: typesRaw, op, wrapWithReadonly, }) => {
|
|
|
927
1052
|
|
|
928
1053
|
|
|
929
1054
|
|
|
930
|
-
|
|
931
1055
|
const types = typesRaw.map((s) => s.trim());
|
|
932
1056
|
return unionToStringImpl({ types, op, wrapWithReadonly });
|
|
933
1057
|
};
|