Skip to content

Commit 0180775

Browse files
authored
Remove suffix Reference from utilities which return types (#558)
1 parent 2fcf263 commit 0180775

File tree

6 files changed

+47
-59
lines changed

6 files changed

+47
-59
lines changed

src/transforms/v2-to-v3/ts-type/getTypeRefForString.ts renamed to src/transforms/v2-to-v3/ts-type/getTypeForString.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { JSCodeshift, TSType } from "jscodeshift";
33
const arrayRegex = /^Array<(.*)>$/;
44
const recordRegex = /^Record<string, (.*)>$/;
55

6-
export const getTypeRefForString = (
6+
export const getTypeForString = (
77
j: JSCodeshift,
88
v3ClientDefaultLocalName: string,
99
v3ClientTypeString: string
@@ -27,7 +27,7 @@ export const getTypeRefForString = (
2727
const arrayRegexMatches = arrayRegex.exec(v3ClientTypeString);
2828
if (arrayRegexMatches) {
2929
const type = arrayRegexMatches[1];
30-
const typeArgument = getTypeRefForString(j, v3ClientDefaultLocalName, type);
30+
const typeArgument = getTypeForString(j, v3ClientDefaultLocalName, type);
3131
return j.tsTypeReference.from({
3232
typeName: j.identifier("Array"),
3333
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -39,7 +39,7 @@ export const getTypeRefForString = (
3939
const recordRegexMatches = recordRegex.exec(v3ClientTypeString);
4040
if (recordRegexMatches) {
4141
const type = recordRegexMatches[1];
42-
const typeArgument = getTypeRefForString(j, v3ClientDefaultLocalName, type);
42+
const typeArgument = getTypeForString(j, v3ClientDefaultLocalName, type);
4343
return j.tsTypeReference.from({
4444
typeName: j.identifier("Record"),
4545
// eslint-disable-next-line @typescript-eslint/ban-ts-comment

src/transforms/v2-to-v3/ts-type/getV3ClientTypeReference.ts renamed to src/transforms/v2-to-v3/ts-type/getV3ClientType.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import {
66
V2_CLIENT_OUTPUT_SUFFIX_LIST,
77
} from "../config";
88
import { getDefaultLocalName } from "../utils";
9-
import { getTypeRefForString } from "./getTypeRefForString";
9+
import { getTypeForString } from "./getTypeForString";
1010

11-
export interface GetV3ClientTypeReferenceOptions {
11+
export interface GetV3ClientTypeOptions {
1212
v2ClientLocalName: string;
1313
v2ClientName: string;
1414
v2ClientTypeName: string;
@@ -20,15 +20,15 @@ const getTypeRefWithV3ClientDefaultLocalName = (
2020
v3ClientTypeName: string
2121
) => j.tsTypeReference(j.identifier([v3ClientDefaultLocalName, v3ClientTypeName].join(".")));
2222

23-
export const getV3ClientTypeReference = (
23+
export const getV3ClientType = (
2424
j: JSCodeshift,
25-
{ v2ClientLocalName, v2ClientName, v2ClientTypeName }: GetV3ClientTypeReferenceOptions
25+
{ v2ClientLocalName, v2ClientName, v2ClientTypeName }: GetV3ClientTypeOptions
2626
): TSType => {
2727
const clientTypesMap = CLIENT_TYPES_MAP[v2ClientName];
2828
const defaultLocalName = getDefaultLocalName(v2ClientLocalName);
2929

3030
if (Object.keys(clientTypesMap).includes(v2ClientTypeName)) {
31-
return getTypeRefForString(j, defaultLocalName, clientTypesMap[v2ClientTypeName]);
31+
return getTypeForString(j, defaultLocalName, clientTypesMap[v2ClientTypeName]);
3232
}
3333

3434
for (const inputSuffix of V2_CLIENT_INPUT_SUFFIX_LIST) {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
export * from "./getClientTypeNames";
2-
export * from "./getV3ClientTypeReference";
2+
export * from "./getV3ClientType";
33
export * from "./getV3ClientTypesCount";
44
export * from "./replaceTSQualifiedName";

src/transforms/v2-to-v3/ts-type/replaceTSQualifiedName.ts

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import { ASTPath, Collection, Identifier, JSCodeshift, TSQualifiedName } from "j
33
import { DOCUMENT_CLIENT, DYNAMODB, DYNAMODB_DOCUMENT_CLIENT } from "../config";
44
import { getClientTypeNames } from "./getClientTypeNames";
55
import { getTSQualifiedNameFromClientName } from "./getTSQualifiedNameFromClientName";
6-
import { getV3ClientTypeReference } from "./getV3ClientTypeReference";
7-
import { updateV2ClientTypeRef } from "./updateV2ClientTypeRef";
6+
import { getV3ClientType } from "./getV3ClientType";
7+
import { updateV2ClientType } from "./updateV2ClientType";
88

99
export interface ReplaceTSQualifiedNameOptions {
1010
v2ClientName: string;
@@ -46,11 +46,7 @@ export const replaceTSQualifiedName = (
4646
)
4747
.forEach((v2ClientType) => {
4848
const v2ClientTypeName = getRightIdentifierName(v2ClientType.node);
49-
updateV2ClientTypeRef(j, v2ClientType, {
50-
v2ClientName,
51-
v2ClientTypeName,
52-
v2ClientLocalName,
53-
});
49+
updateV2ClientType(j, v2ClientType, { v2ClientName, v2ClientTypeName, v2ClientLocalName });
5450
});
5551
}
5652

@@ -73,11 +69,7 @@ export const replaceTSQualifiedName = (
7369
)
7470
.forEach((v2ClientType) => {
7571
const v2ClientTypeName = getRightIdentifierName(v2ClientType.node);
76-
updateV2ClientTypeRef(j, v2ClientType, {
77-
v2ClientName,
78-
v2ClientTypeName,
79-
v2ClientLocalName,
80-
});
72+
updateV2ClientType(j, v2ClientType, { v2ClientName, v2ClientTypeName, v2ClientLocalName });
8173
});
8274

8375
// Replace type reference to client type with modules.
@@ -96,7 +88,7 @@ export const replaceTSQualifiedName = (
9688
)
9789
.replaceWith((v2ClientType) => {
9890
const v2ClientTypeName = v2ClientType.node.name;
99-
return getV3ClientTypeReference(j, { v2ClientName, v2ClientTypeName, v2ClientLocalName });
91+
return getV3ClientType(j, { v2ClientName, v2ClientTypeName, v2ClientLocalName });
10092
});
10193
}
10294

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { ASTPath, Identifier, JSCodeshift, TSQualifiedName, TSTypeReference } from "jscodeshift";
2+
import { getV3ClientType } from "./getV3ClientType";
3+
4+
const nativeTsRefTypes = ["TSAnyKeyword", "TSStringKeyword", "TSNumberKeyword", "TSBooleanKeyword"];
5+
const nativeTsIdentifierTypes = ["Date", "Uint8Array", "Array", "Record"];
6+
7+
interface UpdateV2ClientTypeOptions {
8+
v2ClientName: string;
9+
v2ClientTypeName: string;
10+
v2ClientLocalName: string;
11+
}
12+
13+
export const updateV2ClientType = (
14+
j: JSCodeshift,
15+
v2ClientType: ASTPath<TSQualifiedName>,
16+
{ v2ClientName, v2ClientTypeName, v2ClientLocalName }: UpdateV2ClientTypeOptions
17+
) => {
18+
const v3ClientType = getV3ClientType(j, { v2ClientName, v2ClientTypeName, v2ClientLocalName });
19+
20+
if (
21+
(v2ClientType.parentPath?.value.type === "TSTypeQuery" &&
22+
nativeTsRefTypes.includes(v3ClientType.type)) ||
23+
(v3ClientType.type === "TSTypeReference" &&
24+
(v3ClientType as TSTypeReference).typeName.type === "Identifier" &&
25+
nativeTsIdentifierTypes.includes(
26+
((v3ClientType as TSTypeReference).typeName as Identifier).name
27+
))
28+
) {
29+
v2ClientType.parentPath?.replace(v3ClientType);
30+
} else {
31+
v2ClientType.replace(v3ClientType);
32+
}
33+
};

src/transforms/v2-to-v3/ts-type/updateV2ClientTypeRef.ts

Lines changed: 0 additions & 37 deletions
This file was deleted.

0 commit comments

Comments
 (0)