Skip to content

Commit 959146f

Browse files
authored
validate required input query params (smithy-lang#646)
1 parent dfd9b20 commit 959146f

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -856,17 +856,21 @@ private void writeRequestQueryParam(
856856
target
857857
);
858858

859+
boolean isRequired = binding.getMember().isRequired();
860+
writer.addImport("expectNonNull", "__expectNonNull", "@aws-sdk/smithy-client");
861+
String value = isRequired ? "__expectNonNull($L, `" + memberName + "`)" : "$L";
862+
859863
if (Objects.equals("input." + memberName + "!", queryValue)) {
860864
// simple undefined check
861865
writer.write(
862-
"$S: [,$L],",
866+
"$S: [," + value + "],",
863867
binding.getLocationName(),
864868
queryValue
865869
);
866870
} else {
867871
// undefined check with lazy eval
868872
writer.write(
869-
"$S: [() => input.$L !== void 0, () => $L],",
873+
"$S: [() => input.$L !== void 0, () => " + value + "],",
870874
binding.getLocationName(),
871875
memberName,
872876
queryValue

0 commit comments

Comments
 (0)