Skip to content

Commit f634ef5

Browse files
authored
docs: improve deprecatedTrait with default description (#1541)
1 parent bafc49f commit f634ef5

File tree

5 files changed

+38
-5
lines changed

5 files changed

+38
-5
lines changed

private/my-local-model/src/commands/GetNumbersCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ export interface GetNumbersCommandOutput extends GetNumbersResponse, __MetadataB
4040
* const input = { // GetNumbersRequest
4141
* bigDecimal: Number("bigdecimal"),
4242
* bigInteger: Number("bigint"),
43+
* fieldWithoutMessage: "STRING_VALUE",
44+
* fieldWithMessage: "STRING_VALUE",
4345
* };
4446
* const command = new GetNumbersCommand(input);
4547
* const response = await client.send(command);

private/my-local-model/src/models/models_0.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,21 @@ export class CodedThrottlingError extends __BaseException {
3939
export interface GetNumbersRequest {
4040
bigDecimal?: NumericValue | undefined;
4141
bigInteger?: bigint | undefined;
42+
/**
43+
* This is deprecated documentation annotation
44+
*
45+
* @deprecated deprecated
46+
* @public
47+
*/
48+
fieldWithoutMessage?: string | undefined;
49+
50+
/**
51+
* This is deprecated documentation annotation
52+
*
53+
* @deprecated This field has been deprecated
54+
* @public
55+
*/
56+
fieldWithMessage?: string | undefined;
4257
}
4358

4459
/**

private/my-local-model/src/protocols/Rpcv2cbor.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,8 @@ const se_GetNumbersRequest = (input: GetNumbersRequest, context: __SerdeContext)
296296
return take(input, {
297297
bigDecimal: __nv,
298298
bigInteger: [],
299+
fieldWithMessage: [],
300+
fieldWithoutMessage: [],
299301
});
300302
};
301303

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

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -225,10 +225,9 @@ boolean writeShapeDocs(Shape shape, UnaryOperator<String> preprocessor) {
225225
if (shape.getTrait(DeprecatedTrait.class).isPresent()) {
226226
DeprecatedTrait deprecatedTrait = shape.expectTrait(DeprecatedTrait.class);
227227
String deprecationMessage = deprecatedTrait.getMessage()
228-
.map(msg -> " " + msg)
229-
.orElse("");
230-
String deprecationString = "@deprecated" + deprecationMessage;
231-
docs = docs + "\n\n" + deprecationString;
228+
.orElse("deprecated");
229+
String deprecationAnnotation = "@deprecated " + deprecationMessage;
230+
docs = docs + "\n\n" + deprecationAnnotation;
232231
}
233232
docs = preprocessor.apply(docs);
234233
docs = addReleaseTag(shape, docs);
@@ -266,7 +265,13 @@ boolean writeMemberDocs(Model model, MemberShape member) {
266265
docs = docs.replace("{", "\\{")
267266
.replace("}", "\\}");
268267
if (member.getTrait(DeprecatedTrait.class).isPresent() || isTargetDeprecated(model, member)) {
269-
docs = docs + "\n\n@deprecated";
268+
DeprecatedTrait deprecatedTrait = member.getTrait(DeprecatedTrait.class)
269+
.or(() -> model.expectShape(member.getTarget()).getTrait(DeprecatedTrait.class))
270+
.orElseThrow();
271+
String deprecationMessage = deprecatedTrait.getMessage()
272+
.orElse("deprecated");
273+
String deprecationAnnotation = "@deprecated " + deprecationMessage;
274+
docs = docs + "\n\n" + deprecationAnnotation;
270275
}
271276
docs = addReleaseTag(member, docs);
272277
writeDocs(docs);

smithy-typescript-protocol-test-codegen/model/my-local-model/main.smithy

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,16 @@ operation GetNumbers {
2929
@input
3030
structure GetNumbersRequest {
3131
bigDecimal: BigDecimal
32+
3233
bigInteger: BigInteger
34+
35+
@documentation("This is deprecated documentation annotation")
36+
@deprecated
37+
fieldWithoutMessage: String
38+
39+
@documentation("This is deprecated documentation annotation")
40+
@deprecated(message: "This field has been deprecated", since: "3.0")
41+
fieldWithMessage: String
3342
}
3443

3544
@output

0 commit comments

Comments
 (0)