ts-codemod-lib 1.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.
- package/LICENSE +201 -0
- package/README.md +33 -0
- package/dist/cmd/convert-to-readonly.d.mts +3 -0
- package/dist/cmd/convert-to-readonly.d.mts.map +1 -0
- package/dist/cmd/convert-to-readonly.mjs +137 -0
- package/dist/cmd/convert-to-readonly.mjs.map +1 -0
- package/dist/entry-point.d.mts +2 -0
- package/dist/entry-point.d.mts.map +1 -0
- package/dist/entry-point.mjs +19 -0
- package/dist/entry-point.mjs.map +1 -0
- package/dist/functions/ast-transformers/convert-interface-to-type.d.mts +7 -0
- package/dist/functions/ast-transformers/convert-interface-to-type.d.mts.map +1 -0
- package/dist/functions/ast-transformers/convert-interface-to-type.mjs +83 -0
- package/dist/functions/ast-transformers/convert-interface-to-type.mjs.map +1 -0
- package/dist/functions/ast-transformers/convert-to-readonly-type.d.mts +29 -0
- package/dist/functions/ast-transformers/convert-to-readonly-type.d.mts.map +1 -0
- package/dist/functions/ast-transformers/convert-to-readonly-type.mjs +811 -0
- package/dist/functions/ast-transformers/convert-to-readonly-type.mjs.map +1 -0
- package/dist/functions/ast-transformers/index.d.mts +7 -0
- package/dist/functions/ast-transformers/index.d.mts.map +1 -0
- package/dist/functions/ast-transformers/index.mjs +9 -0
- package/dist/functions/ast-transformers/index.mjs.map +1 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.d.mts +3 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.d.mts.map +1 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mjs +22 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mjs.map +1 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/constants.d.mts +2 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/constants.d.mts.map +1 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/constants.mjs +15 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/constants.mjs.map +1 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.d.mts +21 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.d.mts.map +1 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mjs +72 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mjs.map +1 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/index.d.mts +5 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/index.d.mts.map +1 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/index.mjs +5 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/index.mjs.map +1 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/readonly-context.d.mts +37 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/readonly-context.d.mts.map +1 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/readonly-context.mjs +19 -0
- package/dist/functions/ast-transformers/readonly-transformer-helpers/readonly-context.mjs.map +1 -0
- package/dist/functions/ast-transformers/replace-record-with-unknown-record.d.mts +7 -0
- package/dist/functions/ast-transformers/replace-record-with-unknown-record.d.mts.map +1 -0
- package/dist/functions/ast-transformers/replace-record-with-unknown-record.mjs +173 -0
- package/dist/functions/ast-transformers/replace-record-with-unknown-record.mjs.map +1 -0
- package/dist/functions/ast-transformers/transform-source-code.d.mts +3 -0
- package/dist/functions/ast-transformers/transform-source-code.d.mts.map +1 -0
- package/dist/functions/ast-transformers/transform-source-code.mjs +27 -0
- package/dist/functions/ast-transformers/transform-source-code.mjs.map +1 -0
- package/dist/functions/ast-transformers/types.d.mts +3 -0
- package/dist/functions/ast-transformers/types.d.mts.map +1 -0
- package/dist/functions/ast-transformers/types.mjs +2 -0
- package/dist/functions/ast-transformers/types.mjs.map +1 -0
- package/dist/functions/constants/ignore-comment-text.d.mts +3 -0
- package/dist/functions/constants/ignore-comment-text.d.mts.map +1 -0
- package/dist/functions/constants/ignore-comment-text.mjs +5 -0
- package/dist/functions/constants/ignore-comment-text.mjs.map +1 -0
- package/dist/functions/constants/index.d.mts +2 -0
- package/dist/functions/constants/index.d.mts.map +1 -0
- package/dist/functions/constants/index.mjs +2 -0
- package/dist/functions/constants/index.mjs.map +1 -0
- package/dist/functions/functions/has-disable-next-line-comment.d.mts +10 -0
- package/dist/functions/functions/has-disable-next-line-comment.d.mts.map +1 -0
- package/dist/functions/functions/has-disable-next-line-comment.mjs +47 -0
- package/dist/functions/functions/has-disable-next-line-comment.mjs.map +1 -0
- package/dist/functions/functions/index.d.mts +9 -0
- package/dist/functions/functions/index.d.mts.map +1 -0
- package/dist/functions/functions/index.mjs +9 -0
- package/dist/functions/functions/index.mjs.map +1 -0
- package/dist/functions/functions/is-as-const-node.d.mts +10 -0
- package/dist/functions/functions/is-as-const-node.d.mts.map +1 -0
- package/dist/functions/functions/is-as-const-node.mjs +30 -0
- package/dist/functions/functions/is-as-const-node.mjs.map +1 -0
- package/dist/functions/functions/is-primitive-type-node.d.mts +15 -0
- package/dist/functions/functions/is-primitive-type-node.d.mts.map +1 -0
- package/dist/functions/functions/is-primitive-type-node.mjs +46 -0
- package/dist/functions/functions/is-primitive-type-node.mjs.map +1 -0
- package/dist/functions/functions/is-readonly-node.d.mts +21 -0
- package/dist/functions/functions/is-readonly-node.d.mts.map +1 -0
- package/dist/functions/functions/is-readonly-node.mjs +30 -0
- package/dist/functions/functions/is-readonly-node.mjs.map +1 -0
- package/dist/functions/functions/is-spread-parameter-node.d.mts +4 -0
- package/dist/functions/functions/is-spread-parameter-node.d.mts.map +1 -0
- package/dist/functions/functions/is-spread-parameter-node.mjs +9 -0
- package/dist/functions/functions/is-spread-parameter-node.mjs.map +1 -0
- package/dist/functions/functions/remove-parentheses.d.mts +3 -0
- package/dist/functions/functions/remove-parentheses.d.mts.map +1 -0
- package/dist/functions/functions/remove-parentheses.mjs +9 -0
- package/dist/functions/functions/remove-parentheses.mjs.map +1 -0
- package/dist/functions/functions/unwrap-readonly.d.mts +3 -0
- package/dist/functions/functions/unwrap-readonly.d.mts.map +1 -0
- package/dist/functions/functions/unwrap-readonly.mjs +8 -0
- package/dist/functions/functions/unwrap-readonly.mjs.map +1 -0
- package/dist/functions/functions/wrap-with-parentheses.d.mts +2 -0
- package/dist/functions/functions/wrap-with-parentheses.d.mts.map +1 -0
- package/dist/functions/functions/wrap-with-parentheses.mjs +4 -0
- package/dist/functions/functions/wrap-with-parentheses.mjs.map +1 -0
- package/dist/functions/index.d.mts +5 -0
- package/dist/functions/index.d.mts.map +1 -0
- package/dist/functions/index.mjs +19 -0
- package/dist/functions/index.mjs.map +1 -0
- package/dist/functions/utils/index.d.mts +2 -0
- package/dist/functions/utils/index.d.mts.map +1 -0
- package/dist/functions/utils/index.mjs +2 -0
- package/dist/functions/utils/index.mjs.map +1 -0
- package/dist/functions/utils/replace-with-debug.d.mts +3 -0
- package/dist/functions/utils/replace-with-debug.d.mts.map +1 -0
- package/dist/functions/utils/replace-with-debug.mjs +7 -0
- package/dist/functions/utils/replace-with-debug.mjs.map +1 -0
- package/dist/globals.d.mts +1 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +19 -0
- package/dist/index.mjs.map +1 -0
- package/dist/tsconfig.json +1 -0
- package/dist/types.d.mts +2 -0
- package/package.json +134 -0
- package/src/cmd/convert-to-readonly.mts +195 -0
- package/src/entry-point.mts +1 -0
- package/src/functions/ast-transformers/convert-interface-to-type.mts +119 -0
- package/src/functions/ast-transformers/convert-interface-to-type.test.mts +295 -0
- package/src/functions/ast-transformers/convert-to-readonly-type.mts +1391 -0
- package/src/functions/ast-transformers/convert-to-readonly-type.test.mts +3653 -0
- package/src/functions/ast-transformers/index.mts +6 -0
- package/src/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mts +24 -0
- package/src/functions/ast-transformers/readonly-transformer-helpers/constants.mts +12 -0
- package/src/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mts +152 -0
- package/src/functions/ast-transformers/readonly-transformer-helpers/index.mts +4 -0
- package/src/functions/ast-transformers/readonly-transformer-helpers/readonly-context.mts +65 -0
- package/src/functions/ast-transformers/replace-record-with-unknown-record.mts +238 -0
- package/src/functions/ast-transformers/transform-source-code.mts +38 -0
- package/src/functions/ast-transformers/types.mts +6 -0
- package/src/functions/constants/ignore-comment-text.mts +3 -0
- package/src/functions/constants/index.mts +1 -0
- package/src/functions/functions/has-disable-next-line-comment.mts +56 -0
- package/src/functions/functions/index.mts +8 -0
- package/src/functions/functions/is-as-const-node.mts +47 -0
- package/src/functions/functions/is-primitive-type-node.mts +301 -0
- package/src/functions/functions/is-readonly-node.mts +247 -0
- package/src/functions/functions/is-spread-parameter-node.mts +13 -0
- package/src/functions/functions/remove-parentheses.mts +7 -0
- package/src/functions/functions/unwrap-readonly.mts +7 -0
- package/src/functions/functions/wrap-with-parentheses.mts +2 -0
- package/src/functions/index.mts +4 -0
- package/src/functions/utils/index.mts +1 -0
- package/src/functions/utils/replace-with-debug.mts +10 -0
- package/src/globals.d.mts +1 -0
- package/src/index.mts +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-to-readonly-type.mjs","sources":["../../../src/functions/ast-transformers/convert-to-readonly-type.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './convert-interface-to-type.mjs';
|
|
2
|
+
export * from './convert-to-readonly-type.mjs';
|
|
3
|
+
export * from './readonly-transformer-helpers/index.mjs';
|
|
4
|
+
export * from './replace-record-with-unknown-record.mjs';
|
|
5
|
+
export * from './transform-source-code.mjs';
|
|
6
|
+
export * from './types.mjs';
|
|
7
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/index.mts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { convertInterfaceToTypeTransformer } from './convert-interface-to-type.mjs';
|
|
2
|
+
export { convertToReadonlyTypeTransformer } from './convert-to-readonly-type.mjs';
|
|
3
|
+
export { compareUnionIntersectionTypes } from './readonly-transformer-helpers/compare-union-types.mjs';
|
|
4
|
+
export { invalidDeepReadonlyTypeName } from './readonly-transformer-helpers/constants.mjs';
|
|
5
|
+
export { groupUnionIntersectionTypes } from './readonly-transformer-helpers/group-union-types.mjs';
|
|
6
|
+
export { nextReadonlyContext } from './readonly-transformer-helpers/readonly-context.mjs';
|
|
7
|
+
export { replaceRecordWithUnknownRecordTransformer } from './replace-record-with-unknown-record.mjs';
|
|
8
|
+
export { transformSourceCode } from './transform-source-code.mjs';
|
|
9
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
package/dist/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.d.mts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare-union-types.d.mts","sourceRoot":"","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAMhC,eAAO,MAAM,6BAA6B,GAExC,GAAG,GAAG,CAAC,QAAQ,EAEf,GAAG,GAAG,CAAC,QAAQ,KACd,MAAiC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as tsm from 'ts-morph';
|
|
2
|
+
import { isPrimitiveTypeNode } from '../../functions/is-primitive-type-node.mjs';
|
|
3
|
+
import { isReadonlyTupleOrArrayTypeNode } from '../../functions/is-readonly-node.mjs';
|
|
4
|
+
|
|
5
|
+
const compareUnionIntersectionTypes = (
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
7
|
+
a,
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
9
|
+
b) => mapRank(a) - mapRank(b);
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
11
|
+
const mapRank = (t) => isPrimitiveTypeNode(t)
|
|
12
|
+
? 0
|
|
13
|
+
: t.isKind(tsm.SyntaxKind.ArrayType) ||
|
|
14
|
+
t.isKind(tsm.SyntaxKind.TupleType) ||
|
|
15
|
+
isReadonlyTupleOrArrayTypeNode(t)
|
|
16
|
+
? 1
|
|
17
|
+
: t.isKind(tsm.SyntaxKind.TypeLiteral)
|
|
18
|
+
? 2
|
|
19
|
+
: 3;
|
|
20
|
+
|
|
21
|
+
export { compareUnionIntersectionTypes };
|
|
22
|
+
//# sourceMappingURL=compare-union-types.mjs.map
|
package/dist/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare-union-types.mjs","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/compare-union-types.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMO,MAAM,6BAA6B,GAAG;AAC3C;AACA,CAAe;AACf;AACA,CAAe,KACJ,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;AAEnC;AACA,MAAM,OAAO,GAAG,CAAC,CAAe,KAC9B,mBAAmB,CAAC,CAAC;AACnB,MAAE;MACA,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QAChC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QAClC,8BAA8B,CAAC,CAAC;AAClC,UAAE;UACA,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW;AACnC,cAAE;cACA,CAAC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/constants.mts"],"names":[],"mappings":"AAEA,eAAO,MAAM,2BAA2B,KAStC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ISet } from 'ts-data-forge';
|
|
2
|
+
|
|
3
|
+
const invalidDeepReadonlyTypeName = ISet.create([
|
|
4
|
+
'Readonly',
|
|
5
|
+
'readonly',
|
|
6
|
+
'ReadonlyArray',
|
|
7
|
+
'Array',
|
|
8
|
+
'Set',
|
|
9
|
+
'Map',
|
|
10
|
+
'ReadonlySet',
|
|
11
|
+
'ReadonlyMap',
|
|
12
|
+
]);
|
|
13
|
+
|
|
14
|
+
export { invalidDeepReadonlyTypeName };
|
|
15
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/constants.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAEO,MAAM,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAC;IACrD,UAAU;IACV,UAAU;IACV,eAAe;IACf,OAAO;IACP,KAAK;IACL,KAAK;IACL,aAAa;IACb,aAAa;AACd,CAAA;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as tsm from 'ts-morph';
|
|
2
|
+
import { type PrimitiveTypeNode, type ReadonlyArrayTypeNode, type ReadonlyTupleTypeNode, type ReadonlyTypeReferenceNode } from '../../functions/index.mjs';
|
|
3
|
+
export declare const groupUnionIntersectionTypes: (types: readonly tsm.TypeNode[]) => Readonly<{
|
|
4
|
+
primitives: Readonly<{
|
|
5
|
+
firstPosition: number;
|
|
6
|
+
nodes: readonly PrimitiveTypeNode[];
|
|
7
|
+
}> | undefined;
|
|
8
|
+
arraysAndTuples: Readonly<{
|
|
9
|
+
firstPosition: number;
|
|
10
|
+
nodes: readonly (tsm.ArrayTypeNode | tsm.TupleTypeNode | ReadonlyArrayTypeNode | ReadonlyTupleTypeNode)[];
|
|
11
|
+
}> | undefined;
|
|
12
|
+
typeLiterals: Readonly<{
|
|
13
|
+
firstPosition: number;
|
|
14
|
+
nodes: readonly (tsm.TypeLiteralNode | ReadonlyTypeReferenceNode)[];
|
|
15
|
+
}> | undefined;
|
|
16
|
+
others: Readonly<{
|
|
17
|
+
firstPosition: number;
|
|
18
|
+
nodes: readonly tsm.TypeNode[];
|
|
19
|
+
}> | undefined;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=group-union-types.d.mts.map
|
package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.d.mts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-union-types.d.mts","sourceRoot":"","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC/B,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,2BAA2B,GAEtC,OAAO,SAAS,GAAG,CAAC,QAAQ,EAAE,KAC7B,QAAQ,CAAC;IACV,UAAU,EACN,QAAQ,CAAC;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;KACrC,CAAC,GACF,SAAS,CAAC;IAEd,eAAe,EACX,QAAQ,CAAC;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,SAAS,CACZ,GAAG,CAAC,aAAa,GACjB,GAAG,CAAC,aAAa,GACjB,qBAAqB,GACrB,qBAAqB,CACxB,EAAE,CAAC;KACL,CAAC,GACF,SAAS,CAAC;IAEd,YAAY,EACR,QAAQ,CAAC;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,eAAe,GAAG,yBAAyB,CAAC,EAAE,CAAC;KACrE,CAAC,GACF,SAAS,CAAC;IAEd,MAAM,EACF,QAAQ,CAAC;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,SAAS,GAAG,CAAC,QAAQ,EAAE,CAAC;KAChC,CAAC,GACF,SAAS,CAAC;CACf,CAuGA,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import * as tsm from 'ts-morph';
|
|
2
|
+
import { isPrimitiveTypeNode } from '../../functions/is-primitive-type-node.mjs';
|
|
3
|
+
import { isReadonlyTupleOrArrayTypeNode, isReadonlyTypeReferenceNode } from '../../functions/is-readonly-node.mjs';
|
|
4
|
+
import { removeParentheses } from '../../functions/remove-parentheses.mjs';
|
|
5
|
+
|
|
6
|
+
const groupUnionIntersectionTypes = (
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
8
|
+
types) => {
|
|
9
|
+
const mut_grouped = {
|
|
10
|
+
primitives: undefined,
|
|
11
|
+
arraysAndTuples: undefined,
|
|
12
|
+
typeLiterals: undefined,
|
|
13
|
+
others: undefined,
|
|
14
|
+
};
|
|
15
|
+
for (const [i, t_] of types.entries()) {
|
|
16
|
+
const t = removeParentheses(t_);
|
|
17
|
+
// isReadonlyTypeReferenceNode
|
|
18
|
+
if (isPrimitiveTypeNode(t)) {
|
|
19
|
+
if (mut_grouped.primitives === undefined) {
|
|
20
|
+
mut_grouped.primitives = {
|
|
21
|
+
firstPosition: i,
|
|
22
|
+
nodes: [t],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
mut_grouped.primitives.nodes.push(t);
|
|
27
|
+
}
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
if (t.isKind(tsm.SyntaxKind.ArrayType) ||
|
|
31
|
+
t.isKind(tsm.SyntaxKind.TupleType) ||
|
|
32
|
+
isReadonlyTupleOrArrayTypeNode(t)) {
|
|
33
|
+
if (mut_grouped.arraysAndTuples === undefined) {
|
|
34
|
+
mut_grouped.arraysAndTuples = {
|
|
35
|
+
firstPosition: i,
|
|
36
|
+
nodes: [t],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
mut_grouped.arraysAndTuples.nodes.push(t);
|
|
41
|
+
}
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
if (t.isKind(tsm.SyntaxKind.TypeLiteral) ||
|
|
45
|
+
isReadonlyTypeReferenceNode(t)) {
|
|
46
|
+
if (mut_grouped.typeLiterals === undefined) {
|
|
47
|
+
mut_grouped.typeLiterals = {
|
|
48
|
+
firstPosition: i,
|
|
49
|
+
nodes: [t],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
mut_grouped.typeLiterals.nodes.push(t);
|
|
54
|
+
}
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
// intersections, unions, etc.
|
|
58
|
+
if (mut_grouped.others === undefined) {
|
|
59
|
+
mut_grouped.others = {
|
|
60
|
+
firstPosition: i,
|
|
61
|
+
nodes: [t],
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
mut_grouped.others.nodes.push(t);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return mut_grouped;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export { groupUnionIntersectionTypes };
|
|
72
|
+
//# sourceMappingURL=group-union-types.mjs.map
|
package/dist/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-union-types.mjs","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/group-union-types.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAYO,MAAM,2BAA2B,GAAG;AACzC;AACA,KAA8B,KAkC3B;AACH,IAAA,MAAM,WAAW,GAiCb;AACF,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,eAAe,EAAE,SAAS;AAC1B,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,MAAM,EAAE,SAAS;KAClB;AAED,IAAA,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;AACrC,QAAA,MAAM,CAAC,GAAG,iBAAiB,CAAC,EAAE,CAAC;;AAG/B,QAAA,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC1B,YAAA,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,EAAE;gBACxC,WAAW,CAAC,UAAU,GAAG;AACvB,oBAAA,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,CAAC,CAAC,CAAC;iBACF;YACZ;iBAAO;gBACL,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC;YAEA;QACF;QAEA,IACE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;YAClC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;AAClC,YAAA,8BAA8B,CAAC,CAAC,CAAC,EACjC;AACA,YAAA,IAAI,WAAW,CAAC,eAAe,KAAK,SAAS,EAAE;gBAC7C,WAAW,CAAC,eAAe,GAAG;AAC5B,oBAAA,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,CAAC,CAAC,CAAC;iBACF;YACZ;iBAAO;gBACL,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3C;YAEA;QACF;QAEA,IACE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;AACpC,YAAA,2BAA2B,CAAC,CAAC,CAAC,EAC9B;AACA,YAAA,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS,EAAE;gBAC1C,WAAW,CAAC,YAAY,GAAG;AACzB,oBAAA,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,CAAC,CAAC,CAAC;iBACF;YACZ;iBAAO;gBACL,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC;YAEA;QACF;;AAGA,QAAA,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,EAAE;YACpC,WAAW,CAAC,MAAM,GAAG;AACnB,gBAAA,aAAa,EAAE,CAAC;gBAChB,KAAK,EAAE,CAAC,CAAC,CAAC;aACF;QACZ;aAAO;YACL,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC;IACF;AAEA,IAAA,OAAO,WAAW;AACpB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/index.mts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { compareUnionIntersectionTypes } from './compare-union-types.mjs';
|
|
2
|
+
export { invalidDeepReadonlyTypeName } from './constants.mjs';
|
|
3
|
+
export { groupUnionIntersectionTypes } from './group-union-types.mjs';
|
|
4
|
+
export { nextReadonlyContext } from './readonly-context.mjs';
|
|
5
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Controls whether to make a layer mutable during recursive transformation
|
|
3
|
+
* calls, to standardize by omitting readonly from inner `number[]` in types
|
|
4
|
+
* like `DeepReadonly<[string, number[]]>`.
|
|
5
|
+
*
|
|
6
|
+
* - `"DeepReadonly"`: Indicates that `node` is inside a type utility like
|
|
7
|
+
* `DeepReadonly` that recursively applies readonly.
|
|
8
|
+
* - `"Readonly"`: Indicates that `node` is directly under a `Readonly` type.
|
|
9
|
+
* - `"readonly"`: Indicates that `node` is directly under a `readonly` operator.
|
|
10
|
+
* - `"IndexedAccessObjectType"`: Indicates that `node` is directly under an
|
|
11
|
+
* IndexedAccessTypeNode.
|
|
12
|
+
* - `"none"`: All other cases
|
|
13
|
+
*/
|
|
14
|
+
export type ReadonlyContext = Readonly<{
|
|
15
|
+
indexedAccessDepth: SafeUintWithSmallInt;
|
|
16
|
+
} & ({
|
|
17
|
+
type: 'DeepReadonly';
|
|
18
|
+
} | {
|
|
19
|
+
type: 'Readonly';
|
|
20
|
+
} | {
|
|
21
|
+
type: 'readonly';
|
|
22
|
+
} | {
|
|
23
|
+
type: 'none';
|
|
24
|
+
})>;
|
|
25
|
+
export declare const nextReadonlyContext: <const Curr extends ReadonlyContext, const Next extends ReadonlyContext["type"]>({ currentReadonlyContext: curr, nextReadonlyContextType: next, indexedAccessDepthChange, }: Readonly<{
|
|
26
|
+
currentReadonlyContext: Curr;
|
|
27
|
+
} & ({
|
|
28
|
+
nextReadonlyContextType: Next;
|
|
29
|
+
indexedAccessDepthChange: "decr" | "incr" | "keep" | "infinity";
|
|
30
|
+
} | {
|
|
31
|
+
nextReadonlyContextType: Extract<ReadonlyContext["type"], "DeepReadonly">;
|
|
32
|
+
indexedAccessDepthChange?: "infinity";
|
|
33
|
+
})>) => Readonly<{
|
|
34
|
+
type: Extract<ReadonlyContext["type"], "DeepReadonly"> | Next;
|
|
35
|
+
indexedAccessDepth: SafeUintWithSmallInt;
|
|
36
|
+
}>;
|
|
37
|
+
//# sourceMappingURL=readonly-context.d.mts.map
|
package/dist/functions/ast-transformers/readonly-transformer-helpers/readonly-context.d.mts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readonly-context.d.mts","sourceRoot":"","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/readonly-context.mts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,CACpC;IAAE,kBAAkB,EAAE,oBAAoB,CAAA;CAAE,GAAG,CAC3C;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CACnB,CACF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,KAAK,CAAC,IAAI,SAAS,eAAe,EAClC,KAAK,CAAC,IAAI,SAAS,eAAe,CAAC,MAAM,CAAC,EAC1C,4FAIC,QAAQ,CACT;IACE,sBAAsB,EAAE,IAAI,CAAC;CAC9B,GAAG,CACA;IACE,uBAAuB,EAAE,IAAI,CAAC;IAC9B,wBAAwB,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;CACjE,GACD;IACE,uBAAuB,EAAE,OAAO,CAC9B,eAAe,CAAC,MAAM,CAAC,EACvB,cAAc,CACf,CAAC;IACF,wBAAwB,CAAC,EAAE,UAAU,CAAC;CACvC,CACJ,CACF,KAAG,QAAQ,CAAC;IACX,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC;IAC9D,kBAAkB,EAAE,oBAAoB,CAAC;CAC1C,CAcM,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SafeUint, match } from 'ts-data-forge';
|
|
2
|
+
|
|
3
|
+
const nextReadonlyContext = ({ currentReadonlyContext: curr, nextReadonlyContextType: next, indexedAccessDepthChange = 'infinity', }) => curr.type === 'DeepReadonly'
|
|
4
|
+
? {
|
|
5
|
+
type: 'DeepReadonly',
|
|
6
|
+
indexedAccessDepth: SafeUint.MAX_VALUE,
|
|
7
|
+
}
|
|
8
|
+
: {
|
|
9
|
+
type: next,
|
|
10
|
+
indexedAccessDepth: match(indexedAccessDepthChange, {
|
|
11
|
+
decr: SafeUint.sub(curr.indexedAccessDepth, 1),
|
|
12
|
+
keep: curr.indexedAccessDepth,
|
|
13
|
+
incr: SafeUint.add(curr.indexedAccessDepth, 1),
|
|
14
|
+
infinity: SafeUint.MAX_VALUE,
|
|
15
|
+
}),
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { nextReadonlyContext };
|
|
19
|
+
//# sourceMappingURL=readonly-context.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readonly-context.mjs","sources":["../../../../src/functions/ast-transformers/readonly-transformer-helpers/readonly-context.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAwBO,MAAM,mBAAmB,GAAG,CAGjC,EACA,sBAAsB,EAAE,IAAI,EAC5B,uBAAuB,EAAE,IAAI,EAC7B,wBAAwB,GAAG,UAAU,GAiBtC,KAIC,IAAI,CAAC,IAAI,KAAK;AACZ,MAAE;AACE,QAAA,IAAI,EAAE,cAAc;QACpB,kBAAkB,EAAE,QAAQ,CAAC,SAAS;AACvC;AACH,MAAE;AACE,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,kBAAkB,EAAE,KAAK,CAAC,wBAAwB,EAAE;YAClD,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9C,IAAI,EAAE,IAAI,CAAC,kBAAkB;YAC7B,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC9C,QAAQ,EAAE,QAAQ,CAAC,SAAS;SAC7B,CAAC;;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type TsMorphTransformer } from './types.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Replaces `Readonly<Record<string, unknown>>`, `Record<string, unknown>`,
|
|
4
|
+
* and index signatures `[k: string]: unknown` with `UnknownRecord`
|
|
5
|
+
*/
|
|
6
|
+
export declare const replaceRecordWithUnknownRecordTransformer: () => TsMorphTransformer;
|
|
7
|
+
//# sourceMappingURL=replace-record-with-unknown-record.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-record-with-unknown-record.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/replace-record-with-unknown-record.mts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,yCAAyC,QAChD,kBAkOH,CAAC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { Arr } from 'ts-data-forge';
|
|
2
|
+
import * as tsm from 'ts-morph';
|
|
3
|
+
|
|
4
|
+
/* eslint-disable unicorn/consistent-function-scoping -- helper functions are kept inside for clarity */
|
|
5
|
+
/* eslint-disable @typescript-eslint/prefer-readonly-parameter-types -- ts-morph uses mutable types */
|
|
6
|
+
/**
|
|
7
|
+
* Replaces `Readonly<Record<string, unknown>>`, `Record<string, unknown>`,
|
|
8
|
+
* and index signatures `[k: string]: unknown` with `UnknownRecord`
|
|
9
|
+
*/
|
|
10
|
+
const replaceRecordWithUnknownRecordTransformer = () => (sourceAst) => {
|
|
11
|
+
const processDeclarations = (container) => {
|
|
12
|
+
const typeAliases = container.getTypeAliases();
|
|
13
|
+
for (const typeAlias of typeAliases) {
|
|
14
|
+
const typeNode = typeAlias.getTypeNode();
|
|
15
|
+
if (typeNode === undefined)
|
|
16
|
+
continue;
|
|
17
|
+
visitTypeNode(typeNode);
|
|
18
|
+
}
|
|
19
|
+
const interfaces = container.getInterfaces();
|
|
20
|
+
for (const interfaceDecl of interfaces) {
|
|
21
|
+
// Check if interface has index signature [k: string]: unknown
|
|
22
|
+
const indexSignatures = interfaceDecl.getIndexSignatures();
|
|
23
|
+
const hasStringUnknownSignature = indexSignatures.some((sig) => {
|
|
24
|
+
const keyType = sig.getKeyType();
|
|
25
|
+
const returnType = sig.getReturnType();
|
|
26
|
+
return (keyType.getText() === 'string' && returnType.getText() === 'unknown');
|
|
27
|
+
});
|
|
28
|
+
// If it has the signature and no other members, replace entire interface with type alias
|
|
29
|
+
if (hasStringUnknownSignature) {
|
|
30
|
+
const properties = interfaceDecl.getProperties();
|
|
31
|
+
if (properties.length === 0 && indexSignatures.length === 1) {
|
|
32
|
+
// Replace interface with type alias
|
|
33
|
+
const interfaceName = interfaceDecl.getName();
|
|
34
|
+
interfaceDecl.replaceWithText(`export type ${interfaceName} = UnknownRecord;`);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Otherwise, check properties for Record types
|
|
39
|
+
for (const property of interfaceDecl.getProperties()) {
|
|
40
|
+
const typeNode = property.getTypeNode();
|
|
41
|
+
if (typeNode === undefined)
|
|
42
|
+
continue;
|
|
43
|
+
visitTypeNode(typeNode);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const visitTypeNode = (node) => {
|
|
48
|
+
if (tsm.Node.isTypeReference(node)) {
|
|
49
|
+
// Check if it's Readonly<{ [k: string]: unknown }>
|
|
50
|
+
if (node.getTypeName().getText() === 'Readonly') {
|
|
51
|
+
const typeArgs = node.getTypeArguments();
|
|
52
|
+
if (typeArgs.length === 1) {
|
|
53
|
+
const typeArg = typeArgs[0];
|
|
54
|
+
if (tsm.Node.isTypeLiteral(typeArg)) {
|
|
55
|
+
const members = typeArg.getMembers();
|
|
56
|
+
const indexSigs = members.filter((m) => tsm.Node.isIndexSignatureDeclaration(m));
|
|
57
|
+
// Check if it has only one index signature [k: string]: unknown
|
|
58
|
+
if (members.length === 1 &&
|
|
59
|
+
Arr.isArrayOfLength(indexSigs, 1) &&
|
|
60
|
+
isStringUnknownIndexSignature(indexSigs[0])) {
|
|
61
|
+
node.replaceWithText('UnknownRecord');
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// Otherwise, recurse into the type literal to visit its properties
|
|
65
|
+
visitTypeNode(typeArg);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
replaceIfRecordUnknown(node);
|
|
71
|
+
}
|
|
72
|
+
// Check for type literal { [k: string]: unknown }
|
|
73
|
+
if (tsm.Node.isTypeLiteral(node)) {
|
|
74
|
+
const members = node.getMembers();
|
|
75
|
+
const indexSigs = members.filter((m) => tsm.Node.isIndexSignatureDeclaration(m));
|
|
76
|
+
// Check if it has only one index signature [k: string]: unknown
|
|
77
|
+
if (members.length === 1 &&
|
|
78
|
+
Arr.isArrayOfLength(indexSigs, 1) &&
|
|
79
|
+
isStringUnknownIndexSignature(indexSigs[0])) {
|
|
80
|
+
node.replaceWithText('UnknownRecord');
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Recursively visit child type nodes
|
|
85
|
+
if (tsm.Node.isUnionTypeNode(node)) {
|
|
86
|
+
for (const typeNode of node.getTypeNodes()) {
|
|
87
|
+
visitTypeNode(typeNode);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else if (tsm.Node.isIntersectionTypeNode(node)) {
|
|
91
|
+
for (const typeNode of node.getTypeNodes()) {
|
|
92
|
+
visitTypeNode(typeNode);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else if (tsm.Node.isArrayTypeNode(node)) {
|
|
96
|
+
visitTypeNode(node.getElementTypeNode());
|
|
97
|
+
}
|
|
98
|
+
else if (tsm.Node.isTupleTypeNode(node)) {
|
|
99
|
+
for (const element of node.getElements()) {
|
|
100
|
+
visitTypeNode(element);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else if (tsm.Node.isParenthesizedTypeNode(node)) {
|
|
104
|
+
visitTypeNode(node.getTypeNode());
|
|
105
|
+
}
|
|
106
|
+
else if (tsm.Node.isTypeLiteral(node)) {
|
|
107
|
+
for (const member of node.getMembers()) {
|
|
108
|
+
if (tsm.Node.isPropertySignature(member)) {
|
|
109
|
+
const typeNode = member.getTypeNode();
|
|
110
|
+
if (typeNode !== undefined) {
|
|
111
|
+
visitTypeNode(typeNode);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else if (tsm.Node.isIndexSignatureDeclaration(member)) {
|
|
115
|
+
const typeNode = member.getReturnTypeNode();
|
|
116
|
+
if (typeNode !== undefined) {
|
|
117
|
+
visitTypeNode(typeNode);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
const isStringUnknownIndexSignature = (sig) => {
|
|
124
|
+
const keyType = sig.getKeyTypeNode();
|
|
125
|
+
const returnType = sig.getReturnTypeNode();
|
|
126
|
+
return (keyType.getText() === 'string' && returnType?.getText() === 'unknown');
|
|
127
|
+
};
|
|
128
|
+
const replaceIfRecordUnknown = (node) => {
|
|
129
|
+
const typeName = node.getTypeName().getText();
|
|
130
|
+
switch (typeName) {
|
|
131
|
+
case 'Record': {
|
|
132
|
+
// Check if it's Record<string, unknown>
|
|
133
|
+
const typeArgs = node.getTypeArguments();
|
|
134
|
+
if (typeArgs.length === 2 &&
|
|
135
|
+
typeArgs[0]?.getText() === 'string' &&
|
|
136
|
+
typeArgs[1]?.getText() === 'unknown') {
|
|
137
|
+
node.replaceWithText('UnknownRecord');
|
|
138
|
+
}
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
case 'Readonly': {
|
|
142
|
+
// Check if it's Readonly<Record<string, unknown>>
|
|
143
|
+
const typeArgs = node.getTypeArguments();
|
|
144
|
+
if (typeArgs.length === 1) {
|
|
145
|
+
const innerType = typeArgs[0];
|
|
146
|
+
if (innerType !== undefined &&
|
|
147
|
+
tsm.Node.isTypeReference(innerType)) {
|
|
148
|
+
const innerTypeName = innerType.getTypeName().getText();
|
|
149
|
+
if (innerTypeName === 'Record') {
|
|
150
|
+
const innerTypeArgs = innerType.getTypeArguments();
|
|
151
|
+
if (innerTypeArgs.length === 2 &&
|
|
152
|
+
innerTypeArgs[0]?.getText() === 'string' &&
|
|
153
|
+
innerTypeArgs[1]?.getText() === 'unknown') {
|
|
154
|
+
node.replaceWithText('UnknownRecord');
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
// Process top-level declarations
|
|
164
|
+
processDeclarations(sourceAst);
|
|
165
|
+
// Process declarations inside namespaces/modules
|
|
166
|
+
const namespaces = sourceAst.getModules();
|
|
167
|
+
for (const namespace of namespaces) {
|
|
168
|
+
processDeclarations(namespace);
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export { replaceRecordWithUnknownRecordTransformer };
|
|
173
|
+
//# sourceMappingURL=replace-record-with-unknown-record.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-record-with-unknown-record.mjs","sources":["../../../src/functions/ast-transformers/replace-record-with-unknown-record.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-source-code.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/transform-source-code.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,eAAO,MAAM,mBAAmB,GAC9B,MAAM,MAAM,EACZ,OAAO,OAAO,EACd,cAAc,SAAS,kBAAkB,EAAE,EAC3C,QAAO,OAAe,KACrB,MA4BF,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as tsm from 'ts-morph';
|
|
2
|
+
import { IGNORE_FILE_COMMENT_TEXT } from '../constants/ignore-comment-text.mjs';
|
|
3
|
+
|
|
4
|
+
const transformSourceCode = (code, isTsx, transformers, debug = false) => {
|
|
5
|
+
if (code.includes(IGNORE_FILE_COMMENT_TEXT)) {
|
|
6
|
+
if (debug) {
|
|
7
|
+
console.debug('skipped by ignore-file comment');
|
|
8
|
+
}
|
|
9
|
+
return code;
|
|
10
|
+
}
|
|
11
|
+
const project = new tsm.Project({
|
|
12
|
+
useInMemoryFileSystem: true,
|
|
13
|
+
compilerOptions: {
|
|
14
|
+
jsx: isTsx ? tsm.ts.JsxEmit.React : undefined,
|
|
15
|
+
target: tsm.ts.ScriptTarget.ESNext,
|
|
16
|
+
module: tsm.ts.ModuleKind.ESNext,
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
const sourceAst = project.createSourceFile(`source.${isTsx ? 'tsx' : 'ts'}`, code);
|
|
20
|
+
for (const transformer of transformers) {
|
|
21
|
+
transformer(sourceAst);
|
|
22
|
+
}
|
|
23
|
+
return sourceAst.getFullText();
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export { transformSourceCode };
|
|
27
|
+
//# sourceMappingURL=transform-source-code.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-source-code.mjs","sources":["../../../src/functions/ast-transformers/transform-source-code.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIO,MAAM,mBAAmB,GAAG,CACjC,IAAY,EACZ,KAAc,EACd,YAA2C,EAC3C,KAAA,GAAiB,KAAK,KACZ;AACV,IAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;QAC3C,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC;QACjD;AAEA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;AAC9B,QAAA,qBAAqB,EAAE,IAAI;AAC3B,QAAA,eAAe,EAAE;AACf,YAAA,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS;AAC7C,YAAA,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM;AAClC,YAAA,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM;AACjC,SAAA;AACF,KAAA,CAAC;IAEF,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CACxC,CAAA,OAAA,EAAU,KAAK,GAAG,KAAK,GAAG,IAAI,EAAE,EAChC,IAAI,CACL;AAED,IAAA,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;QACtC,WAAW,CAAC,SAAS,CAAC;IACxB;AAEA,IAAA,OAAO,SAAS,CAAC,WAAW,EAAE;AAChC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../../src/functions/ast-transformers/types.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAC;AAErC,MAAM,MAAM,kBAAkB,GAAG,CAE/B,UAAU,EAAE,GAAG,CAAC,UAAU,KACvB,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ignore-comment-text.d.mts","sourceRoot":"","sources":["../../../src/functions/constants/ignore-comment-text.mts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,iCAAiC,CAAC;AAEvE,eAAO,MAAM,wBAAwB,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ignore-comment-text.mjs","sources":["../../../src/functions/constants/ignore-comment-text.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAO,MAAM,wBAAwB,GAAG;AAEjC,MAAM,wBAAwB,GAAG;;;;"}
|