Skip to content

Commit 31f3ef4

Browse files
authored
Create types map for DocumentClient (#523)
1 parent be9e394 commit 31f3ef4

File tree

4 files changed

+196
-3
lines changed

4 files changed

+196
-3
lines changed

.changeset/dry-carpets-think.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"aws-sdk-js-codemod": patch
3+
---
4+
5+
Create types map for DocumentClient

scripts/generateClientTypesMap/getClientTypesMap.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import { readFile } from "fs/promises";
2-
import jscodeshift, { Identifier, TSArrayType, TSTypeLiteral, TSTypeReference } from "jscodeshift";
32
import { join } from "path";
3+
import jscodeshift, { Identifier, TSArrayType, TSTypeLiteral, TSTypeReference } from "jscodeshift";
44

5+
import { DOCUMENT_CLIENT } from "../../src/transforms/v2-to-v3/config";
56
import { getClientTypesMapWithKeysRemovedFromValues } from "./getClientTypesMapWithKeysRemovedFromValues";
67

78
const TYPES_TO_SKIP = ["apiVersion", "ClientConfiguration"];
89
const ElementTypeToNativeTypeMap = {
10+
TSAnyKeyword: "any",
911
TSStringKeyword: "string",
1012
TSNumberKeyword: "number",
1113
TSBooleanKeyword: "boolean",
@@ -14,7 +16,10 @@ const ElementTypeToNativeTypeMap = {
1416
export const getClientTypesMap = async (clientName: string): Promise<Record<string, string>> => {
1517
const clientTypesMap = {};
1618

17-
const typesPath = join("node_modules", "aws-sdk", "clients", `${clientName.toLowerCase()}.d.ts`);
19+
const typesPath =
20+
clientName === DOCUMENT_CLIENT
21+
? join("node_modules", "aws-sdk", "lib", "dynamodb", `document_client.d.ts`)
22+
: join("node_modules", "aws-sdk", "clients", `${clientName.toLowerCase()}.d.ts`);
1823
const relativeTypesPath = join(__dirname, "..", "..", typesPath);
1924

2025
const typesCode = await readFile(relativeTypesPath, "utf8");

scripts/generateClientTypesMap/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { writeFile } from "fs/promises";
22
import { join } from "path";
33
import { format } from "prettier";
44

5-
import { CLIENT_NAMES } from "../../src/transforms/v2-to-v3/config";
5+
import { CLIENT_NAMES, DOCUMENT_CLIENT, DYNAMODB } from "../../src/transforms/v2-to-v3/config";
66
import { getClientTypesMap } from "./getClientTypesMap";
77

88
const codegenComment = `// This file is generated by scripts/generateClientTypesMap/index.ts
@@ -21,6 +21,9 @@ const relativeFilePath = join(__dirname, "..", "..", filePath);
2121

2222
for (const clientName of CLIENT_NAMES) {
2323
clientTypesMap[clientName] = await getClientTypesMap(clientName);
24+
if (clientName === DYNAMODB) {
25+
clientTypesMap[DOCUMENT_CLIENT] = await getClientTypesMap(DOCUMENT_CLIENT);
26+
}
2427
}
2528

2629
fileContent += JSON.stringify(clientTypesMap);

src/transforms/v2-to-v3/config/CLIENT_TYPES_MAP.ts

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7162,6 +7162,186 @@ export const CLIENT_TYPES_MAP: Record<string, Record<string, string>> = {
71627162
UpdateExpression: "string",
71637163
WriteRequests: "Array<WriteRequest>",
71647164
},
7165+
DocumentClient: {
7166+
_Date: "Date",
7167+
ArchivalReason: "string",
7168+
AttributeDefinitions: "Array<AttributeDefinition>",
7169+
AttributeMap: "Record<string, any>",
7170+
AttributeName: "string",
7171+
AttributeNameList: "Array<string>",
7172+
AttributeUpdates: "Record<string, AttributeValueUpdate>",
7173+
AttributeValue: "any",
7174+
AttributeValueList: "Array<any>",
7175+
AutoScalingPolicyDescriptionList: "Array<AutoScalingPolicyDescription>",
7176+
AutoScalingPolicyName: "string",
7177+
AutoScalingRoleArn: "string",
7178+
Backfilling: "boolean",
7179+
BackupArn: "string",
7180+
BackupCreationDateTime: "Date",
7181+
BackupName: "string",
7182+
BackupsInputLimit: "number",
7183+
BackupSizeBytes: "number",
7184+
BackupSummaries: "Array<BackupSummary>",
7185+
BatchGetRequestMap: "Record<string, KeysAndAttributes>",
7186+
BatchGetResponseMap: "Record<string, Array<Record<string, any>>>",
7187+
BatchWriteItemRequestMap: "Record<string, Array<WriteRequest>>",
7188+
BilledSizeBytes: "number",
7189+
BinarySetAttributeValue: "Array<BinaryAttributeValue>",
7190+
BooleanAttributeValue: "boolean",
7191+
BooleanObject: "boolean",
7192+
ClientRequestToken: "string",
7193+
ClientToken: "string",
7194+
CloudWatchLogGroupArn: "string",
7195+
ConditionExpression: "string",
7196+
ConsistentRead: "boolean",
7197+
ConsumedCapacityMultiple: "Array<ConsumedCapacity>",
7198+
ConsumedCapacityUnits: "number",
7199+
ContributorInsightsRule: "string",
7200+
ContributorInsightsRuleList: "Array<string>",
7201+
ContributorInsightsSummaries: "Array<ContributorInsightsSummary>",
7202+
CsvDelimiter: "string",
7203+
CsvHeader: "string",
7204+
CsvHeaderList: "Array<string>",
7205+
DeletionProtectionEnabled: "boolean",
7206+
DoubleObject: "number",
7207+
Endpoints: "Array<Endpoint>",
7208+
ErrorCount: "number",
7209+
ExceptionDescription: "string",
7210+
ExceptionName: "string",
7211+
ExpectedAttributeMap: "Record<string, ExpectedAttributeValue>",
7212+
ExportArn: "string",
7213+
ExportEndTime: "Date",
7214+
ExportManifest: "string",
7215+
ExportNextToken: "string",
7216+
ExportStartTime: "Date",
7217+
ExportSummaries: "Array<ExportSummary>",
7218+
ExportTime: "Date",
7219+
ExpressionAttributeNameMap: "Record<string, string>",
7220+
ExpressionAttributeNameVariable: "string",
7221+
ExpressionAttributeValueMap: "Record<string, any>",
7222+
ExpressionAttributeValueVariable: "string",
7223+
FailureCode: "string",
7224+
FailureMessage: "string",
7225+
FilterConditionMap: "Record<string, Condition>",
7226+
GlobalSecondaryIndexAutoScalingUpdateList: "Array<GlobalSecondaryIndexAutoScalingUpdate>",
7227+
GlobalSecondaryIndexDescriptionList: "Array<GlobalSecondaryIndexDescription>",
7228+
GlobalSecondaryIndexes: "Array<GlobalSecondaryIndexInfo>",
7229+
GlobalSecondaryIndexList: "Array<GlobalSecondaryIndex>",
7230+
GlobalSecondaryIndexUpdateList: "Array<GlobalSecondaryIndexUpdate>",
7231+
GlobalTableArnString: "string",
7232+
GlobalTableGlobalSecondaryIndexSettingsUpdateList:
7233+
"Array<GlobalTableGlobalSecondaryIndexSettingsUpdate>",
7234+
GlobalTableList: "Array<GlobalTable>",
7235+
ImportArn: "string",
7236+
ImportedItemCount: "number",
7237+
ImportEndTime: "Date",
7238+
ImportNextToken: "string",
7239+
ImportStartTime: "Date",
7240+
ImportSummaryList: "Array<ImportSummary>",
7241+
IndexName: "string",
7242+
Integer: "number",
7243+
IntegerObject: "number",
7244+
ItemCollectionKeyAttributeMap: "Record<string, any>",
7245+
ItemCollectionMetricsMultiple: "Array<ItemCollectionMetrics>",
7246+
ItemCollectionMetricsPerTable: "Record<string, Array<ItemCollectionMetrics>>",
7247+
ItemCollectionSizeEstimateBound: "number",
7248+
ItemCollectionSizeEstimateRange: "Array<number>",
7249+
ItemCount: "number",
7250+
ItemList: "Array<Record<string, any>>",
7251+
ItemResponseList: "Array<ItemResponse>",
7252+
Key: "Record<string, any>",
7253+
KeyConditions: "Record<string, Condition>",
7254+
KeyExpression: "string",
7255+
KeyList: "Array<Record<string, any>>",
7256+
KeySchema: "Array<KeySchemaElement>",
7257+
KeySchemaAttributeName: "string",
7258+
KinesisDataStreamDestinations: "Array<KinesisDataStreamDestination>",
7259+
KMSMasterKeyArn: "string",
7260+
KMSMasterKeyId: "string",
7261+
LastUpdateDateTime: "Date",
7262+
ListAttributeValue: "Array<any>",
7263+
ListContributorInsightsLimit: "number",
7264+
ListExportsMaxLimit: "number",
7265+
ListImportsMaxLimit: "number",
7266+
ListTablesInputLimit: "number",
7267+
LocalSecondaryIndexDescriptionList: "Array<LocalSecondaryIndexDescription>",
7268+
LocalSecondaryIndexes: "Array<LocalSecondaryIndexInfo>",
7269+
LocalSecondaryIndexList: "Array<LocalSecondaryIndex>",
7270+
Long: "number",
7271+
LongObject: "number",
7272+
MapAttributeValue: "Record<string, any>",
7273+
NextTokenString: "string",
7274+
NonKeyAttributeName: "string",
7275+
NonKeyAttributeNameList: "Array<string>",
7276+
NonNegativeLongObject: "number",
7277+
NullAttributeValue: "boolean",
7278+
NumberAttributeValue: "string",
7279+
NumberSetAttributeValue: "Array<string>",
7280+
ParameterizedStatements: "Array<ParameterizedStatement>",
7281+
PartiQLBatchRequest: "Array<BatchStatementRequest>",
7282+
PartiQLBatchResponse: "Array<BatchStatementResponse>",
7283+
PartiQLNextToken: "string",
7284+
PartiQLStatement: "string",
7285+
PositiveIntegerObject: "number",
7286+
PositiveLongObject: "number",
7287+
PreparedStatementParameters: "Array<any>",
7288+
ProcessedItemCount: "number",
7289+
ProjectionExpression: "string",
7290+
PutItemInputAttributeMap: "Record<string, any>",
7291+
RegionName: "string",
7292+
ReplicaAutoScalingDescriptionList: "Array<ReplicaAutoScalingDescription>",
7293+
ReplicaAutoScalingUpdateList: "Array<ReplicaAutoScalingUpdate>",
7294+
ReplicaDescriptionList: "Array<ReplicaDescription>",
7295+
ReplicaGlobalSecondaryIndexAutoScalingDescriptionList:
7296+
"Array<ReplicaGlobalSecondaryIndexAutoScalingDescription>",
7297+
ReplicaGlobalSecondaryIndexAutoScalingUpdateList:
7298+
"Array<ReplicaGlobalSecondaryIndexAutoScalingUpdate>",
7299+
ReplicaGlobalSecondaryIndexDescriptionList: "Array<ReplicaGlobalSecondaryIndexDescription>",
7300+
ReplicaGlobalSecondaryIndexList: "Array<ReplicaGlobalSecondaryIndex>",
7301+
ReplicaGlobalSecondaryIndexSettingsDescriptionList:
7302+
"Array<ReplicaGlobalSecondaryIndexSettingsDescription>",
7303+
ReplicaGlobalSecondaryIndexSettingsUpdateList:
7304+
"Array<ReplicaGlobalSecondaryIndexSettingsUpdate>",
7305+
ReplicaList: "Array<Replica>",
7306+
ReplicaSettingsDescriptionList: "Array<ReplicaSettingsDescription>",
7307+
ReplicaSettingsUpdateList: "Array<ReplicaSettingsUpdate>",
7308+
ReplicaStatusDescription: "string",
7309+
ReplicaStatusPercentProgress: "string",
7310+
ReplicationGroupUpdateList: "Array<ReplicationGroupUpdate>",
7311+
ReplicaUpdateList: "Array<ReplicaUpdate>",
7312+
ResourceArnString: "string",
7313+
RestoreInProgress: "boolean",
7314+
S3Bucket: "string",
7315+
S3BucketOwner: "string",
7316+
S3Prefix: "string",
7317+
S3SseKmsKeyId: "string",
7318+
ScanSegment: "number",
7319+
ScanTotalSegments: "number",
7320+
SecondaryIndexesCapacityMap: "Record<string, Capacity>",
7321+
SSEEnabled: "boolean",
7322+
StreamArn: "string",
7323+
StreamEnabled: "boolean",
7324+
String: "string",
7325+
StringAttributeValue: "string",
7326+
StringSetAttributeValue: "Array<string>",
7327+
TableArn: "string",
7328+
TableCreationDateTime: "Date",
7329+
TableId: "string",
7330+
TableName: "string",
7331+
TableNameList: "Array<string>",
7332+
TagKeyList: "Array<string>",
7333+
TagKeyString: "string",
7334+
TagList: "Array<Tag>",
7335+
TagValueString: "string",
7336+
TimeRangeLowerBound: "Date",
7337+
TimeRangeUpperBound: "Date",
7338+
TimeToLiveAttributeName: "string",
7339+
TimeToLiveEnabled: "boolean",
7340+
TransactGetItemList: "Array<TransactGetItem>",
7341+
TransactWriteItemList: "Array<TransactWriteItem>",
7342+
UpdateExpression: "string",
7343+
WriteRequests: "Array<WriteRequest>",
7344+
},
71657345
DynamoDBStreams: {
71667346
_Date: "Date",
71677347
AttributeMap: "Record<string, AttributeValue>",

0 commit comments

Comments
 (0)