Skip to content

Commit be6ac22

Browse files
committed
chore: codegen for lib-dynamodb
1 parent 50afe2d commit be6ac22

File tree

14 files changed

+147
-100
lines changed

14 files changed

+147
-100
lines changed

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/DocumentClientCommandGenerator.java

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,10 @@ final class DocumentClientCommandGenerator implements Runnable {
6565
private final List<MemberShape> outputMembersWithAttr;
6666
private final String clientCommandClassName;
6767
private final String clientCommandLocalName;
68-
private final Map<String, List<String>> orderedUncheckedImports = new TreeMap<>();
68+
/**
69+
* Map of package name to external:local name entries.
70+
*/
71+
private final Map<String, Map<String, String>> orderedUncheckedImports = new TreeMap<>();
6972

7073
DocumentClientCommandGenerator(
7174
TypeScriptSettings settings,
@@ -173,17 +176,23 @@ public void run() {
173176
}
174177
);
175178

176-
for (List<String> uncheckedImport : orderedUncheckedImports.values()) {
177-
// Note: using addImport would register these dependencies on the dynamodb client, which must be avoided.
178-
writer.write("""
179-
import { %s as %s } from "%s";
180-
""".formatted(
181-
uncheckedImport.get(0),
182-
uncheckedImport.get(1),
183-
uncheckedImport.get(2)
184-
)
185-
);
186-
}
179+
// Note: using addImport would register these dependencies on the dynamodb client, which must be avoided.
180+
writer.write("");
181+
orderedUncheckedImports.forEach((dep, symbols) -> {
182+
writer.openBlock("import type {", """
183+
} from "%s";
184+
""".formatted(dep), () -> {
185+
symbols.forEach((externalName, localName) -> {
186+
if (externalName.equals(localName)) {
187+
writer.writeInline(localName).write(",");
188+
} else {
189+
writer.write("""
190+
%s as %s,
191+
""".formatted(externalName, localName));
192+
}
193+
});
194+
});
195+
});
187196
}
188197

