Skip to content

Commit ef48329

Browse files
authored
chore(private): add 'uuid' import only when necessary (#7369)
1 parent 6800db7 commit ef48329

File tree

25 files changed

+25
-77
lines changed

25 files changed

+25
-77
lines changed

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ public void generateSharedComponents(GenerationContext context) {
104104
AwsProtocolUtils.generateXmlParseBody(context);
105105
AwsProtocolUtils.generateXmlParseErrorBody(context);
106106
AwsProtocolUtils.generateBuildFormUrlencodedString(context);
107-
AwsProtocolUtils.addItempotencyAutofillImport(context);
108107

109108
TypeScriptWriter writer = context.getWriter();
110109

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

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -238,29 +238,6 @@ static boolean writeXmlNamespace(GenerationContext context, Shape shape, String
238238
return true;
239239
}
240240

241-
/**
242-
* Imports a UUID v4 generating function used for auto-filling idempotency tokens.
243-
*
244-
* @param context The generation context.
245-
*/
246-
static void addItempotencyAutofillImport(GenerationContext context) {
247-
// servers do not autogenerate idempotency tokens during deserialization
248-
if (!context.getSettings().generateClient()) {
249-
return;
250-
}
251-
context.getModel().shapes(MemberShape.class)
252-
.filter(memberShape -> memberShape.hasTrait(IdempotencyTokenTrait.class))
253-
.findFirst()
254-
.ifPresent(memberShape -> {
255-
TypeScriptWriter writer = context.getWriter();
256-
257-
// Include the uuid package and import the v4 function as our more clearly named alias.
258-
writer.addDependency(TypeScriptDependency.UUID);
259-
writer.addDependency(TypeScriptDependency.UUID_TYPES);
260-
writer.addImport("v4", "generateIdempotencyToken", TypeScriptDependency.UUID);
261-
});
262-
}
263-
264241
/**
265242
* Writes a statement that auto-fills the value of a member that is an idempotency
266243
* token if it is undefined at the time of serialization.
@@ -273,6 +250,10 @@ static void writeIdempotencyAutofill(GenerationContext context, MemberShape memb
273250
if (memberShape.hasTrait(IdempotencyTokenTrait.class)) {
274251
TypeScriptWriter writer = context.getWriter();
275252

253+
writer.addDependency(TypeScriptDependency.UUID);
254+
writer.addDependency(TypeScriptDependency.UUID_TYPES);
255+
writer.addImport("v4", "generateIdempotencyToken", TypeScriptDependency.UUID);
256+
276257
writer.openBlock("if ($L === undefined) {", "}", inputLocation, () ->
277258
writer.write("$L = generateIdempotencyToken();", inputLocation));
278259
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@ public void generateSharedComponents(GenerationContext context) {
109109
AwsProtocolUtils.generateXmlParseBody(context);
110110
AwsProtocolUtils.generateXmlParseErrorBody(context);
111111
AwsProtocolUtils.generateBuildFormUrlencodedString(context);
112-
AwsProtocolUtils.addItempotencyAutofillImport(context);
113112

114113
TypeScriptWriter writer = context.getWriter();
115114

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ public void generateSharedComponents(GenerationContext context) {
104104
super.generateSharedComponents(context);
105105
AwsProtocolUtils.generateXmlParseBody(context);
106106
AwsProtocolUtils.generateXmlParseErrorBody(context);
107-
AwsProtocolUtils.addItempotencyAutofillImport(context);
108107

109108
TypeScriptWriter writer = context.getWriter();
110109
writer.addDependency(AwsDependency.XML_BUILDER);

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ public void generateSharedComponents(GenerationContext context) {
6464
super.generateSharedComponents(context);
6565
AwsProtocolUtils.generateJsonParseBody(context);
6666
AwsProtocolUtils.generateJsonParseErrorBody(context);
67-
AwsProtocolUtils.addItempotencyAutofillImport(context);
6867

6968
TypeScriptWriter writer = context.getWriter();
7069
writer.addUseImports(getApplicationProtocol().getResponseType());

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,9 @@ public void serializeStructure(GenerationContext context, StructureShape shape)
170170

171171
if (hasJsonName) {
172172
if (memberShape.hasTrait(IdempotencyTokenTrait.class)) {
173+
writer.addDependency(TypeScriptDependency.UUID);
174+
writer.addDependency(TypeScriptDependency.UUID_TYPES);
175+
writer.addImport("v4", "generateIdempotencyToken", TypeScriptDependency.UUID);
173176
writer.write("'$L': [true, _ => _ ?? generateIdempotencyToken(), `$L`],", wireName, memberName);
174177
} else {
175178
if (valueProvider.equals("_ => _")) {
@@ -183,6 +186,9 @@ public void serializeStructure(GenerationContext context, StructureShape shape)
183186
}
184187
} else {
185188
if (memberShape.hasTrait(IdempotencyTokenTrait.class)) {
189+
writer.addDependency(TypeScriptDependency.UUID);
190+
writer.addDependency(TypeScriptDependency.UUID_TYPES);
191+
writer.addImport("v4", "generateIdempotencyToken", TypeScriptDependency.UUID);
186192
writer.write("'$L': [true, _ => _ ?? generateIdempotencyToken()],", memberName);
187193
} else {
188194
if (valueProvider.equals("_ => _")) {

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ public void generateSharedComponents(GenerationContext context) {
8383
super.generateSharedComponents(context);
8484
AwsProtocolUtils.generateJsonParseBody(context);
8585
AwsProtocolUtils.generateJsonParseErrorBody(context);
86-
AwsProtocolUtils.addItempotencyAutofillImport(context);
8786

8887
TypeScriptWriter writer = context.getWriter();
8988
writer.addUseImports(getApplicationProtocol().getResponseType());
@@ -351,6 +350,9 @@ private void serializeDocumentBody(GenerationContext context, List<HttpBinding>
351350

352351
if (hasJsonName) {
353352
if (memberShape.hasTrait(IdempotencyTokenTrait.class)) {
353+
writer.addDependency(TypeScriptDependency.UUID);
354+
writer.addDependency(TypeScriptDependency.UUID_TYPES);
355+
writer.addImport("v4", "generateIdempotencyToken", TypeScriptDependency.UUID);
354356
writer.write("'$L': [true,_ => _ ?? generateIdempotencyToken(),`$L`],",
355357
wireName, memberName);
356358
} else {
@@ -362,6 +364,9 @@ private void serializeDocumentBody(GenerationContext context, List<HttpBinding>
362364
}
363365
} else {
364366
if (memberShape.hasTrait(IdempotencyTokenTrait.class)) {
367+
writer.addDependency(TypeScriptDependency.UUID);
368+
writer.addDependency(TypeScriptDependency.UUID_TYPES);
369+
writer.addImport("v4", "generateIdempotencyToken", TypeScriptDependency.UUID);
365370
writer.write("'$L': [true, _ => _ ?? generateIdempotencyToken()],", wireName);
366371
} else {
367372
if (valueProvider.equals("_ => _")) {

private/aws-echo-service/package.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,7 @@
5151
"@smithy/util-middleware": "^4.1.1",
5252
"@smithy/util-retry": "^4.1.2",
5353
"@smithy/util-utf8": "^4.1.0",
54-
"@types/uuid": "^9.0.1",
55-
"tslib": "^2.6.2",
56-
"uuid": "^9.0.1"
54+
"tslib": "^2.6.2"
5755
},
5856
"devDependencies": {
5957
"@tsconfig/node18": "18.2.4",

private/aws-echo-service/src/protocols/Aws_restJson1.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import {
2424
ResponseMetadata as __ResponseMetadata,
2525
SerdeContext as __SerdeContext,
2626
} from "@smithy/types";
27-
import { v4 as generateIdempotencyToken } from "uuid";
2827

2928
/**
3029
* serializeAws_restJson1EchoCommand

private/aws-protocoltests-json-10/package.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,7 @@
5757
"@smithy/util-middleware": "^4.1.1",
5858
"@smithy/util-retry": "^4.1.2",
5959
"@smithy/util-utf8": "^4.1.0",
60-
"@types/uuid": "^9.0.1",
61-
"tslib": "^2.6.2",
62-
"uuid": "^9.0.1"
60+
"tslib": "^2.6.2"
6361
},
6462
"devDependencies": {
6563
"@tsconfig/node18": "18.2.4",

0 commit comments

Comments
 (0)