Skip to content

Commit 4dd1363

Browse files
committed
feat: replace uuid.v4 with crypto.randomUUID()
1 parent b15137d commit 4dd1363

File tree

3 files changed

+9
-18
lines changed

3 files changed

+9
-18
lines changed

smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/TypeScriptDependency.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,12 @@ public enum TypeScriptDependency implements Dependency {
7979

8080
NODE_CONFIG_PROVIDER("dependencies", "@smithy/node-config-provider", false),
8181

82+
/**
83+
* @deprecated use crypto.randomUUID().
84+
*/
85+
@Deprecated
8286
UUID_TYPES("dependencies", "@types/uuid", "^9.0.1", false),
87+
@Deprecated
8388
UUID("dependencies", "uuid", "^9.0.1", false),
8489

8590
// Conditionally added when httpChecksumRequired trait exists

smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/integration/HttpBindingProtocolGenerator.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -873,13 +873,8 @@ private void writeRequestQueryParam(
873873
Shape target = model.expectShape(binding.getMember().getTarget());
874874

875875
boolean isIdempotencyToken = binding.getMember().hasTrait(IdempotencyTokenTrait.class);
876-
if (isIdempotencyToken) {
877-
writer
878-
.addDependency(TypeScriptDependency.UUID_TYPES)
879-
.addImport("v4", "generateIdempotencyToken", TypeScriptDependency.UUID);
880-
}
881876
boolean isRequired = binding.getMember().isRequired();
882-
String idempotencyComponent = (isIdempotencyToken && !isRequired) ? " ?? generateIdempotencyToken()" : "";
877+
String idempotencyComponent = (isIdempotencyToken && !isRequired) ? " ?? crypto.randomUUID()" : "";
883878
String memberAssertionComponent = (idempotencyComponent.isEmpty() ? "!" : "");
884879

885880
String queryValue = getInputValue(
@@ -1005,11 +1000,6 @@ private void writeNormalHeader(GenerationContext context, HttpBinding binding) {
10051000
target
10061001
);
10071002
boolean isIdempotencyToken = binding.getMember().hasTrait(IdempotencyTokenTrait.class);
1008-
if (isIdempotencyToken) {
1009-
context.getWriter()
1010-
.addDependency(TypeScriptDependency.UUID_TYPES)
1011-
.addImport("v4", "generateIdempotencyToken", TypeScriptDependency.UUID);
1012-
}
10131003

10141004
boolean headerAssertion = headerValue.endsWith("!");
10151005
String headerBaseValue = (headerAssertion
@@ -1022,7 +1012,7 @@ private void writeNormalHeader(GenerationContext context, HttpBinding binding) {
10221012
String s = headerBuffer.get(headerKey);
10231013
defaultValue = " || " + s.substring(s.indexOf(": ") + 2, s.length() - 1);
10241014
} else if (isIdempotencyToken) {
1025-
defaultValue = " ?? generateIdempotencyToken()";
1015+
defaultValue = " ?? crypto.randomUUID()";
10261016
}
10271017

10281018
String headerValueExpression = headerAssertion && !defaultValue.isEmpty()
@@ -1046,7 +1036,7 @@ private void writeNormalHeader(GenerationContext context, HttpBinding binding) {
10461036
String s = headerBuffer.get(headerKey);
10471037
constructedHeaderValue += " || " + s.substring(s.indexOf(": ") + 2, s.length() - 1);
10481038
} else if (isIdempotencyToken) {
1049-
constructedHeaderValue += " ?? generateIdempotencyToken()";
1039+
constructedHeaderValue += " ?? crypto.randomUUID()";
10501040
} else {
10511041
constructedHeaderValue = headerValue;
10521042
}

smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/protocols/cbor/CborShapeSerVisitor.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,11 +127,7 @@ protected void serializeStructure(ProtocolGenerator.GenerationContext context, S
127127
boolean isUnaryCall = UnaryFunctionCall.check(valueExpression);
128128

129129
if (memberShape.hasTrait(IdempotencyTokenTrait.class)) {
130-
writer
131-
.addDependency(TypeScriptDependency.UUID_TYPES)
132-
.addImport("v4", "generateIdempotencyToken", TypeScriptDependency.UUID);
133-
134-
writer.write("'$L': [true, _ => _ ?? generateIdempotencyToken()],", memberName);
130+
writer.write("'$L': [true, _ => _ ?? crypto.randomUUID()],", memberName);
135131
} else {
136132
if (valueProvider.equals("_ => _")) {
137133
writer.write("'$1L': [],", memberName);

0 commit comments

Comments
 (0)