189198
private void generateCommandConstructor() {
@@ -335,13 +344,10 @@ private void writeType(
335344
) {
336345
writer.writeDocs("@public");
337346
if (optionalShape.isPresent()) {
338-
orderedUncheckedImports.put(
339-
originalTypeName + "-c",
340-
List.of(
341-
originalTypeName,
342-
"__" + originalTypeName,
343-
AwsDependency.CLIENT_DYNAMODB_PEER.getPackageName()
344-
)
347+
registerTypeImport(
348+
originalTypeName,
349+
"__" + originalTypeName,
350+
AwsDependency.CLIENT_DYNAMODB_PEER.getPackageName()
345351
);
346352
if (membersWithAttr.isEmpty()) {
347353
writer.write("export type $L = __$L;", typeName, originalTypeName);
@@ -369,13 +375,10 @@ private void writeStructureOmitType(StructureShape structureTarget) {
369375
.map(memberWithAttr -> "'" + symbolProvider.toMemberName(memberWithAttr) + "'")
370376
.collect(Collectors.joining(" | "));
371377
String typeNameToOmit = symbolProvider.toSymbol(structureTarget).getName();
372-
orderedUncheckedImports.put(
373-
typeNameToOmit + "-c",
374-
List.of(
375-
typeNameToOmit,
376-
typeNameToOmit,
377-
AwsDependency.CLIENT_DYNAMODB_PEER.getPackageName()
378-
)
378+
registerTypeImport(
379+
typeNameToOmit,
380+
typeNameToOmit,
381+
AwsDependency.CLIENT_DYNAMODB_PEER.getPackageName()
379382
);
380383
writer.openBlock("Omit<$L, $L> & {", "}", typeNameToOmit,
381384
memberUnionToOmit, () -> {
@@ -424,13 +427,10 @@ private void writeMemberOmitType(MemberShape member) {
424427

425428
private void writeNativeAttributeValue() {
426429
String nativeAttributeValue = "NativeAttributeValue";
427-
orderedUncheckedImports.put(
428-
nativeAttributeValue + "-u",
429-
List.of(
430-
nativeAttributeValue,
431-
nativeAttributeValue,
432-
AwsDependency.UTIL_DYNAMODB.getPackageName()
433-
)
430+
registerTypeImport(
431+
nativeAttributeValue,
432+
nativeAttributeValue,
433+
AwsDependency.UTIL_DYNAMODB.getPackageName()
434434
);
435435
writer.write(nativeAttributeValue);
436436
}
@@ -446,4 +446,12 @@ private void writeNativeAttributeValue() {
446446
private boolean isRequiredMember(MemberShape member) {
447447
return member.isRequired() && !member.hasTrait(IdempotencyTokenTrait.class);
448448
}
449+
450+
private void registerTypeImport(String externalName, String localName, String packageName) {
451+
orderedUncheckedImports.putIfAbsent(packageName, new TreeMap<>());
452+
orderedUncheckedImports.get(packageName)
453+
.put(
454+
externalName, localName
455+
);
456+
}
449457
}

lib/lib-dynamodb/src/commands/BatchExecuteStatementCommand.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,12 @@ export class BatchExecuteStatementCommand extends DynamoDBDocumentClientCommand<
9696
return async () => handler(this.clientCommand);
9797
}
9898
}
99-
import { BatchExecuteStatementCommandInput as __BatchExecuteStatementCommandInput } from "@aws-sdk/client-dynamodb";
100-
import { BatchExecuteStatementCommandOutput as __BatchExecuteStatementCommandOutput } from "@aws-sdk/client-dynamodb";
101-
import { BatchStatementError as BatchStatementError } from "@aws-sdk/client-dynamodb";
102-
import { BatchStatementRequest as BatchStatementRequest } from "@aws-sdk/client-dynamodb";
103-
import { BatchStatementResponse as BatchStatementResponse } from "@aws-sdk/client-dynamodb";
104-
import { NativeAttributeValue as NativeAttributeValue } from "@aws-sdk/util-dynamodb";
99+
100+
import type {
101+
BatchExecuteStatementCommandInput as __BatchExecuteStatementCommandInput,
102+
BatchExecuteStatementCommandOutput as __BatchExecuteStatementCommandOutput,
103+
BatchStatementError,
104+
BatchStatementRequest,
105+
BatchStatementResponse,
106+
} from "@aws-sdk/client-dynamodb";
107+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";

lib/lib-dynamodb/src/commands/BatchGetCommand.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,10 @@ export class BatchGetCommand extends DynamoDBDocumentClientCommand<
106106
return async () => handler(this.clientCommand);
107107
}
108108
}
109-
import { BatchGetItemCommandInput as __BatchGetItemCommandInput } from "@aws-sdk/client-dynamodb";
110-
import { BatchGetItemCommandOutput as __BatchGetItemCommandOutput } from "@aws-sdk/client-dynamodb";
111-
import { KeysAndAttributes as KeysAndAttributes } from "@aws-sdk/client-dynamodb";
112-
import { NativeAttributeValue as NativeAttributeValue } from "@aws-sdk/util-dynamodb";
109+
110+
import type {
111+
BatchGetItemCommandInput as __BatchGetItemCommandInput,
112+
BatchGetItemCommandOutput as __BatchGetItemCommandOutput,
113+
KeysAndAttributes,
114+
} from "@aws-sdk/client-dynamodb";
115+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";

lib/lib-dynamodb/src/commands/BatchWriteCommand.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,13 @@ export class BatchWriteCommand extends DynamoDBDocumentClientCommand<
136136
return async () => handler(this.clientCommand);
137137
}
138138
}
139-
import { BatchWriteItemCommandInput as __BatchWriteItemCommandInput } from "@aws-sdk/client-dynamodb";
140-
import { BatchWriteItemCommandOutput as __BatchWriteItemCommandOutput } from "@aws-sdk/client-dynamodb";
141-
import { DeleteRequest as DeleteRequest } from "@aws-sdk/client-dynamodb";
142-
import { ItemCollectionMetrics as ItemCollectionMetrics } from "@aws-sdk/client-dynamodb";
143-
import { PutRequest as PutRequest } from "@aws-sdk/client-dynamodb";
144-
import { WriteRequest as WriteRequest } from "@aws-sdk/client-dynamodb";
145-
import { NativeAttributeValue as NativeAttributeValue } from "@aws-sdk/util-dynamodb";
139+
140+
import type {
141+
BatchWriteItemCommandInput as __BatchWriteItemCommandInput,
142+
BatchWriteItemCommandOutput as __BatchWriteItemCommandOutput,
143+
DeleteRequest,
144+
ItemCollectionMetrics,
145+
PutRequest,
146+
WriteRequest,
147+
} from "@aws-sdk/client-dynamodb";
148+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";

lib/lib-dynamodb/src/commands/DeleteCommand.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,11 @@ export class DeleteCommand extends DynamoDBDocumentClientCommand<
9797
return async () => handler(this.clientCommand);
9898
}
9999
}
100-
import { DeleteItemCommandInput as __DeleteItemCommandInput } from "@aws-sdk/client-dynamodb";
101-
import { DeleteItemCommandOutput as __DeleteItemCommandOutput } from "@aws-sdk/client-dynamodb";
102-
import { ExpectedAttributeValue as ExpectedAttributeValue } from "@aws-sdk/client-dynamodb";
103-
import { ItemCollectionMetrics as ItemCollectionMetrics } from "@aws-sdk/client-dynamodb";
104-
import { NativeAttributeValue as NativeAttributeValue } from "@aws-sdk/util-dynamodb";
100+
101+
import type {
102+
DeleteItemCommandInput as __DeleteItemCommandInput,
103+
DeleteItemCommandOutput as __DeleteItemCommandOutput,
104+
ExpectedAttributeValue,
105+
ItemCollectionMetrics,
106+
} from "@aws-sdk/client-dynamodb";
107+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";

lib/lib-dynamodb/src/commands/ExecuteStatementCommand.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ export class ExecuteStatementCommand extends DynamoDBDocumentClientCommand<
8080
return async () => handler(this.clientCommand);
8181
}
8282
}
83-
import { ExecuteStatementCommandInput as __ExecuteStatementCommandInput } from "@aws-sdk/client-dynamodb";
84-
import { ExecuteStatementCommandOutput as __ExecuteStatementCommandOutput } from "@aws-sdk/client-dynamodb";
85-
import { NativeAttributeValue as NativeAttributeValue } from "@aws-sdk/util-dynamodb";
83+
84+
import type {
85+
ExecuteStatementCommandInput as __ExecuteStatementCommandInput,
86+
ExecuteStatementCommandOutput as __ExecuteStatementCommandOutput,
87+
} from "@aws-sdk/client-dynamodb";
88+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";

lib/lib-dynamodb/src/commands/ExecuteTransactionCommand.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,11 @@ export class ExecuteTransactionCommand extends DynamoDBDocumentClientCommand<
9090
return async () => handler(this.clientCommand);
9191
}
9292
}
93-
import { ExecuteTransactionCommandInput as __ExecuteTransactionCommandInput } from "@aws-sdk/client-dynamodb";
94-
import { ExecuteTransactionCommandOutput as __ExecuteTransactionCommandOutput } from "@aws-sdk/client-dynamodb";
95-
import { ItemResponse as ItemResponse } from "@aws-sdk/client-dynamodb";
96-
import { ParameterizedStatement as ParameterizedStatement } from "@aws-sdk/client-dynamodb";
97-
import { NativeAttributeValue as NativeAttributeValue } from "@aws-sdk/util-dynamodb";
93+
94+
import type {
95+
ExecuteTransactionCommandInput as __ExecuteTransactionCommandInput,
96+
ExecuteTransactionCommandOutput as __ExecuteTransactionCommandOutput,
97+
ItemResponse,
98+
ParameterizedStatement,
99+
} from "@aws-sdk/client-dynamodb";
100+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";

