Skip to content

Commit 9b99695

Browse files
committed
pass dependency
1 parent 8a61d36 commit 9b99695

File tree

4 files changed

+41
-5
lines changed

4 files changed

+41
-5
lines changed

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,12 @@ private void renderNonErrorStructure() {
174174
}
175175

176176
StructuredMemberWriter config = new StructuredMemberWriter(
177-
model, symbolProvider, shape.getAllMembers().values(), this.requiredMemberMode);
177+
model,
178+
symbolProvider,
179+
shape.getAllMembers().values(),
180+
this.requiredMemberMode,
181+
sensitiveDataFinder
182+
);
178183
config.writeMembers(writer, shape);
179184
writer.closeBlock("}");
180185
writer.write("");
@@ -277,7 +282,7 @@ private void renderErrorStructure() {
277282
HttpProtocolGeneratorUtils.writeRetryableTrait(writer, shape, ";");
278283
}
279284
StructuredMemberWriter structuredMemberWriter = new StructuredMemberWriter(model, symbolProvider,
280-
shape.getAllMembers().values(), this.requiredMemberMode);
285+
shape.getAllMembers().values(), this.requiredMemberMode, sensitiveDataFinder);
281286
// since any error interface must extend from JavaScript Error interface,
282287
// message member is already
283288
// required in the JavaScript Error interface

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,18 +68,28 @@ final class StructuredMemberWriter {
6868
boolean noDocs;
6969
RequiredMemberMode requiredMemberMode;
7070
final Set<String> skipMembers = new HashSet<>();
71-
private final SensitiveDataFinder sensitiveDataFinder = new SensitiveDataFinder();
71+
private final SensitiveDataFinder sensitiveDataFinder;
7272

7373
StructuredMemberWriter(Model model, SymbolProvider symbolProvider, Collection<MemberShape> members) {
7474
this(model, symbolProvider, members, RequiredMemberMode.NULLABLE);
7575
}
7676

7777
StructuredMemberWriter(Model model, SymbolProvider symbolProvider, Collection<MemberShape> members,
7878
RequiredMemberMode requiredMemberMode) {
79+
this(model, symbolProvider, members, requiredMemberMode, new SensitiveDataFinder());
80+
}
81+
82+
StructuredMemberWriter(
83+
Model model,
84+
SymbolProvider symbolProvider,
85+
Collection<MemberShape> members,
86+
RequiredMemberMode requiredMemberMode,
87+
SensitiveDataFinder sensitiveDataFinder) {
7988
this.model = model;
8089
this.symbolProvider = symbolProvider;
8190
this.members = new LinkedHashSet<>(members);
8291
this.requiredMemberMode = requiredMemberMode;
92+
this.sensitiveDataFinder = sensitiveDataFinder;
8393
}
8494

8595
void writeMembers(TypeScriptWriter writer, Shape shape) {

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

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import software.amazon.smithy.model.Model;
2323
import software.amazon.smithy.model.shapes.MemberShape;
2424
import software.amazon.smithy.model.shapes.UnionShape;
25+
import software.amazon.smithy.typescript.codegen.TypeScriptSettings.RequiredMemberMode;
2526
import software.amazon.smithy.typescript.codegen.validation.SensitiveDataFinder;
2627
import software.amazon.smithy.utils.SmithyInternalApi;
2728
import software.amazon.smithy.utils.StringUtils;
@@ -255,7 +256,12 @@ private void writeFilterSensitiveLog(String namespace) {
255256
for (MemberShape member : shape.getAllMembers().values()) {
256257
String memberName = symbolProvider.toMemberName(member);
257258
StructuredMemberWriter structuredMemberWriter = new StructuredMemberWriter(
258-
model, symbolProvider, shape.getAllMembers().values());
259+
model,
260+
symbolProvider,
261+
shape.getAllMembers().values(),
262+
RequiredMemberMode.NULLABLE,
263+
sensitiveDataFinder
264+
);
259265
writer.openBlock("if (${1L}.${2L} !== undefined) return {${2L}: ", "};",
260266
objectParam, memberName, () -> {
261267
String memberParam = String.format("%s.%s", objectParam, memberName);
@@ -272,7 +278,12 @@ private void writeFilterSensitiveLog(String namespace) {
272278

273279
private void writeValidate() {
274280
StructuredMemberWriter structuredMemberWriter = new StructuredMemberWriter(
275-
model, symbolProvider, shape.getAllMembers().values());
281+
model,
282+
symbolProvider,
283+
shape.getAllMembers().values(),
284+
RequiredMemberMode.NULLABLE,
285+
sensitiveDataFinder
286+
);
276287

277288
structuredMemberWriter.writeMemberValidatorCache(writer, "memberValidators");
278289

smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/validation/SensitiveDataFinder.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,19 @@
1616
import software.amazon.smithy.model.traits.SensitiveTrait;
1717
import software.amazon.smithy.model.traits.StreamingTrait;
1818

19+
/**
20+
* This validator tells you whether a shape contains sensitive data fields.
21+
* This is used to decide whether a sensitive log filter function needs to be generated for
22+
* a given shape.
23+
*/
1924
public class SensitiveDataFinder {
2025
private Map<Shape, Boolean> cache = new HashMap<>();
2126

27+
/**
28+
* @param shape - the shape in question.
29+
* @param model - model context for the shape, containing its related shapes.
30+
* @return whether a sensitive field exists in the shape and its downstream shapes.
31+
*/
2232
public boolean findsSensitiveData(Shape shape, Model model) {
2333
boolean found = findRecursive(shape, model);
2434
cache.put(shape, found);

0 commit comments

Comments
 (0)