Skip to content

Commit d39d36e

Browse files
authored
model bucketing: special case for smithy.api#Unit (#714)
* model bucketing: special case for smithy.api#Unit * update UnitTypeTrait equality check
1 parent 9472517 commit d39d36e

File tree

1 file changed

+14
-6
lines changed
  • smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen

1 file changed

+14
-6
lines changed

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

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
import software.amazon.smithy.model.traits.EnumTrait;
6868
import software.amazon.smithy.model.traits.MediaTypeTrait;
6969
import software.amazon.smithy.model.traits.StreamingTrait;
70+
import software.amazon.smithy.model.traits.UnitTypeTrait;
7071
import software.amazon.smithy.utils.SmithyInternalApi;
7172
import software.amazon.smithy.utils.StringUtils;
7273

@@ -458,13 +459,20 @@ public String formatModuleName(Shape shape, String name) {
458459
return visitedModels.get(shape);
459460
}
460461
// Add models into buckets no bigger than chunk size.
461-
String path = String.join("/", ".", SHAPE_NAMESPACE_PREFIX, "models_" + bucketCount);
462-
visitedModels.put(shape, path);
463-
currentBucketSize++;
464-
if (currentBucketSize == chunkSize) {
465-
bucketCount++;
466-
currentBucketSize = 0;
462+
String path;
463+
if (shape.getId().equals(UnitTypeTrait.UNIT)) {
464+
// Unit should only be put in the zero bucket, since it does not
465+
// generate anything. It also does not contribute to bucket size.
466+
path = String.join("/", ".", SHAPE_NAMESPACE_PREFIX, "models_0");
467+
} else {
468+
path = String.join("/", ".", SHAPE_NAMESPACE_PREFIX, "models_" + bucketCount);
469+
currentBucketSize++;
470+
if (currentBucketSize == chunkSize) {
471+
bucketCount++;
472+
currentBucketSize = 0;
473+
}
467474
}
475+
visitedModels.put(shape, path);
468476
return path;
469477
}
470478

0 commit comments

Comments
 (0)