lib/lib-dynamodb/src/commands/GetCommand.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ export class GetCommand extends DynamoDBDocumentClientCommand<
7676
return async () => handler(this.clientCommand);
7777
}
7878
}
79-
import { GetItemCommandInput as __GetItemCommandInput } from "@aws-sdk/client-dynamodb";
80-
import { GetItemCommandOutput as __GetItemCommandOutput } from "@aws-sdk/client-dynamodb";
81-
import { NativeAttributeValue as NativeAttributeValue } from "@aws-sdk/util-dynamodb";
79+
80+
import type {
81+
GetItemCommandInput as __GetItemCommandInput,
82+
GetItemCommandOutput as __GetItemCommandOutput,
83+
} from "@aws-sdk/client-dynamodb";
84+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";

lib/lib-dynamodb/src/commands/PutCommand.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,11 @@ export class PutCommand extends DynamoDBDocumentClientCommand<
9797
return async () => handler(this.clientCommand);
9898
}
9999
}
100-
import { ExpectedAttributeValue as ExpectedAttributeValue } from "@aws-sdk/client-dynamodb";
101-
import { ItemCollectionMetrics as ItemCollectionMetrics } from "@aws-sdk/client-dynamodb";
102-
import { PutItemCommandInput as __PutItemCommandInput } from "@aws-sdk/client-dynamodb";
103-
import { PutItemCommandOutput as __PutItemCommandOutput } from "@aws-sdk/client-dynamodb";
104-
import { NativeAttributeValue as NativeAttributeValue } from "@aws-sdk/util-dynamodb";
100+
101+
import type {
102+
ExpectedAttributeValue,
103+
ItemCollectionMetrics,
104+
PutItemCommandInput as __PutItemCommandInput,
105+
PutItemCommandOutput as __PutItemCommandOutput,
106+
} from "@aws-sdk/client-dynamodb";
107+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";

lib/lib-dynamodb/src/commands/QueryCommand.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,10 @@ export class QueryCommand extends DynamoDBDocumentClientCommand<
107107
return async () => handler(this.clientCommand);
108108
}
109109
}
110-
import { Condition as Condition } from "@aws-sdk/client-dynamodb";
111-
import { QueryCommandInput as __QueryCommandInput } from "@aws-sdk/client-dynamodb";
112-
import { QueryCommandOutput as __QueryCommandOutput } from "@aws-sdk/client-dynamodb";
113-
import { NativeAttributeValue as NativeAttributeValue } from "@aws-sdk/util-dynamodb";
110+
111+
import type {
112+
Condition,
113+
QueryCommandInput as __QueryCommandInput,
114+
QueryCommandOutput as __QueryCommandOutput,
115+
} from "@aws-sdk/client-dynamodb";
116+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";

lib/lib-dynamodb/src/commands/ScanCommand.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,10 @@ export class ScanCommand extends DynamoDBDocumentClientCommand<
9696
return async () => handler(this.clientCommand);
9797
}
9898
}
99-
import { Condition as Condition } from "@aws-sdk/client-dynamodb";
100-
import { ScanCommandInput as __ScanCommandInput } from "@aws-sdk/client-dynamodb";
101-
import { ScanCommandOutput as __ScanCommandOutput } from "@aws-sdk/client-dynamodb";
102-
import { NativeAttributeValue as NativeAttributeValue } from "@aws-sdk/util-dynamodb";
99+
100+
import type {
101+
Condition,
102+
ScanCommandInput as __ScanCommandInput,
103+
ScanCommandOutput as __ScanCommandOutput,
104+
} from "@aws-sdk/client-dynamodb";
105+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";

lib/lib-dynamodb/src/commands/TransactGetCommand.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,12 @@ export class TransactGetCommand extends DynamoDBDocumentClientCommand<
9696
return async () => handler(this.clientCommand);
9797
}
9898
}
99-
import { Get as Get } from "@aws-sdk/client-dynamodb";
100-
import { ItemResponse as ItemResponse } from "@aws-sdk/client-dynamodb";
101-
import { TransactGetItem as TransactGetItem } from "@aws-sdk/client-dynamodb";
102-
import { TransactGetItemsCommandInput as __TransactGetItemsCommandInput } from "@aws-sdk/client-dynamodb";
103-
import { TransactGetItemsCommandOutput as __TransactGetItemsCommandOutput } from "@aws-sdk/client-dynamodb";
104-
import { NativeAttributeValue as NativeAttributeValue } from "@aws-sdk/util-dynamodb";
99+
100+
import type {
101+
Get,
102+
ItemResponse,
103+
TransactGetItem,
104+
TransactGetItemsCommandInput as __TransactGetItemsCommandInput,
105+
TransactGetItemsCommandOutput as __TransactGetItemsCommandOutput,
106+
} from "@aws-sdk/client-dynamodb";
107+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";

lib/lib-dynamodb/src/commands/TransactWriteCommand.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -125,12 +125,15 @@ export class TransactWriteCommand extends DynamoDBDocumentClientCommand<
125125
return async () => handler(this.clientCommand);
126126
}
127127
}
128-
import { ConditionCheck as ConditionCheck } from "@aws-sdk/client-dynamodb";
129-
import { Delete as Delete } from "@aws-sdk/client-dynamodb";
130-
import { ItemCollectionMetrics as ItemCollectionMetrics } from "@aws-sdk/client-dynamodb";
131-
import { Put as Put } from "@aws-sdk/client-dynamodb";
132-
import { TransactWriteItem as TransactWriteItem } from "@aws-sdk/client-dynamodb";
133-
import { TransactWriteItemsCommandInput as __TransactWriteItemsCommandInput } from "@aws-sdk/client-dynamodb";
134-
import { TransactWriteItemsCommandOutput as __TransactWriteItemsCommandOutput } from "@aws-sdk/client-dynamodb";
135-
import { Update as Update } from "@aws-sdk/client-dynamodb";
136-
import { NativeAttributeValue as NativeAttributeValue } from "@aws-sdk/util-dynamodb";
128+
129+
import type {
130+
ConditionCheck,
131+
Delete,
132+
ItemCollectionMetrics,
133+
Put,
134+
TransactWriteItem,
135+
TransactWriteItemsCommandInput as __TransactWriteItemsCommandInput,
136+
TransactWriteItemsCommandOutput as __TransactWriteItemsCommandOutput,
137+
Update,
138+
} from "@aws-sdk/client-dynamodb";
139+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";

lib/lib-dynamodb/src/commands/UpdateCommand.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,12 @@ export class UpdateCommand extends DynamoDBDocumentClientCommand<
111111
return async () => handler(this.clientCommand);
112112
}
113113
}
114-
import { AttributeValueUpdate as AttributeValueUpdate } from "@aws-sdk/client-dynamodb";
115-
import { ExpectedAttributeValue as ExpectedAttributeValue } from "@aws-sdk/client-dynamodb";
116-
import { ItemCollectionMetrics as ItemCollectionMetrics } from "@aws-sdk/client-dynamodb";
117-
import { UpdateItemCommandInput as __UpdateItemCommandInput } from "@aws-sdk/client-dynamodb";
118-
import { UpdateItemCommandOutput as __UpdateItemCommandOutput } from "@aws-sdk/client-dynamodb";
119-
import { NativeAttributeValue as NativeAttributeValue } from "@aws-sdk/util-dynamodb";
114+
115+
import type {
116+
AttributeValueUpdate,
117+
ExpectedAttributeValue,
118+
ItemCollectionMetrics,
119+
UpdateItemCommandInput as __UpdateItemCommandInput,
120+
UpdateItemCommandOutput as __UpdateItemCommandOutput,
121+
} from "@aws-sdk/client-dynamodb";
122+
import type { NativeAttributeValue } from "@aws-sdk/util-dynamodb";

0 commit comments

Comments
 (0)