From 543c0f810c60fff58f96641b9a4a3ed5eb01114e Mon Sep 17 00:00:00 2001 From: Andrew Haines Date: Thu, 13 Jul 2023 13:40:09 +0100 Subject: [PATCH 1/4] Normalize `toJSON` output by omitting fields set to their default values --- README.markdown | 13 +- integration/angular/simple-message.ts | 4 +- .../simple.ts | 4 +- integration/async-iterable-services/simple.ts | 4 +- integration/avoid-import-conflicts/simple.ts | 25 +- integration/avoid-import-conflicts/simple2.ts | 8 +- integration/barrel-imports/bar.ts | 8 +- integration/barrel-imports/foo.ts | 8 +- .../batching.ts | 51 ++- integration/batching-with-context/batching.ts | 51 ++- integration/batching/batching.ts | 51 ++- integration/bytes-as-base64/message.ts | 5 +- .../bytes-node/google/protobuf/wrappers.ts | 37 +- integration/bytes-node/point.ts | 9 +- integration/const-enum/const-enum.ts | 23 +- .../enums-as-literals-with-string-enums.ts | 4 +- .../enums-as-literals/enums-as-literals.ts | 4 +- integration/extensions/test.ts | 16 +- integration/fieldmask/fieldmask.ts | 4 +- integration/file-suffix/child.pb.ts | 4 +- .../google/protobuf/timestamp.pb.ts | 8 +- integration/file-suffix/parent.pb.ts | 12 +- .../from-partial-no-initialize/test.ts | 48 ++- integration/generic-metadata/hero.ts | 24 +- .../simple.ts | 4 +- .../generic-service-definitions/simple.ts | 4 +- integration/global-this/global-this.ts | 8 +- integration/groups/test.ts | 65 ++- .../google/protobuf/timestamp.ts | 8 +- .../grpc-js-use-date-false.ts | 4 +- .../google/protobuf/timestamp.ts | 8 +- .../grpc-js-use-date-string.ts | 4 +- .../google/protobuf/timestamp.ts | 8 +- .../grpc-js-use-date-true.ts | 4 +- integration/grpc-js/google/protobuf/struct.ts | 48 ++- .../grpc-js/google/protobuf/timestamp.ts | 8 +- .../grpc-js/google/protobuf/wrappers.ts | 37 +- integration/grpc-js/simple.ts | 4 +- integration/grpc-web-abort-signal/example.ts | 77 +++- integration/grpc-web-go-server/example.ts | 77 +++- .../example.ts | 29 +- integration/grpc-web-no-streaming/example.ts | 29 +- integration/grpc-web/example.ts | 77 +++- .../google/protobuf/timestamp.ts | 8 +- integration/import-mapping/mapping.ts | 33 +- integration/import-suffix/child.pb.ts | 4 +- .../google/protobuf/timestamp.pb.ts | 8 +- integration/import-suffix/parent.pb.ts | 12 +- integration/lower-case-svc-methods/math.ts | 16 +- integration/map-bigint-optional/test.ts | 12 +- integration/map-long-optional/test.ts | 12 +- integration/map-longstring-optional/test.ts | 12 +- .../nice-grpc/google/protobuf/struct.ts | 48 ++- .../nice-grpc/google/protobuf/timestamp.ts | 8 +- .../nice-grpc/google/protobuf/wrappers.ts | 37 +- integration/nice-grpc/simple.ts | 4 +- .../no-proto-package/no-proto-package.ts | 4 +- integration/omit-optionals/simple.ts | 8 +- integration/oneof-properties/oneof.ts | 51 ++- .../google/protobuf/struct.ts | 48 ++- integration/oneof-unions-snake/simple.ts | 4 +- .../oneof-unions/google/protobuf/struct.ts | 48 ++- integration/oneof-unions/oneof.ts | 74 +++- integration/output-index/a.ts | 4 +- integration/point/point.ts | 16 +- integration/return-observable/observable.ts | 8 +- .../simple-deprecated-fields/simple.ts | 24 +- integration/simple-esmodule-interop/simple.ts | 56 ++- .../google/protobuf/timestamp.ts | 8 +- integration/simple-json-name/simple.ts | 32 +- .../google/protobuf/timestamp.ts | 8 +- .../google/protobuf/wrappers.ts | 37 +- integration/simple-long-bigint/simple.ts | 60 ++- .../google/protobuf/timestamp.ts | 8 +- .../google/protobuf/wrappers.ts | 37 +- integration/simple-long-string/simple.ts | 56 ++- .../simple-long/google/protobuf/wrappers.ts | 37 +- integration/simple-long/simple.ts | 133 ++++-- .../google/protobuf/timestamp.ts | 8 +- .../google/protobuf/wrappers.ts | 37 +- .../simple-optionals/import_dir/thing.ts | 4 +- integration/simple-optionals/simple.ts | 238 +++++++---- integration/simple-optionals/thing.ts | 4 +- integration/simple-proto2/simple.ts | 4 +- .../google/protobuf/timestamp.ts | 8 +- .../google/protobuf/wrappers.ts | 37 +- .../google/type/date.ts | 12 +- .../import_dir/thing.ts | 4 +- .../simple-prototype-defaults/simple.ts | 382 +++++++++++------ .../simple-snake/google/protobuf/struct.ts | 48 ++- .../simple-snake/google/protobuf/timestamp.ts | 8 +- .../simple-snake/google/protobuf/wrappers.ts | 37 +- integration/simple-snake/import_dir/thing.ts | 4 +- integration/simple-snake/simple.ts | 242 +++++++---- .../google/protobuf/struct.ts | 48 ++- integration/simple-string-enums/simple.ts | 35 +- .../google/protobuf/timestamp.ts | 8 +- .../google/protobuf/wrappers.ts | 37 +- .../import_dir/thing.ts | 4 +- .../simple-unrecognized-enum/simple.ts | 238 +++++++---- .../simple/google/protobuf/timestamp.ts | 8 +- .../simple/google/protobuf/wrappers.ts | 37 +- integration/simple/google/type/date.ts | 12 +- integration/simple/import_dir/thing.ts | 4 +- integration/simple/simple.ts | 388 ++++++++++++------ .../static-only-type-registry/bar/bar.ts | 4 +- integration/static-only-type-registry/foo.ts | 12 +- .../google/protobuf/struct.ts | 48 ++- .../google/protobuf/timestamp.ts | 8 +- integration/static-only/bar/bar.ts | 4 +- integration/static-only/foo.ts | 12 +- .../static-only/google/protobuf/struct.ts | 48 ++- .../static-only/google/protobuf/timestamp.ts | 8 +- integration/struct/google/protobuf/struct.ts | 48 ++- integration/struct/struct.ts | 4 +- integration/type-annotations/bar/bar.ts | 4 +- integration/type-annotations/foo.ts | 12 +- .../google/protobuf/struct.ts | 48 ++- .../google/protobuf/timestamp.ts | 8 +- integration/type-registry/bar/bar.ts | 4 +- integration/type-registry/foo.ts | 12 +- .../type-registry/google/protobuf/struct.ts | 48 ++- .../google/protobuf/timestamp.ts | 8 +- integration/types-with-underscores/file.ts | 4 +- .../google/protobuf/timestamp.ts | 8 +- integration/use-date-false/metadata.ts | 4 +- .../google/protobuf/timestamp.ts | 8 +- .../use-date-string/use-date-string.ts | 35 +- .../google/protobuf/timestamp.ts | 8 +- integration/use-date-true/use-date-true.ts | 35 +- integration/use-exact-types-false/foo.ts | 8 +- .../use-map-type/google/protobuf/struct.ts | 41 +- .../use-map-type/google/protobuf/timestamp.ts | 8 +- integration/use-map-type/use-map-type.ts | 69 ++-- .../google/protobuf/struct.ts | 48 ++- integration/use-numeric-enum-json/simple.ts | 35 +- .../objectid/objectid.ts | 4 +- .../use-objectid-true.ts | 35 +- .../google/protobuf/timestamp.ts | 8 +- integration/use-optionals-all/test.ts | 112 ++--- .../use-optionals-no-undefined/test.ts | 108 +++-- .../google/protobuf/struct.ts | 48 ++- .../use-readonly-types/use-readonly-types.ts | 53 ++- integration/value/google/protobuf/struct.ts | 48 ++- integration/value/google/protobuf/wrappers.ts | 37 +- integration/value/value.ts | 20 +- integration/vector-tile/vector_tile.ts | 72 ++-- .../google/protobuf/timestamp.ts | 8 +- .../google/protobuf/wrappers.ts | 37 +- src/main.ts | 40 +- 150 files changed, 3437 insertions(+), 1643 deletions(-) diff --git a/README.markdown b/README.markdown index c61c65b67..9a875797a 100644 --- a/README.markdown +++ b/README.markdown @@ -728,26 +728,15 @@ Foo.fromJSON({ bar: "" }); // => { bar: '' } Foo.fromJSON({ bar: "baz" }); // => { bar: 'baz' } ``` -When writing JSON, `ts-proto` currently does **not** normalize message when converting to JSON, other than omitting unset fields, but it may do so in the future. +When writing JSON, `ts-proto` normalizes messages by omitting unset fields and fields set to their default values. ```typescript -// Current ts-proto behavior -Foo.toJSON({}); // => { } -Foo.toJSON({ bar: undefined }); // => { } -Foo.toJSON({ bar: "" }); // => { bar: '' } - note: this is the default value, but it's not omitted -Foo.toJSON({ bar: "baz" }); // => { bar: 'baz' } -``` - -```typescript -// Possible future behavior, where ts-proto would normalize message Foo.toJSON({}); // => { } Foo.toJSON({ bar: undefined }); // => { } Foo.toJSON({ bar: "" }); // => { } - note: omitting the default value, as expected Foo.toJSON({ bar: "baz" }); // => { bar: 'baz' } ``` -- Please open an issue if you need this behavior. - # Well-Known Types Protobuf comes with several predefined message definitions, called "[Well-Known Types](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf)". diff --git a/integration/angular/simple-message.ts b/integration/angular/simple-message.ts index 2d62bb4e1..bb230e72b 100644 --- a/integration/angular/simple-message.ts +++ b/integration/angular/simple-message.ts @@ -48,7 +48,9 @@ export const SimpleMessage = { toJSON(message: SimpleMessage): unknown { const obj: any = {}; - message.numberField !== undefined && (obj.numberField = Math.round(message.numberField)); + if (message.numberField !== 0) { + obj.numberField = Math.round(message.numberField); + } return obj; }, diff --git a/integration/async-iterable-services-abort-signal/simple.ts b/integration/async-iterable-services-abort-signal/simple.ts index 5431d0dd3..bcfc7f913 100644 --- a/integration/async-iterable-services-abort-signal/simple.ts +++ b/integration/async-iterable-services-abort-signal/simple.ts @@ -81,7 +81,9 @@ export const EchoMsg = { toJSON(message: EchoMsg): unknown { const obj: any = {}; - message.body !== undefined && (obj.body = message.body); + if (message.body !== "") { + obj.body = message.body; + } return obj; }, diff --git a/integration/async-iterable-services/simple.ts b/integration/async-iterable-services/simple.ts index 816ccf49e..a06a74093 100644 --- a/integration/async-iterable-services/simple.ts +++ b/integration/async-iterable-services/simple.ts @@ -81,7 +81,9 @@ export const EchoMsg = { toJSON(message: EchoMsg): unknown { const obj: any = {}; - message.body !== undefined && (obj.body = message.body); + if (message.body !== "") { + obj.body = message.body; + } return obj; }, diff --git a/integration/avoid-import-conflicts/simple.ts b/integration/avoid-import-conflicts/simple.ts index 41ebd16ca..24fbd4a07 100644 --- a/integration/avoid-import-conflicts/simple.ts +++ b/integration/avoid-import-conflicts/simple.ts @@ -123,9 +123,12 @@ export const Simple = { toJSON(message: Simple): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.otherSimple !== undefined && - (obj.otherSimple = message.otherSimple ? Simple3.toJSON(message.otherSimple) : undefined); + if (message.name !== "") { + obj.name = message.name; + } + if (message.otherSimple !== undefined) { + obj.otherSimple = message.otherSimple ? Simple3.toJSON(message.otherSimple) : undefined; + } return obj; }, @@ -197,8 +200,12 @@ export const SimpleEnums = { toJSON(message: SimpleEnums): unknown { const obj: any = {}; - message.localEnum !== undefined && (obj.localEnum = simpleEnumToJSON(message.localEnum)); - message.importEnum !== undefined && (obj.importEnum = simpleEnumToJSON5(message.importEnum)); + if (message.localEnum !== 0) { + obj.localEnum = simpleEnumToJSON(message.localEnum); + } + if (message.importEnum !== 0) { + obj.importEnum = simpleEnumToJSON5(message.importEnum); + } return obj; }, @@ -255,7 +262,9 @@ export const FooServiceCreateRequest = { toJSON(message: FooServiceCreateRequest): unknown { const obj: any = {}; - message.kind !== undefined && (obj.kind = fooServiceToJSON(message.kind)); + if (message.kind !== 0) { + obj.kind = fooServiceToJSON(message.kind); + } return obj; }, @@ -311,7 +320,9 @@ export const FooServiceCreateResponse = { toJSON(message: FooServiceCreateResponse): unknown { const obj: any = {}; - message.kind !== undefined && (obj.kind = fooServiceToJSON(message.kind)); + if (message.kind !== 0) { + obj.kind = fooServiceToJSON(message.kind); + } return obj; }, diff --git a/integration/avoid-import-conflicts/simple2.ts b/integration/avoid-import-conflicts/simple2.ts index 2ce8fd4f7..111f0665e 100644 --- a/integration/avoid-import-conflicts/simple2.ts +++ b/integration/avoid-import-conflicts/simple2.ts @@ -137,8 +137,12 @@ export const Simple = { toJSON(message: Simple): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = Math.round(message.age)); + if (message.name !== "") { + obj.name = message.name; + } + if (message.age !== 0) { + obj.age = Math.round(message.age); + } return obj; }, diff --git a/integration/barrel-imports/bar.ts b/integration/barrel-imports/bar.ts index 550b09b2c..7ea77bd2a 100644 --- a/integration/barrel-imports/bar.ts +++ b/integration/barrel-imports/bar.ts @@ -57,8 +57,12 @@ export const Bar = { toJSON(message: Bar): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = Math.round(message.age)); + if (message.name !== "") { + obj.name = message.name; + } + if (message.age !== 0) { + obj.age = Math.round(message.age); + } return obj; }, diff --git a/integration/barrel-imports/foo.ts b/integration/barrel-imports/foo.ts index f7f5d0729..0fdbf4aaf 100644 --- a/integration/barrel-imports/foo.ts +++ b/integration/barrel-imports/foo.ts @@ -61,8 +61,12 @@ export const Foo = { toJSON(message: Foo): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.bar !== undefined && (obj.bar = message.bar ? Bar.toJSON(message.bar) : undefined); + if (message.name !== "") { + obj.name = message.name; + } + if (message.bar !== undefined) { + obj.bar = message.bar ? Bar.toJSON(message.bar) : undefined; + } return obj; }, diff --git a/integration/batching-with-context-esModuleInterop/batching.ts b/integration/batching-with-context-esModuleInterop/batching.ts index eb760ceb5..58c1c8ed5 100644 --- a/integration/batching-with-context-esModuleInterop/batching.ts +++ b/integration/batching-with-context-esModuleInterop/batching.ts @@ -87,10 +87,8 @@ export const BatchQueryRequest = { toJSON(message: BatchQueryRequest): unknown { const obj: any = {}; - if (message.ids) { + if (message.ids?.length) { obj.ids = message.ids.map((e) => e); - } else { - obj.ids = []; } return obj; }, @@ -147,10 +145,8 @@ export const BatchQueryResponse = { toJSON(message: BatchQueryResponse): unknown { const obj: any = {}; - if (message.entities) { + if (message.entities?.length) { obj.entities = message.entities.map((e) => e ? Entity.toJSON(e) : undefined); - } else { - obj.entities = []; } return obj; }, @@ -207,10 +203,8 @@ export const BatchMapQueryRequest = { toJSON(message: BatchMapQueryRequest): unknown { const obj: any = {}; - if (message.ids) { + if (message.ids?.length) { obj.ids = message.ids.map((e) => e); - } else { - obj.ids = []; } return obj; }, @@ -277,11 +271,14 @@ export const BatchMapQueryResponse = { toJSON(message: BatchMapQueryResponse): unknown { const obj: any = {}; - obj.entities = {}; if (message.entities) { - Object.entries(message.entities).forEach(([k, v]) => { - obj.entities[k] = Entity.toJSON(v); - }); + const entries = Object.entries(message.entities); + if (entries.length > 0) { + obj.entities = {}; + entries.forEach(([k, v]) => { + obj.entities[k] = Entity.toJSON(v); + }); + } } return obj; }, @@ -356,8 +353,12 @@ export const BatchMapQueryResponse_EntitiesEntry = { toJSON(message: BatchMapQueryResponse_EntitiesEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -420,7 +421,9 @@ export const GetOnlyMethodRequest = { toJSON(message: GetOnlyMethodRequest): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); + if (message.id !== "") { + obj.id = message.id; + } return obj; }, @@ -476,7 +479,9 @@ export const GetOnlyMethodResponse = { toJSON(message: GetOnlyMethodResponse): unknown { const obj: any = {}; - message.entity !== undefined && (obj.entity = message.entity ? Entity.toJSON(message.entity) : undefined); + if (message.entity !== undefined) { + obj.entity = message.entity ? Entity.toJSON(message.entity) : undefined; + } return obj; }, @@ -534,7 +539,9 @@ export const WriteMethodRequest = { toJSON(message: WriteMethodRequest): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); + if (message.id !== "") { + obj.id = message.id; + } return obj; }, @@ -644,8 +651,12 @@ export const Entity = { toJSON(message: Entity): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); - message.name !== undefined && (obj.name = message.name); + if (message.id !== "") { + obj.id = message.id; + } + if (message.name !== "") { + obj.name = message.name; + } return obj; }, diff --git a/integration/batching-with-context/batching.ts b/integration/batching-with-context/batching.ts index 319eee661..de86f5163 100644 --- a/integration/batching-with-context/batching.ts +++ b/integration/batching-with-context/batching.ts @@ -87,10 +87,8 @@ export const BatchQueryRequest = { toJSON(message: BatchQueryRequest): unknown { const obj: any = {}; - if (message.ids) { + if (message.ids?.length) { obj.ids = message.ids.map((e) => e); - } else { - obj.ids = []; } return obj; }, @@ -147,10 +145,8 @@ export const BatchQueryResponse = { toJSON(message: BatchQueryResponse): unknown { const obj: any = {}; - if (message.entities) { + if (message.entities?.length) { obj.entities = message.entities.map((e) => e ? Entity.toJSON(e) : undefined); - } else { - obj.entities = []; } return obj; }, @@ -207,10 +203,8 @@ export const BatchMapQueryRequest = { toJSON(message: BatchMapQueryRequest): unknown { const obj: any = {}; - if (message.ids) { + if (message.ids?.length) { obj.ids = message.ids.map((e) => e); - } else { - obj.ids = []; } return obj; }, @@ -277,11 +271,14 @@ export const BatchMapQueryResponse = { toJSON(message: BatchMapQueryResponse): unknown { const obj: any = {}; - obj.entities = {}; if (message.entities) { - Object.entries(message.entities).forEach(([k, v]) => { - obj.entities[k] = Entity.toJSON(v); - }); + const entries = Object.entries(message.entities); + if (entries.length > 0) { + obj.entities = {}; + entries.forEach(([k, v]) => { + obj.entities[k] = Entity.toJSON(v); + }); + } } return obj; }, @@ -356,8 +353,12 @@ export const BatchMapQueryResponse_EntitiesEntry = { toJSON(message: BatchMapQueryResponse_EntitiesEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -420,7 +421,9 @@ export const GetOnlyMethodRequest = { toJSON(message: GetOnlyMethodRequest): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); + if (message.id !== "") { + obj.id = message.id; + } return obj; }, @@ -476,7 +479,9 @@ export const GetOnlyMethodResponse = { toJSON(message: GetOnlyMethodResponse): unknown { const obj: any = {}; - message.entity !== undefined && (obj.entity = message.entity ? Entity.toJSON(message.entity) : undefined); + if (message.entity !== undefined) { + obj.entity = message.entity ? Entity.toJSON(message.entity) : undefined; + } return obj; }, @@ -534,7 +539,9 @@ export const WriteMethodRequest = { toJSON(message: WriteMethodRequest): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); + if (message.id !== "") { + obj.id = message.id; + } return obj; }, @@ -644,8 +651,12 @@ export const Entity = { toJSON(message: Entity): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); - message.name !== undefined && (obj.name = message.name); + if (message.id !== "") { + obj.id = message.id; + } + if (message.name !== "") { + obj.name = message.name; + } return obj; }, diff --git a/integration/batching/batching.ts b/integration/batching/batching.ts index 8af8cef8b..225c0dd7a 100644 --- a/integration/batching/batching.ts +++ b/integration/batching/batching.ts @@ -85,10 +85,8 @@ export const BatchQueryRequest = { toJSON(message: BatchQueryRequest): unknown { const obj: any = {}; - if (message.ids) { + if (message.ids?.length) { obj.ids = message.ids.map((e) => e); - } else { - obj.ids = []; } return obj; }, @@ -145,10 +143,8 @@ export const BatchQueryResponse = { toJSON(message: BatchQueryResponse): unknown { const obj: any = {}; - if (message.entities) { + if (message.entities?.length) { obj.entities = message.entities.map((e) => e ? Entity.toJSON(e) : undefined); - } else { - obj.entities = []; } return obj; }, @@ -205,10 +201,8 @@ export const BatchMapQueryRequest = { toJSON(message: BatchMapQueryRequest): unknown { const obj: any = {}; - if (message.ids) { + if (message.ids?.length) { obj.ids = message.ids.map((e) => e); - } else { - obj.ids = []; } return obj; }, @@ -275,11 +269,14 @@ export const BatchMapQueryResponse = { toJSON(message: BatchMapQueryResponse): unknown { const obj: any = {}; - obj.entities = {}; if (message.entities) { - Object.entries(message.entities).forEach(([k, v]) => { - obj.entities[k] = Entity.toJSON(v); - }); + const entries = Object.entries(message.entities); + if (entries.length > 0) { + obj.entities = {}; + entries.forEach(([k, v]) => { + obj.entities[k] = Entity.toJSON(v); + }); + } } return obj; }, @@ -354,8 +351,12 @@ export const BatchMapQueryResponse_EntitiesEntry = { toJSON(message: BatchMapQueryResponse_EntitiesEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -418,7 +419,9 @@ export const GetOnlyMethodRequest = { toJSON(message: GetOnlyMethodRequest): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); + if (message.id !== "") { + obj.id = message.id; + } return obj; }, @@ -474,7 +477,9 @@ export const GetOnlyMethodResponse = { toJSON(message: GetOnlyMethodResponse): unknown { const obj: any = {}; - message.entity !== undefined && (obj.entity = message.entity ? Entity.toJSON(message.entity) : undefined); + if (message.entity !== undefined) { + obj.entity = message.entity ? Entity.toJSON(message.entity) : undefined; + } return obj; }, @@ -532,7 +537,9 @@ export const WriteMethodRequest = { toJSON(message: WriteMethodRequest): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); + if (message.id !== "") { + obj.id = message.id; + } return obj; }, @@ -642,8 +649,12 @@ export const Entity = { toJSON(message: Entity): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); - message.name !== undefined && (obj.name = message.name); + if (message.id !== "") { + obj.id = message.id; + } + if (message.name !== "") { + obj.name = message.name; + } return obj; }, diff --git a/integration/bytes-as-base64/message.ts b/integration/bytes-as-base64/message.ts index 50a0b580b..692beeafc 100644 --- a/integration/bytes-as-base64/message.ts +++ b/integration/bytes-as-base64/message.ts @@ -17,8 +17,9 @@ export const Message = { toJSON(message: Message): unknown { const obj: any = {}; - message.data !== undefined && - (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array(0))); + if (message.data.length !== 0) { + obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array(0)); + } return obj; }, diff --git a/integration/bytes-node/google/protobuf/wrappers.ts b/integration/bytes-node/google/protobuf/wrappers.ts index 6e5cfb4bc..cd546a6d2 100644 --- a/integration/bytes-node/google/protobuf/wrappers.ts +++ b/integration/bytes-node/google/protobuf/wrappers.ts @@ -135,7 +135,9 @@ export const DoubleValue = { toJSON(message: DoubleValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -191,7 +193,9 @@ export const FloatValue = { toJSON(message: FloatValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -247,7 +251,9 @@ export const Int64Value = { toJSON(message: Int64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -303,7 +309,9 @@ export const UInt64Value = { toJSON(message: UInt64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -359,7 +367,9 @@ export const Int32Value = { toJSON(message: Int32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -415,7 +425,9 @@ export const UInt32Value = { toJSON(message: UInt32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -471,7 +483,9 @@ export const BoolValue = { toJSON(message: BoolValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value === true) { + obj.value = message.value; + } return obj; }, @@ -527,7 +541,9 @@ export const StringValue = { toJSON(message: StringValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -583,8 +599,9 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : Buffer.alloc(0))); + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : Buffer.alloc(0)); + } return obj; }, diff --git a/integration/bytes-node/point.ts b/integration/bytes-node/point.ts index 66421dcf0..029576f14 100644 --- a/integration/bytes-node/point.ts +++ b/integration/bytes-node/point.ts @@ -63,9 +63,12 @@ export const Point = { toJSON(message: Point): unknown { const obj: any = {}; - message.data !== undefined && - (obj.data = base64FromBytes(message.data !== undefined ? message.data : Buffer.alloc(0))); - message.dataWrapped !== undefined && (obj.dataWrapped = message.dataWrapped); + if (message.data.length !== 0) { + obj.data = base64FromBytes(message.data !== undefined ? message.data : Buffer.alloc(0)); + } + if (message.dataWrapped !== undefined) { + obj.dataWrapped = message.dataWrapped; + } return obj; }, diff --git a/integration/const-enum/const-enum.ts b/integration/const-enum/const-enum.ts index d58e53cb6..c6140f96d 100644 --- a/integration/const-enum/const-enum.ts +++ b/integration/const-enum/const-enum.ts @@ -136,12 +136,17 @@ export const DividerData = { toJSON(message: DividerData): unknown { const obj: any = {}; - message.type !== undefined && (obj.type = dividerData_DividerTypeToJSON(message.type)); - obj.typeMap = {}; + if (message.type !== DividerData_DividerType.DOUBLE) { + obj.type = dividerData_DividerTypeToJSON(message.type); + } if (message.typeMap) { - Object.entries(message.typeMap).forEach(([k, v]) => { - obj.typeMap[k] = dividerData_DividerTypeToJSON(v); - }); + const entries = Object.entries(message.typeMap); + if (entries.length > 0) { + obj.typeMap = {}; + entries.forEach(([k, v]) => { + obj.typeMap[k] = dividerData_DividerTypeToJSON(v); + }); + } } return obj; }, @@ -220,8 +225,12 @@ export const DividerData_TypeMapEntry = { toJSON(message: DividerData_TypeMapEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = dividerData_DividerTypeToJSON(message.value)); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== DividerData_DividerType.DOUBLE) { + obj.value = dividerData_DividerTypeToJSON(message.value); + } return obj; }, diff --git a/integration/enums-as-literals-with-string-enums/enums-as-literals-with-string-enums.ts b/integration/enums-as-literals-with-string-enums/enums-as-literals-with-string-enums.ts index 5c3509740..554f21662 100644 --- a/integration/enums-as-literals-with-string-enums/enums-as-literals-with-string-enums.ts +++ b/integration/enums-as-literals-with-string-enums/enums-as-literals-with-string-enums.ts @@ -111,7 +111,9 @@ export const DividerData = { toJSON(message: DividerData): unknown { const obj: any = {}; - message.type !== undefined && (obj.type = dividerData_DividerTypeToJSON(message.type)); + if (message.type !== DividerData_DividerType.DOUBLE) { + obj.type = dividerData_DividerTypeToJSON(message.type); + } return obj; }, diff --git a/integration/enums-as-literals/enums-as-literals.ts b/integration/enums-as-literals/enums-as-literals.ts index cb46d925d..93d1914a0 100644 --- a/integration/enums-as-literals/enums-as-literals.ts +++ b/integration/enums-as-literals/enums-as-literals.ts @@ -89,7 +89,9 @@ export const DividerData = { toJSON(message: DividerData): unknown { const obj: any = {}; - message.type !== undefined && (obj.type = dividerData_DividerTypeToJSON(message.type)); + if (message.type !== 0) { + obj.type = dividerData_DividerTypeToJSON(message.type); + } return obj; }, diff --git a/integration/extensions/test.ts b/integration/extensions/test.ts index 03cf234d9..02c3edceb 100644 --- a/integration/extensions/test.ts +++ b/integration/extensions/test.ts @@ -179,7 +179,9 @@ export const Extendable = { toJSON(message: Extendable): unknown { const obj: any = {}; - message.field !== undefined && (obj.field = message.field); + if (message.field !== undefined && message.field !== "") { + obj.field = message.field; + } return obj; }, @@ -287,7 +289,9 @@ export const Nested = { toJSON(message: Nested): unknown { const obj: any = {}; - message.field !== undefined && (obj.field = message.field); + if (message.field !== undefined && message.field !== "") { + obj.field = message.field; + } return obj; }, @@ -383,8 +387,12 @@ export const Group = { toJSON(message: Group): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.value !== undefined && (obj.value = message.value); + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + if (message.value !== undefined && message.value !== "") { + obj.value = message.value; + } return obj; }, diff --git a/integration/fieldmask/fieldmask.ts b/integration/fieldmask/fieldmask.ts index ac1380e1b..8b908180b 100644 --- a/integration/fieldmask/fieldmask.ts +++ b/integration/fieldmask/fieldmask.ts @@ -49,7 +49,9 @@ export const FieldMaskMessage = { toJSON(message: FieldMaskMessage): unknown { const obj: any = {}; - message.fieldMask !== undefined && (obj.fieldMask = FieldMask.toJSON(FieldMask.wrap(message.fieldMask))); + if (message.fieldMask !== undefined) { + obj.fieldMask = FieldMask.toJSON(FieldMask.wrap(message.fieldMask)); + } return obj; }, diff --git a/integration/file-suffix/child.pb.ts b/integration/file-suffix/child.pb.ts index cf610dff6..8c91027c8 100644 --- a/integration/file-suffix/child.pb.ts +++ b/integration/file-suffix/child.pb.ts @@ -81,7 +81,9 @@ export const Child = { toJSON(message: Child): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); + if (message.name !== "") { + obj.name = message.name; + } return obj; }, diff --git a/integration/file-suffix/google/protobuf/timestamp.pb.ts b/integration/file-suffix/google/protobuf/timestamp.pb.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/file-suffix/google/protobuf/timestamp.pb.ts +++ b/integration/file-suffix/google/protobuf/timestamp.pb.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/file-suffix/parent.pb.ts b/integration/file-suffix/parent.pb.ts index 90c62ac49..ed82c77d0 100644 --- a/integration/file-suffix/parent.pb.ts +++ b/integration/file-suffix/parent.pb.ts @@ -76,9 +76,15 @@ export const Parent = { toJSON(message: Parent): unknown { const obj: any = {}; - message.child !== undefined && (obj.child = message.child ? Child.toJSON(message.child) : undefined); - message.childEnum !== undefined && (obj.childEnum = childEnumToJSON(message.childEnum)); - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); + if (message.child !== undefined) { + obj.child = message.child ? Child.toJSON(message.child) : undefined; + } + if (message.childEnum !== 0) { + obj.childEnum = childEnumToJSON(message.childEnum); + } + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } return obj; }, diff --git a/integration/from-partial-no-initialize/test.ts b/integration/from-partial-no-initialize/test.ts index 6407b23da..b5fc7b99e 100644 --- a/integration/from-partial-no-initialize/test.ts +++ b/integration/from-partial-no-initialize/test.ts @@ -63,7 +63,9 @@ export const TPartialMessage = { toJSON(message: TPartialMessage): unknown { const obj: any = {}; - message.field !== undefined && (obj.field = message.field); + if (message.field !== undefined && message.field !== "") { + obj.field = message.field; + } return obj; }, @@ -234,30 +236,32 @@ export const TPartial = { toJSON(message: TPartial): unknown { const obj: any = {}; - message.number !== undefined && (obj.number = Math.round(message.number)); - message.string !== undefined && (obj.string = message.string); - obj.map = {}; + if (message.number !== undefined && message.number !== 0) { + obj.number = Math.round(message.number); + } + if (message.string !== undefined && message.string !== "") { + obj.string = message.string; + } if (message.map) { - Object.entries(message.map).forEach(([k, v]) => { - obj.map[k] = v; - }); + const entries = Object.entries(message.map); + if (entries.length > 0) { + obj.map = {}; + entries.forEach(([k, v]) => { + obj.map[k] = v; + }); + } } - message.message !== undefined && - (obj.message = message.message ? TPartialMessage.toJSON(message.message) : undefined); - if (message.repeatedMessage) { + if (message.message !== undefined) { + obj.message = message.message ? TPartialMessage.toJSON(message.message) : undefined; + } + if (message.repeatedMessage?.length) { obj.repeatedMessage = message.repeatedMessage.map((e) => e ? TPartialMessage.toJSON(e) : undefined); - } else { - obj.repeatedMessage = []; } - if (message.repeatedString) { + if (message.repeatedString?.length) { obj.repeatedString = message.repeatedString.map((e) => e); - } else { - obj.repeatedString = []; } - if (message.repeatedNumber) { + if (message.repeatedNumber?.length) { obj.repeatedNumber = message.repeatedNumber.map((e) => Math.round(e)); - } else { - obj.repeatedNumber = []; } return obj; }, @@ -339,8 +343,12 @@ export const TPartial_MapEntry = { toJSON(message: TPartial_MapEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== "") { + obj.value = message.value; + } return obj; }, diff --git a/integration/generic-metadata/hero.ts b/integration/generic-metadata/hero.ts index c2eb9fb9a..de969f6f1 100644 --- a/integration/generic-metadata/hero.ts +++ b/integration/generic-metadata/hero.ts @@ -65,7 +65,9 @@ export const HeroById = { toJSON(message: HeroById): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); + if (message.id !== 0) { + obj.id = Math.round(message.id); + } return obj; }, @@ -121,7 +123,9 @@ export const VillainById = { toJSON(message: VillainById): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); + if (message.id !== 0) { + obj.id = Math.round(message.id); + } return obj; }, @@ -187,8 +191,12 @@ export const Hero = { toJSON(message: Hero): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); - message.name !== undefined && (obj.name = message.name); + if (message.id !== 0) { + obj.id = Math.round(message.id); + } + if (message.name !== "") { + obj.name = message.name; + } return obj; }, @@ -255,8 +263,12 @@ export const Villain = { toJSON(message: Villain): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); - message.name !== undefined && (obj.name = message.name); + if (message.id !== 0) { + obj.id = Math.round(message.id); + } + if (message.name !== "") { + obj.name = message.name; + } return obj; }, diff --git a/integration/generic-service-definitions-and-services/simple.ts b/integration/generic-service-definitions-and-services/simple.ts index 99c36bb5c..09d413f92 100644 --- a/integration/generic-service-definitions-and-services/simple.ts +++ b/integration/generic-service-definitions-and-services/simple.ts @@ -48,7 +48,9 @@ export const TestMessage = { toJSON(message: TestMessage): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, diff --git a/integration/generic-service-definitions/simple.ts b/integration/generic-service-definitions/simple.ts index 99c36bb5c..09d413f92 100644 --- a/integration/generic-service-definitions/simple.ts +++ b/integration/generic-service-definitions/simple.ts @@ -48,7 +48,9 @@ export const TestMessage = { toJSON(message: TestMessage): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, diff --git a/integration/global-this/global-this.ts b/integration/global-this/global-this.ts index 7a2a7f867..216089c26 100644 --- a/integration/global-this/global-this.ts +++ b/integration/global-this/global-this.ts @@ -52,7 +52,9 @@ export const Object = { toJSON(message: Object): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); + if (message.name !== "") { + obj.name = message.name; + } return obj; }, @@ -108,7 +110,9 @@ export const Error = { toJSON(message: Error): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); + if (message.name !== "") { + obj.name = message.name; + } return obj; }, diff --git a/integration/groups/test.ts b/integration/groups/test.ts index 118998c2c..dc842e9af 100644 --- a/integration/groups/test.ts +++ b/integration/groups/test.ts @@ -143,10 +143,15 @@ export const GroupsOptionalTest = { toJSON(message: GroupsOptionalTest): unknown { const obj: any = {}; - message.int1 !== undefined && (obj.int1 = Math.round(message.int1)); - message.group !== undefined && - (obj.group = message.group ? GroupsOptionalTest_Group.toJSON(message.group) : undefined); - message.int3 !== undefined && (obj.int3 = Math.round(message.int3)); + if (message.int1 !== undefined && message.int1 !== 0) { + obj.int1 = Math.round(message.int1); + } + if (message.group !== undefined) { + obj.group = message.group ? GroupsOptionalTest_Group.toJSON(message.group) : undefined; + } + if (message.int3 !== undefined && message.int3 !== 0) { + obj.int3 = Math.round(message.int3); + } return obj; }, @@ -246,8 +251,12 @@ export const GroupsOptionalTest_Group = { toJSON(message: GroupsOptionalTest_Group): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== undefined && message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined && message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -402,20 +411,14 @@ export const GroupsRepeatedTest = { toJSON(message: GroupsRepeatedTest): unknown { const obj: any = {}; - if (message.int1) { + if (message.int1?.length) { obj.int1 = message.int1.map((e) => Math.round(e)); - } else { - obj.int1 = []; } - if (message.group) { + if (message.group?.length) { obj.group = message.group.map((e) => e ? GroupsRepeatedTest_Group.toJSON(e) : undefined); - } else { - obj.group = []; } - if (message.int3) { + if (message.int3?.length) { obj.int3 = message.int3.map((e) => Math.round(e)); - } else { - obj.int3 = []; } return obj; }, @@ -524,15 +527,11 @@ export const GroupsRepeatedTest_Group = { toJSON(message: GroupsRepeatedTest_Group): unknown { const obj: any = {}; - if (message.key) { + if (message.key?.length) { obj.key = message.key.map((e) => e); - } else { - obj.key = []; } - if (message.value) { + if (message.value?.length) { obj.value = message.value.map((e) => e); - } else { - obj.value = []; } return obj; }, @@ -688,20 +687,14 @@ export const GroupsNestedTest = { toJSON(message: GroupsNestedTest): unknown { const obj: any = {}; - if (message.int1) { + if (message.int1?.length) { obj.int1 = message.int1.map((e) => Math.round(e)); - } else { - obj.int1 = []; } - if (message.group) { + if (message.group?.length) { obj.group = message.group.map((e) => e ? GroupsNestedTest_Group.toJSON(e) : undefined); - } else { - obj.group = []; } - if (message.int3) { + if (message.int3?.length) { obj.int3 = message.int3.map((e) => Math.round(e)); - } else { - obj.int3 = []; } return obj; }, @@ -796,10 +789,8 @@ export const GroupsNestedTest_Group = { toJSON(message: GroupsNestedTest_Group): unknown { const obj: any = {}; - if (message.nested) { + if (message.nested?.length) { obj.nested = message.nested.map((e) => e ? GroupsNestedTest_Group_Nested.toJSON(e) : undefined); - } else { - obj.nested = []; } return obj; }, @@ -892,10 +883,8 @@ export const GroupsNestedTest_Group_Nested = { toJSON(message: GroupsNestedTest_Group_Nested): unknown { const obj: any = {}; - if (message.nested2) { + if (message.nested2?.length) { obj.nested2 = message.nested2.map((e) => e ? GroupsNestedTest_Group_Nested_Nested2.toJSON(e) : undefined); - } else { - obj.nested2 = []; } return obj; }, @@ -981,7 +970,9 @@ export const GroupsNestedTest_Group_Nested_Nested2 = { toJSON(message: GroupsNestedTest_Group_Nested_Nested2): unknown { const obj: any = {}; - message.string1 !== undefined && (obj.string1 = message.string1); + if (message.string1 !== undefined && message.string1 !== "") { + obj.string1 = message.string1; + } return obj; }, diff --git a/integration/grpc-js-use-date-false/google/protobuf/timestamp.ts b/integration/grpc-js-use-date-false/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/grpc-js-use-date-false/google/protobuf/timestamp.ts +++ b/integration/grpc-js-use-date-false/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/grpc-js-use-date-false/grpc-js-use-date-false.ts b/integration/grpc-js-use-date-false/grpc-js-use-date-false.ts index d20e97492..511846364 100644 --- a/integration/grpc-js-use-date-false/grpc-js-use-date-false.ts +++ b/integration/grpc-js-use-date-false/grpc-js-use-date-false.ts @@ -61,7 +61,9 @@ export const TimestampMessage = { toJSON(message: TimestampMessage): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = fromTimestamp(message.timestamp).toISOString()); + if (message.timestamp !== undefined) { + obj.timestamp = fromTimestamp(message.timestamp).toISOString(); + } return obj; }, diff --git a/integration/grpc-js-use-date-string/google/protobuf/timestamp.ts b/integration/grpc-js-use-date-string/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/grpc-js-use-date-string/google/protobuf/timestamp.ts +++ b/integration/grpc-js-use-date-string/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/grpc-js-use-date-string/grpc-js-use-date-string.ts b/integration/grpc-js-use-date-string/grpc-js-use-date-string.ts index dcea4e710..021ca8402 100644 --- a/integration/grpc-js-use-date-string/grpc-js-use-date-string.ts +++ b/integration/grpc-js-use-date-string/grpc-js-use-date-string.ts @@ -61,7 +61,9 @@ export const TimestampMessage = { toJSON(message: TimestampMessage): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp); + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp; + } return obj; }, diff --git a/integration/grpc-js-use-date-true/google/protobuf/timestamp.ts b/integration/grpc-js-use-date-true/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/grpc-js-use-date-true/google/protobuf/timestamp.ts +++ b/integration/grpc-js-use-date-true/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/grpc-js-use-date-true/grpc-js-use-date-true.ts b/integration/grpc-js-use-date-true/grpc-js-use-date-true.ts index 75362aa45..606cf4504 100644 --- a/integration/grpc-js-use-date-true/grpc-js-use-date-true.ts +++ b/integration/grpc-js-use-date-true/grpc-js-use-date-true.ts @@ -61,7 +61,9 @@ export const TimestampMessage = { toJSON(message: TimestampMessage): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } return obj; }, diff --git a/integration/grpc-js/google/protobuf/struct.ts b/integration/grpc-js/google/protobuf/struct.ts index 70c5714fd..f2b9f1bb6 100644 --- a/integration/grpc-js/google/protobuf/struct.ts +++ b/integration/grpc-js/google/protobuf/struct.ts @@ -153,11 +153,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -252,8 +255,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -374,13 +381,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.nullValue !== undefined && - (obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined); - message.numberValue !== undefined && (obj.numberValue = message.numberValue); - message.stringValue !== undefined && (obj.stringValue = message.stringValue); - message.boolValue !== undefined && (obj.boolValue = message.boolValue); - message.structValue !== undefined && (obj.structValue = message.structValue); - message.listValue !== undefined && (obj.listValue = message.listValue); + if (message.nullValue !== undefined) { + obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + } + if (message.numberValue !== undefined) { + obj.numberValue = message.numberValue; + } + if (message.stringValue !== undefined) { + obj.stringValue = message.stringValue; + } + if (message.boolValue !== undefined) { + obj.boolValue = message.boolValue; + } + if (message.structValue !== undefined) { + obj.structValue = message.structValue; + } + if (message.listValue !== undefined) { + obj.listValue = message.listValue; + } return obj; }, @@ -478,10 +496,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/grpc-js/google/protobuf/timestamp.ts b/integration/grpc-js/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/grpc-js/google/protobuf/timestamp.ts +++ b/integration/grpc-js/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/grpc-js/google/protobuf/wrappers.ts b/integration/grpc-js/google/protobuf/wrappers.ts index 356be2144..0f8f714df 100644 --- a/integration/grpc-js/google/protobuf/wrappers.ts +++ b/integration/grpc-js/google/protobuf/wrappers.ts @@ -135,7 +135,9 @@ export const DoubleValue = { toJSON(message: DoubleValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -191,7 +193,9 @@ export const FloatValue = { toJSON(message: FloatValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -247,7 +251,9 @@ export const Int64Value = { toJSON(message: Int64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -303,7 +309,9 @@ export const UInt64Value = { toJSON(message: UInt64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -359,7 +367,9 @@ export const Int32Value = { toJSON(message: Int32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -415,7 +425,9 @@ export const UInt32Value = { toJSON(message: UInt32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -471,7 +483,9 @@ export const BoolValue = { toJSON(message: BoolValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value === true) { + obj.value = message.value; + } return obj; }, @@ -527,7 +541,9 @@ export const StringValue = { toJSON(message: StringValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -583,8 +599,9 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, diff --git a/integration/grpc-js/simple.ts b/integration/grpc-js/simple.ts index 452d05ced..a552d77d9 100644 --- a/integration/grpc-js/simple.ts +++ b/integration/grpc-js/simple.ts @@ -80,7 +80,9 @@ export const TestMessage = { toJSON(message: TestMessage): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } return obj; }, diff --git a/integration/grpc-web-abort-signal/example.ts b/integration/grpc-web-abort-signal/example.ts index 66bdb755f..9ac07e9ee 100644 --- a/integration/grpc-web-abort-signal/example.ts +++ b/integration/grpc-web-abort-signal/example.ts @@ -149,8 +149,12 @@ export const DashFlash = { toJSON(message: DashFlash): unknown { const obj: any = {}; - message.msg !== undefined && (obj.msg = message.msg); - message.type !== undefined && (obj.type = dashFlash_TypeToJSON(message.type)); + if (message.msg !== "") { + obj.msg = message.msg; + } + if (message.type !== 0) { + obj.type = dashFlash_TypeToJSON(message.type); + } return obj; }, @@ -231,13 +235,14 @@ export const DashUserSettingsState = { toJSON(message: DashUserSettingsState): unknown { const obj: any = {}; - message.email !== undefined && (obj.email = message.email); - message.urls !== undefined && - (obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined); - if (message.flashes) { + if (message.email !== "") { + obj.email = message.email; + } + if (message.urls !== undefined) { + obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined; + } + if (message.flashes?.length) { obj.flashes = message.flashes.map((e) => e ? DashFlash.toJSON(e) : undefined); - } else { - obj.flashes = []; } return obj; }, @@ -311,8 +316,12 @@ export const DashUserSettingsState_URLs = { toJSON(message: DashUserSettingsState_URLs): unknown { const obj: any = {}; - message.connectGoogle !== undefined && (obj.connectGoogle = message.connectGoogle); - message.connectGithub !== undefined && (obj.connectGithub = message.connectGithub); + if (message.connectGoogle !== "") { + obj.connectGoogle = message.connectGoogle; + } + if (message.connectGithub !== "") { + obj.connectGithub = message.connectGithub; + } return obj; }, @@ -404,10 +413,18 @@ export const DashCred = { toJSON(message: DashCred): unknown { const obj: any = {}; - message.description !== undefined && (obj.description = message.description); - message.metadata !== undefined && (obj.metadata = message.metadata); - message.token !== undefined && (obj.token = message.token); - message.id !== undefined && (obj.id = message.id); + if (message.description !== "") { + obj.description = message.description; + } + if (message.metadata !== "") { + obj.metadata = message.metadata; + } + if (message.token !== "") { + obj.token = message.token; + } + if (message.id !== "") { + obj.id = message.id; + } return obj; }, @@ -479,8 +496,12 @@ export const DashAPICredsCreateReq = { toJSON(message: DashAPICredsCreateReq): unknown { const obj: any = {}; - message.description !== undefined && (obj.description = message.description); - message.metadata !== undefined && (obj.metadata = message.metadata); + if (message.description !== "") { + obj.description = message.description; + } + if (message.metadata !== "") { + obj.metadata = message.metadata; + } return obj; }, @@ -572,10 +593,18 @@ export const DashAPICredsUpdateReq = { toJSON(message: DashAPICredsUpdateReq): unknown { const obj: any = {}; - message.credSid !== undefined && (obj.credSid = message.credSid); - message.description !== undefined && (obj.description = message.description); - message.metadata !== undefined && (obj.metadata = message.metadata); - message.id !== undefined && (obj.id = message.id); + if (message.credSid !== "") { + obj.credSid = message.credSid; + } + if (message.description !== "") { + obj.description = message.description; + } + if (message.metadata !== "") { + obj.metadata = message.metadata; + } + if (message.id !== "") { + obj.id = message.id; + } return obj; }, @@ -647,8 +676,12 @@ export const DashAPICredsDeleteReq = { toJSON(message: DashAPICredsDeleteReq): unknown { const obj: any = {}; - message.credSid !== undefined && (obj.credSid = message.credSid); - message.id !== undefined && (obj.id = message.id); + if (message.credSid !== "") { + obj.credSid = message.credSid; + } + if (message.id !== "") { + obj.id = message.id; + } return obj; }, diff --git a/integration/grpc-web-go-server/example.ts b/integration/grpc-web-go-server/example.ts index 159bfdae1..f6eccc262 100644 --- a/integration/grpc-web-go-server/example.ts +++ b/integration/grpc-web-go-server/example.ts @@ -147,8 +147,12 @@ export const DashFlash = { toJSON(message: DashFlash): unknown { const obj: any = {}; - message.msg !== undefined && (obj.msg = message.msg); - message.type !== undefined && (obj.type = dashFlash_TypeToJSON(message.type)); + if (message.msg !== "") { + obj.msg = message.msg; + } + if (message.type !== 0) { + obj.type = dashFlash_TypeToJSON(message.type); + } return obj; }, @@ -229,13 +233,14 @@ export const DashUserSettingsState = { toJSON(message: DashUserSettingsState): unknown { const obj: any = {}; - message.email !== undefined && (obj.email = message.email); - message.urls !== undefined && - (obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined); - if (message.flashes) { + if (message.email !== "") { + obj.email = message.email; + } + if (message.urls !== undefined) { + obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined; + } + if (message.flashes?.length) { obj.flashes = message.flashes.map((e) => e ? DashFlash.toJSON(e) : undefined); - } else { - obj.flashes = []; } return obj; }, @@ -309,8 +314,12 @@ export const DashUserSettingsState_URLs = { toJSON(message: DashUserSettingsState_URLs): unknown { const obj: any = {}; - message.connectGoogle !== undefined && (obj.connectGoogle = message.connectGoogle); - message.connectGithub !== undefined && (obj.connectGithub = message.connectGithub); + if (message.connectGoogle !== "") { + obj.connectGoogle = message.connectGoogle; + } + if (message.connectGithub !== "") { + obj.connectGithub = message.connectGithub; + } return obj; }, @@ -402,10 +411,18 @@ export const DashCred = { toJSON(message: DashCred): unknown { const obj: any = {}; - message.description !== undefined && (obj.description = message.description); - message.metadata !== undefined && (obj.metadata = message.metadata); - message.token !== undefined && (obj.token = message.token); - message.id !== undefined && (obj.id = message.id); + if (message.description !== "") { + obj.description = message.description; + } + if (message.metadata !== "") { + obj.metadata = message.metadata; + } + if (message.token !== "") { + obj.token = message.token; + } + if (message.id !== "") { + obj.id = message.id; + } return obj; }, @@ -477,8 +494,12 @@ export const DashAPICredsCreateReq = { toJSON(message: DashAPICredsCreateReq): unknown { const obj: any = {}; - message.description !== undefined && (obj.description = message.description); - message.metadata !== undefined && (obj.metadata = message.metadata); + if (message.description !== "") { + obj.description = message.description; + } + if (message.metadata !== "") { + obj.metadata = message.metadata; + } return obj; }, @@ -570,10 +591,18 @@ export const DashAPICredsUpdateReq = { toJSON(message: DashAPICredsUpdateReq): unknown { const obj: any = {}; - message.credSid !== undefined && (obj.credSid = message.credSid); - message.description !== undefined && (obj.description = message.description); - message.metadata !== undefined && (obj.metadata = message.metadata); - message.id !== undefined && (obj.id = message.id); + if (message.credSid !== "") { + obj.credSid = message.credSid; + } + if (message.description !== "") { + obj.description = message.description; + } + if (message.metadata !== "") { + obj.metadata = message.metadata; + } + if (message.id !== "") { + obj.id = message.id; + } return obj; }, @@ -645,8 +674,12 @@ export const DashAPICredsDeleteReq = { toJSON(message: DashAPICredsDeleteReq): unknown { const obj: any = {}; - message.credSid !== undefined && (obj.credSid = message.credSid); - message.id !== undefined && (obj.id = message.id); + if (message.credSid !== "") { + obj.credSid = message.credSid; + } + if (message.id !== "") { + obj.id = message.id; + } return obj; }, diff --git a/integration/grpc-web-no-streaming-observable/example.ts b/integration/grpc-web-no-streaming-observable/example.ts index 76d2ddf81..7940e68c7 100644 --- a/integration/grpc-web-no-streaming-observable/example.ts +++ b/integration/grpc-web-no-streaming-observable/example.ts @@ -125,8 +125,12 @@ export const DashFlash = { toJSON(message: DashFlash): unknown { const obj: any = {}; - message.msg !== undefined && (obj.msg = message.msg); - message.type !== undefined && (obj.type = dashFlash_TypeToJSON(message.type)); + if (message.msg !== "") { + obj.msg = message.msg; + } + if (message.type !== 0) { + obj.type = dashFlash_TypeToJSON(message.type); + } return obj; }, @@ -207,13 +211,14 @@ export const DashUserSettingsState = { toJSON(message: DashUserSettingsState): unknown { const obj: any = {}; - message.email !== undefined && (obj.email = message.email); - message.urls !== undefined && - (obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined); - if (message.flashes) { + if (message.email !== "") { + obj.email = message.email; + } + if (message.urls !== undefined) { + obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined; + } + if (message.flashes?.length) { obj.flashes = message.flashes.map((e) => e ? DashFlash.toJSON(e) : undefined); - } else { - obj.flashes = []; } return obj; }, @@ -287,8 +292,12 @@ export const DashUserSettingsState_URLs = { toJSON(message: DashUserSettingsState_URLs): unknown { const obj: any = {}; - message.connectGoogle !== undefined && (obj.connectGoogle = message.connectGoogle); - message.connectGithub !== undefined && (obj.connectGithub = message.connectGithub); + if (message.connectGoogle !== "") { + obj.connectGoogle = message.connectGoogle; + } + if (message.connectGithub !== "") { + obj.connectGithub = message.connectGithub; + } return obj; }, diff --git a/integration/grpc-web-no-streaming/example.ts b/integration/grpc-web-no-streaming/example.ts index 205d0a72c..71a80f812 100644 --- a/integration/grpc-web-no-streaming/example.ts +++ b/integration/grpc-web-no-streaming/example.ts @@ -123,8 +123,12 @@ export const DashFlash = { toJSON(message: DashFlash): unknown { const obj: any = {}; - message.msg !== undefined && (obj.msg = message.msg); - message.type !== undefined && (obj.type = dashFlash_TypeToJSON(message.type)); + if (message.msg !== "") { + obj.msg = message.msg; + } + if (message.type !== 0) { + obj.type = dashFlash_TypeToJSON(message.type); + } return obj; }, @@ -205,13 +209,14 @@ export const DashUserSettingsState = { toJSON(message: DashUserSettingsState): unknown { const obj: any = {}; - message.email !== undefined && (obj.email = message.email); - message.urls !== undefined && - (obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined); - if (message.flashes) { + if (message.email !== "") { + obj.email = message.email; + } + if (message.urls !== undefined) { + obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined; + } + if (message.flashes?.length) { obj.flashes = message.flashes.map((e) => e ? DashFlash.toJSON(e) : undefined); - } else { - obj.flashes = []; } return obj; }, @@ -285,8 +290,12 @@ export const DashUserSettingsState_URLs = { toJSON(message: DashUserSettingsState_URLs): unknown { const obj: any = {}; - message.connectGoogle !== undefined && (obj.connectGoogle = message.connectGoogle); - message.connectGithub !== undefined && (obj.connectGithub = message.connectGithub); + if (message.connectGoogle !== "") { + obj.connectGoogle = message.connectGoogle; + } + if (message.connectGithub !== "") { + obj.connectGithub = message.connectGithub; + } return obj; }, diff --git a/integration/grpc-web/example.ts b/integration/grpc-web/example.ts index 914061399..913eb841b 100644 --- a/integration/grpc-web/example.ts +++ b/integration/grpc-web/example.ts @@ -149,8 +149,12 @@ export const DashFlash = { toJSON(message: DashFlash): unknown { const obj: any = {}; - message.msg !== undefined && (obj.msg = message.msg); - message.type !== undefined && (obj.type = dashFlash_TypeToJSON(message.type)); + if (message.msg !== "") { + obj.msg = message.msg; + } + if (message.type !== 0) { + obj.type = dashFlash_TypeToJSON(message.type); + } return obj; }, @@ -231,13 +235,14 @@ export const DashUserSettingsState = { toJSON(message: DashUserSettingsState): unknown { const obj: any = {}; - message.email !== undefined && (obj.email = message.email); - message.urls !== undefined && - (obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined); - if (message.flashes) { + if (message.email !== "") { + obj.email = message.email; + } + if (message.urls !== undefined) { + obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined; + } + if (message.flashes?.length) { obj.flashes = message.flashes.map((e) => e ? DashFlash.toJSON(e) : undefined); - } else { - obj.flashes = []; } return obj; }, @@ -311,8 +316,12 @@ export const DashUserSettingsState_URLs = { toJSON(message: DashUserSettingsState_URLs): unknown { const obj: any = {}; - message.connectGoogle !== undefined && (obj.connectGoogle = message.connectGoogle); - message.connectGithub !== undefined && (obj.connectGithub = message.connectGithub); + if (message.connectGoogle !== "") { + obj.connectGoogle = message.connectGoogle; + } + if (message.connectGithub !== "") { + obj.connectGithub = message.connectGithub; + } return obj; }, @@ -404,10 +413,18 @@ export const DashCred = { toJSON(message: DashCred): unknown { const obj: any = {}; - message.description !== undefined && (obj.description = message.description); - message.metadata !== undefined && (obj.metadata = message.metadata); - message.token !== undefined && (obj.token = message.token); - message.id !== undefined && (obj.id = message.id); + if (message.description !== "") { + obj.description = message.description; + } + if (message.metadata !== "") { + obj.metadata = message.metadata; + } + if (message.token !== "") { + obj.token = message.token; + } + if (message.id !== "") { + obj.id = message.id; + } return obj; }, @@ -479,8 +496,12 @@ export const DashAPICredsCreateReq = { toJSON(message: DashAPICredsCreateReq): unknown { const obj: any = {}; - message.description !== undefined && (obj.description = message.description); - message.metadata !== undefined && (obj.metadata = message.metadata); + if (message.description !== "") { + obj.description = message.description; + } + if (message.metadata !== "") { + obj.metadata = message.metadata; + } return obj; }, @@ -572,10 +593,18 @@ export const DashAPICredsUpdateReq = { toJSON(message: DashAPICredsUpdateReq): unknown { const obj: any = {}; - message.credSid !== undefined && (obj.credSid = message.credSid); - message.description !== undefined && (obj.description = message.description); - message.metadata !== undefined && (obj.metadata = message.metadata); - message.id !== undefined && (obj.id = message.id); + if (message.credSid !== "") { + obj.credSid = message.credSid; + } + if (message.description !== "") { + obj.description = message.description; + } + if (message.metadata !== "") { + obj.metadata = message.metadata; + } + if (message.id !== "") { + obj.id = message.id; + } return obj; }, @@ -647,8 +676,12 @@ export const DashAPICredsDeleteReq = { toJSON(message: DashAPICredsDeleteReq): unknown { const obj: any = {}; - message.credSid !== undefined && (obj.credSid = message.credSid); - message.id !== undefined && (obj.id = message.id); + if (message.credSid !== "") { + obj.credSid = message.credSid; + } + if (message.id !== "") { + obj.id = message.id; + } return obj; }, diff --git a/integration/import-mapping/google/protobuf/timestamp.ts b/integration/import-mapping/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/import-mapping/google/protobuf/timestamp.ts +++ b/integration/import-mapping/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/import-mapping/mapping.ts b/integration/import-mapping/mapping.ts index c5a39a897..14f7e9f68 100644 --- a/integration/import-mapping/mapping.ts +++ b/integration/import-mapping/mapping.ts @@ -69,7 +69,9 @@ export const WithEmtpy = { toJSON(message: WithEmtpy): unknown { const obj: any = {}; - message.empty !== undefined && (obj.empty = message.empty ? Empty.toJSON(message.empty) : undefined); + if (message.empty !== undefined) { + obj.empty = message.empty ? Empty.toJSON(message.empty) : undefined; + } return obj; }, @@ -125,7 +127,9 @@ export const WithStruct = { toJSON(message: WithStruct): unknown { const obj: any = {}; - message.strut !== undefined && (obj.strut = message.strut); + if (message.strut !== undefined) { + obj.strut = message.strut; + } return obj; }, @@ -181,7 +185,9 @@ export const WithTimestamp = { toJSON(message: WithTimestamp): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } return obj; }, @@ -283,12 +289,21 @@ export const WithAll = { toJSON(message: WithAll): unknown { const obj: any = {}; - message.empty !== undefined && (obj.empty = message.empty ? Empty.toJSON(message.empty) : undefined); - message.strut !== undefined && (obj.strut = message.strut); - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); - message.duration !== undefined && (obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined); - message.veryVerySecret !== undefined && - (obj.veryVerySecret = message.veryVerySecret ? VeryVerySecret.toJSON(message.veryVerySecret) : undefined); + if (message.empty !== undefined) { + obj.empty = message.empty ? Empty.toJSON(message.empty) : undefined; + } + if (message.strut !== undefined) { + obj.strut = message.strut; + } + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } + if (message.duration !== undefined) { + obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined; + } + if (message.veryVerySecret !== undefined) { + obj.veryVerySecret = message.veryVerySecret ? VeryVerySecret.toJSON(message.veryVerySecret) : undefined; + } return obj; }, diff --git a/integration/import-suffix/child.pb.ts b/integration/import-suffix/child.pb.ts index b20e26d95..95c76a35c 100644 --- a/integration/import-suffix/child.pb.ts +++ b/integration/import-suffix/child.pb.ts @@ -81,7 +81,9 @@ export const Child = { toJSON(message: Child): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); + if (message.name !== "") { + obj.name = message.name; + } return obj; }, diff --git a/integration/import-suffix/google/protobuf/timestamp.pb.ts b/integration/import-suffix/google/protobuf/timestamp.pb.ts index 64e5e644b..cd985f737 100644 --- a/integration/import-suffix/google/protobuf/timestamp.pb.ts +++ b/integration/import-suffix/google/protobuf/timestamp.pb.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/import-suffix/parent.pb.ts b/integration/import-suffix/parent.pb.ts index 745b0a2e9..b3a036d25 100644 --- a/integration/import-suffix/parent.pb.ts +++ b/integration/import-suffix/parent.pb.ts @@ -76,9 +76,15 @@ export const Parent = { toJSON(message: Parent): unknown { const obj: any = {}; - message.child !== undefined && (obj.child = message.child ? Child.toJSON(message.child) : undefined); - message.childEnum !== undefined && (obj.childEnum = childEnumToJSON(message.childEnum)); - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); + if (message.child !== undefined) { + obj.child = message.child ? Child.toJSON(message.child) : undefined; + } + if (message.childEnum !== 0) { + obj.childEnum = childEnumToJSON(message.childEnum); + } + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } return obj; }, diff --git a/integration/lower-case-svc-methods/math.ts b/integration/lower-case-svc-methods/math.ts index 46e107b41..a1830e709 100644 --- a/integration/lower-case-svc-methods/math.ts +++ b/integration/lower-case-svc-methods/math.ts @@ -69,8 +69,12 @@ export const NumPair = { toJSON(message: NumPair): unknown { const obj: any = {}; - message.num1 !== undefined && (obj.num1 = message.num1); - message.num2 !== undefined && (obj.num2 = message.num2); + if (message.num1 !== 0) { + obj.num1 = message.num1; + } + if (message.num2 !== 0) { + obj.num2 = message.num2; + } return obj; }, @@ -127,7 +131,9 @@ export const NumSingle = { toJSON(message: NumSingle): unknown { const obj: any = {}; - message.num !== undefined && (obj.num = message.num); + if (message.num !== 0) { + obj.num = message.num; + } return obj; }, @@ -195,10 +201,8 @@ export const Numbers = { toJSON(message: Numbers): unknown { const obj: any = {}; - if (message.num) { + if (message.num?.length) { obj.num = message.num.map((e) => e); - } else { - obj.num = []; } return obj; }, diff --git a/integration/map-bigint-optional/test.ts b/integration/map-bigint-optional/test.ts index 6c91a8b5b..32a7d585b 100644 --- a/integration/map-bigint-optional/test.ts +++ b/integration/map-bigint-optional/test.ts @@ -96,8 +96,8 @@ export const MapBigInt = { toJSON(message: MapBigInt): unknown { const obj: any = {}; - obj.map = {}; - if (message.map) { + if (message.map?.size) { + obj.map = {}; message.map.forEach((v, k) => { obj.map[k.toString()] = v.toString(); }); @@ -205,8 +205,12 @@ export const MapBigInt_MapEntry = { toJSON(message: MapBigInt_MapEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key.toString()); - message.value !== undefined && (obj.value = message.value.toString()); + if (message.key !== BigInt("0")) { + obj.key = message.key.toString(); + } + if (message.value !== BigInt("0")) { + obj.value = message.value.toString(); + } return obj; }, diff --git a/integration/map-long-optional/test.ts b/integration/map-long-optional/test.ts index 436cfd397..3742b7a0c 100644 --- a/integration/map-long-optional/test.ts +++ b/integration/map-long-optional/test.ts @@ -96,8 +96,8 @@ export const MapBigInt = { toJSON(message: MapBigInt): unknown { const obj: any = {}; - obj.map = {}; - if (message.map) { + if (message.map?.size) { + obj.map = {}; message.map.forEach((v, k) => { obj.map[longToNumber(k)] = v.toString(); }); @@ -205,8 +205,12 @@ export const MapBigInt_MapEntry = { toJSON(message: MapBigInt_MapEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = (message.key || Long.UZERO).toString()); - message.value !== undefined && (obj.value = (message.value || Long.ZERO).toString()); + if (!message.key.isZero()) { + obj.key = (message.key || Long.UZERO).toString(); + } + if (!message.value.isZero()) { + obj.value = (message.value || Long.ZERO).toString(); + } return obj; }, diff --git a/integration/map-longstring-optional/test.ts b/integration/map-longstring-optional/test.ts index 1dfad9e5b..894e5f240 100644 --- a/integration/map-longstring-optional/test.ts +++ b/integration/map-longstring-optional/test.ts @@ -96,8 +96,8 @@ export const MapBigInt = { toJSON(message: MapBigInt): unknown { const obj: any = {}; - obj.map = {}; - if (message.map) { + if (message.map?.size) { + obj.map = {}; message.map.forEach((v, k) => { obj.map[k] = v; }); @@ -205,8 +205,12 @@ export const MapBigInt_MapEntry = { toJSON(message: MapBigInt_MapEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "0") { + obj.key = message.key; + } + if (message.value !== "0") { + obj.value = message.value; + } return obj; }, diff --git a/integration/nice-grpc/google/protobuf/struct.ts b/integration/nice-grpc/google/protobuf/struct.ts index 7eb24c809..86fa39100 100644 --- a/integration/nice-grpc/google/protobuf/struct.ts +++ b/integration/nice-grpc/google/protobuf/struct.ts @@ -153,11 +153,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -252,8 +255,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -374,13 +381,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.nullValue !== undefined && - (obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined); - message.numberValue !== undefined && (obj.numberValue = message.numberValue); - message.stringValue !== undefined && (obj.stringValue = message.stringValue); - message.boolValue !== undefined && (obj.boolValue = message.boolValue); - message.structValue !== undefined && (obj.structValue = message.structValue); - message.listValue !== undefined && (obj.listValue = message.listValue); + if (message.nullValue !== undefined) { + obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + } + if (message.numberValue !== undefined) { + obj.numberValue = message.numberValue; + } + if (message.stringValue !== undefined) { + obj.stringValue = message.stringValue; + } + if (message.boolValue !== undefined) { + obj.boolValue = message.boolValue; + } + if (message.structValue !== undefined) { + obj.structValue = message.structValue; + } + if (message.listValue !== undefined) { + obj.listValue = message.listValue; + } return obj; }, @@ -478,10 +496,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/nice-grpc/google/protobuf/timestamp.ts b/integration/nice-grpc/google/protobuf/timestamp.ts index 4dea0b96e..16d31e94d 100644 --- a/integration/nice-grpc/google/protobuf/timestamp.ts +++ b/integration/nice-grpc/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/nice-grpc/google/protobuf/wrappers.ts b/integration/nice-grpc/google/protobuf/wrappers.ts index c1ea99fa4..cf8a4920d 100644 --- a/integration/nice-grpc/google/protobuf/wrappers.ts +++ b/integration/nice-grpc/google/protobuf/wrappers.ts @@ -135,7 +135,9 @@ export const DoubleValue = { toJSON(message: DoubleValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -191,7 +193,9 @@ export const FloatValue = { toJSON(message: FloatValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -247,7 +251,9 @@ export const Int64Value = { toJSON(message: Int64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -303,7 +309,9 @@ export const UInt64Value = { toJSON(message: UInt64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -359,7 +367,9 @@ export const Int32Value = { toJSON(message: Int32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -415,7 +425,9 @@ export const UInt32Value = { toJSON(message: UInt32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -471,7 +483,9 @@ export const BoolValue = { toJSON(message: BoolValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value === true) { + obj.value = message.value; + } return obj; }, @@ -527,7 +541,9 @@ export const StringValue = { toJSON(message: StringValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -583,8 +599,9 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, diff --git a/integration/nice-grpc/simple.ts b/integration/nice-grpc/simple.ts index 617c82b3b..109f33346 100644 --- a/integration/nice-grpc/simple.ts +++ b/integration/nice-grpc/simple.ts @@ -63,7 +63,9 @@ export const TestMessage = { toJSON(message: TestMessage): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } return obj; }, diff --git a/integration/no-proto-package/no-proto-package.ts b/integration/no-proto-package/no-proto-package.ts index 4ceca7346..6eeed4715 100644 --- a/integration/no-proto-package/no-proto-package.ts +++ b/integration/no-proto-package/no-proto-package.ts @@ -53,7 +53,9 @@ export const User = { toJSON(message: User): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); + if (message.name !== "") { + obj.name = message.name; + } return obj; }, diff --git a/integration/omit-optionals/simple.ts b/integration/omit-optionals/simple.ts index 396f3b09e..738aa496f 100644 --- a/integration/omit-optionals/simple.ts +++ b/integration/omit-optionals/simple.ts @@ -62,8 +62,12 @@ export const TestMessage = { toJSON(message: TestMessage): unknown { const obj: any = {}; - message.field1 !== undefined && (obj.field1 = message.field1); - message.field2 !== undefined && (obj.field2 = message.field2); + if (message.field1 === true) { + obj.field1 = message.field1; + } + if (message.field2 !== undefined) { + obj.field2 = message.field2; + } return obj; }, diff --git a/integration/oneof-properties/oneof.ts b/integration/oneof-properties/oneof.ts index 32683549b..366d593fd 100644 --- a/integration/oneof-properties/oneof.ts +++ b/integration/oneof-properties/oneof.ts @@ -241,20 +241,39 @@ export const PleaseChoose = { toJSON(message: PleaseChoose): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.aNumber !== undefined && (obj.aNumber = message.aNumber); - message.aString !== undefined && (obj.aString = message.aString); - message.aMessage !== undefined && - (obj.aMessage = message.aMessage ? PleaseChoose_Submessage.toJSON(message.aMessage) : undefined); - message.aBool !== undefined && (obj.aBool = message.aBool); - message.bunchaBytes !== undefined && - (obj.bunchaBytes = message.bunchaBytes !== undefined ? base64FromBytes(message.bunchaBytes) : undefined); - message.anEnum !== undefined && - (obj.anEnum = message.anEnum !== undefined ? pleaseChoose_StateEnumToJSON(message.anEnum) : undefined); - message.age !== undefined && (obj.age = Math.round(message.age)); - message.either !== undefined && (obj.either = message.either); - message.or !== undefined && (obj.or = message.or); - message.thirdOption !== undefined && (obj.thirdOption = message.thirdOption); + if (message.name !== "") { + obj.name = message.name; + } + if (message.aNumber !== undefined) { + obj.aNumber = message.aNumber; + } + if (message.aString !== undefined) { + obj.aString = message.aString; + } + if (message.aMessage !== undefined) { + obj.aMessage = message.aMessage ? PleaseChoose_Submessage.toJSON(message.aMessage) : undefined; + } + if (message.aBool !== undefined) { + obj.aBool = message.aBool; + } + if (message.bunchaBytes !== undefined) { + obj.bunchaBytes = message.bunchaBytes !== undefined ? base64FromBytes(message.bunchaBytes) : undefined; + } + if (message.anEnum !== undefined) { + obj.anEnum = message.anEnum !== undefined ? pleaseChoose_StateEnumToJSON(message.anEnum) : undefined; + } + if (message.age !== 0) { + obj.age = Math.round(message.age); + } + if (message.either !== undefined) { + obj.either = message.either; + } + if (message.or !== undefined) { + obj.or = message.or; + } + if (message.thirdOption !== undefined) { + obj.thirdOption = message.thirdOption; + } return obj; }, @@ -322,7 +341,9 @@ export const PleaseChoose_Submessage = { toJSON(message: PleaseChoose_Submessage): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); + if (message.name !== "") { + obj.name = message.name; + } return obj; }, diff --git a/integration/oneof-unions-snake/google/protobuf/struct.ts b/integration/oneof-unions-snake/google/protobuf/struct.ts index 0c1689586..8b2b312d4 100644 --- a/integration/oneof-unions-snake/google/protobuf/struct.ts +++ b/integration/oneof-unions-snake/google/protobuf/struct.ts @@ -139,11 +139,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -238,8 +241,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -365,13 +372,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.kind?.$case === "null_value" && - (obj.null_value = message.kind?.null_value !== undefined ? nullValueToJSON(message.kind?.null_value) : undefined); - message.kind?.$case === "number_value" && (obj.number_value = message.kind?.number_value); - message.kind?.$case === "string_value" && (obj.string_value = message.kind?.string_value); - message.kind?.$case === "bool_value" && (obj.bool_value = message.kind?.bool_value); - message.kind?.$case === "struct_value" && (obj.struct_value = message.kind?.struct_value); - message.kind?.$case === "list_value" && (obj.list_value = message.kind?.list_value); + if (message.kind?.$case === "null_value") { + obj.null_value = message.kind?.null_value !== undefined ? nullValueToJSON(message.kind?.null_value) : undefined; + } + if (message.kind?.$case === "number_value") { + obj.number_value = message.kind?.number_value; + } + if (message.kind?.$case === "string_value") { + obj.string_value = message.kind?.string_value; + } + if (message.kind?.$case === "bool_value") { + obj.bool_value = message.kind?.bool_value; + } + if (message.kind?.$case === "struct_value") { + obj.struct_value = message.kind?.struct_value; + } + if (message.kind?.$case === "list_value") { + obj.list_value = message.kind?.list_value; + } return obj; }, @@ -500,10 +518,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/oneof-unions-snake/simple.ts b/integration/oneof-unions-snake/simple.ts index 8db60b2a6..68d930e95 100644 --- a/integration/oneof-unions-snake/simple.ts +++ b/integration/oneof-unions-snake/simple.ts @@ -54,7 +54,9 @@ export const SimpleStruct = { toJSON(message: SimpleStruct): unknown { const obj: any = {}; - message.simple_struct !== undefined && (obj.simple_struct = message.simple_struct); + if (message.simple_struct !== undefined) { + obj.simple_struct = message.simple_struct; + } return obj; }, diff --git a/integration/oneof-unions/google/protobuf/struct.ts b/integration/oneof-unions/google/protobuf/struct.ts index 3776f763f..e6249d4fa 100644 --- a/integration/oneof-unions/google/protobuf/struct.ts +++ b/integration/oneof-unions/google/protobuf/struct.ts @@ -139,11 +139,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -238,8 +241,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -362,13 +369,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.kind?.$case === "nullValue" && - (obj.nullValue = message.kind?.nullValue !== undefined ? nullValueToJSON(message.kind?.nullValue) : undefined); - message.kind?.$case === "numberValue" && (obj.numberValue = message.kind?.numberValue); - message.kind?.$case === "stringValue" && (obj.stringValue = message.kind?.stringValue); - message.kind?.$case === "boolValue" && (obj.boolValue = message.kind?.boolValue); - message.kind?.$case === "structValue" && (obj.structValue = message.kind?.structValue); - message.kind?.$case === "listValue" && (obj.listValue = message.kind?.listValue); + if (message.kind?.$case === "nullValue") { + obj.nullValue = message.kind?.nullValue !== undefined ? nullValueToJSON(message.kind?.nullValue) : undefined; + } + if (message.kind?.$case === "numberValue") { + obj.numberValue = message.kind?.numberValue; + } + if (message.kind?.$case === "stringValue") { + obj.stringValue = message.kind?.stringValue; + } + if (message.kind?.$case === "boolValue") { + obj.boolValue = message.kind?.boolValue; + } + if (message.kind?.$case === "structValue") { + obj.structValue = message.kind?.structValue; + } + if (message.kind?.$case === "listValue") { + obj.listValue = message.kind?.listValue; + } return obj; }, @@ -491,10 +509,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/oneof-unions/oneof.ts b/integration/oneof-unions/oneof.ts index 10f9a8c70..6b4953afd 100644 --- a/integration/oneof-unions/oneof.ts +++ b/integration/oneof-unions/oneof.ts @@ -262,25 +262,49 @@ export const PleaseChoose = { toJSON(message: PleaseChoose): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.choice?.$case === "aNumber" && (obj.aNumber = message.choice?.aNumber); - message.choice?.$case === "aString" && (obj.aString = message.choice?.aString); - message.choice?.$case === "aMessage" && - (obj.aMessage = message.choice?.aMessage ? PleaseChoose_Submessage.toJSON(message.choice?.aMessage) : undefined); - message.choice?.$case === "aBool" && (obj.aBool = message.choice?.aBool); - message.choice?.$case === "bunchaBytes" && (obj.bunchaBytes = message.choice?.bunchaBytes !== undefined - ? base64FromBytes(message.choice?.bunchaBytes) - : undefined); - message.choice?.$case === "anEnum" && (obj.anEnum = message.choice?.anEnum !== undefined - ? pleaseChoose_StateEnumToJSON(message.choice?.anEnum) - : undefined); - message.age !== undefined && (obj.age = Math.round(message.age)); - message.eitherOr?.$case === "either" && (obj.either = message.eitherOr?.either); - message.eitherOr?.$case === "or" && (obj.or = message.eitherOr?.or); - message.eitherOr?.$case === "thirdOption" && (obj.thirdOption = message.eitherOr?.thirdOption); - message.signature !== undefined && - (obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array(0))); - message.value !== undefined && (obj.value = message.value); + if (message.name !== "") { + obj.name = message.name; + } + if (message.choice?.$case === "aNumber") { + obj.aNumber = message.choice?.aNumber; + } + if (message.choice?.$case === "aString") { + obj.aString = message.choice?.aString; + } + if (message.choice?.$case === "aMessage") { + obj.aMessage = message.choice?.aMessage ? PleaseChoose_Submessage.toJSON(message.choice?.aMessage) : undefined; + } + if (message.choice?.$case === "aBool") { + obj.aBool = message.choice?.aBool; + } + if (message.choice?.$case === "bunchaBytes") { + obj.bunchaBytes = message.choice?.bunchaBytes !== undefined + ? base64FromBytes(message.choice?.bunchaBytes) + : undefined; + } + if (message.choice?.$case === "anEnum") { + obj.anEnum = message.choice?.anEnum !== undefined + ? pleaseChoose_StateEnumToJSON(message.choice?.anEnum) + : undefined; + } + if (message.age !== 0) { + obj.age = Math.round(message.age); + } + if (message.eitherOr?.$case === "either") { + obj.either = message.eitherOr?.either; + } + if (message.eitherOr?.$case === "or") { + obj.or = message.eitherOr?.or; + } + if (message.eitherOr?.$case === "thirdOption") { + obj.thirdOption = message.eitherOr?.thirdOption; + } + if (message.signature.length !== 0) { + obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array(0)); + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -378,7 +402,9 @@ export const PleaseChoose_Submessage = { toJSON(message: PleaseChoose_Submessage): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); + if (message.name !== "") { + obj.name = message.name; + } return obj; }, @@ -447,8 +473,12 @@ export const SimpleButOptional = { toJSON(message: SimpleButOptional): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = Math.round(message.age)); + if (message.name !== undefined) { + obj.name = message.name; + } + if (message.age !== undefined) { + obj.age = Math.round(message.age); + } return obj; }, diff --git a/integration/output-index/a.ts b/integration/output-index/a.ts index 7e806a84a..05b9a11b9 100644 --- a/integration/output-index/a.ts +++ b/integration/output-index/a.ts @@ -46,7 +46,9 @@ export const A = { toJSON(message: A): unknown { const obj: any = {}; - message.a !== undefined && (obj.a = message.a); + if (message.a !== "") { + obj.a = message.a; + } return obj; }, diff --git a/integration/point/point.ts b/integration/point/point.ts index cc88cfdce..3185d1715 100644 --- a/integration/point/point.ts +++ b/integration/point/point.ts @@ -64,8 +64,12 @@ export const Point = { toJSON(message: Point): unknown { const obj: any = {}; - message.lat !== undefined && (obj.lat = message.lat); - message.lng !== undefined && (obj.lng = message.lng); + if (message.lat !== 0) { + obj.lat = message.lat; + } + if (message.lng !== 0) { + obj.lng = message.lng; + } return obj; }, @@ -135,8 +139,12 @@ export const Area = { toJSON(message: Area): unknown { const obj: any = {}; - message.nw !== undefined && (obj.nw = message.nw ? Point.toJSON(message.nw) : undefined); - message.se !== undefined && (obj.se = message.se ? Point.toJSON(message.se) : undefined); + if (message.nw !== undefined) { + obj.nw = message.nw ? Point.toJSON(message.nw) : undefined; + } + if (message.se !== undefined) { + obj.se = message.se ? Point.toJSON(message.se) : undefined; + } return obj; }, diff --git a/integration/return-observable/observable.ts b/integration/return-observable/observable.ts index f52601c39..1d9048445 100644 --- a/integration/return-observable/observable.ts +++ b/integration/return-observable/observable.ts @@ -53,7 +53,9 @@ export const ProduceRequest = { toJSON(message: ProduceRequest): unknown { const obj: any = {}; - message.ingredients !== undefined && (obj.ingredients = message.ingredients); + if (message.ingredients !== "") { + obj.ingredients = message.ingredients; + } return obj; }, @@ -109,7 +111,9 @@ export const ProduceReply = { toJSON(message: ProduceReply): unknown { const obj: any = {}; - message.result !== undefined && (obj.result = message.result); + if (message.result !== "") { + obj.result = message.result; + } return obj; }, diff --git a/integration/simple-deprecated-fields/simple.ts b/integration/simple-deprecated-fields/simple.ts index 61a60fb79..751baed7d 100644 --- a/integration/simple-deprecated-fields/simple.ts +++ b/integration/simple-deprecated-fields/simple.ts @@ -120,11 +120,21 @@ export const Simple = { toJSON(message: Simple): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = Math.round(message.age)); - message.child !== undefined && (obj.child = message.child ? Child.toJSON(message.child) : undefined); - message.testField !== undefined && (obj.testField = message.testField); - message.testNotDeprecated !== undefined && (obj.testNotDeprecated = message.testNotDeprecated); + if (message.name !== "") { + obj.name = message.name; + } + if (message.age !== 0) { + obj.age = Math.round(message.age); + } + if (message.child !== undefined) { + obj.child = message.child ? Child.toJSON(message.child) : undefined; + } + if (message.testField !== "") { + obj.testField = message.testField; + } + if (message.testNotDeprecated !== "") { + obj.testNotDeprecated = message.testNotDeprecated; + } return obj; }, @@ -184,7 +194,9 @@ export const Child = { toJSON(message: Child): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); + if (message.name !== "") { + obj.name = message.name; + } return obj; }, diff --git a/integration/simple-esmodule-interop/simple.ts b/integration/simple-esmodule-interop/simple.ts index 422d6ec09..797fea600 100644 --- a/integration/simple-esmodule-interop/simple.ts +++ b/integration/simple-esmodule-interop/simple.ts @@ -75,8 +75,12 @@ export const Simple = { toJSON(message: Simple): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = Math.round(message.age)); + if (message.name !== "") { + obj.name = message.name; + } + if (message.age !== 0) { + obj.age = Math.round(message.age); + } return obj; }, @@ -269,18 +273,42 @@ export const Numbers = { toJSON(message: Numbers): unknown { const obj: any = {}; - message.double !== undefined && (obj.double = message.double); - message.float !== undefined && (obj.float = message.float); - message.int32 !== undefined && (obj.int32 = Math.round(message.int32)); - message.int64 !== undefined && (obj.int64 = Math.round(message.int64)); - message.uint32 !== undefined && (obj.uint32 = Math.round(message.uint32)); - message.uint64 !== undefined && (obj.uint64 = Math.round(message.uint64)); - message.sint32 !== undefined && (obj.sint32 = Math.round(message.sint32)); - message.sint64 !== undefined && (obj.sint64 = Math.round(message.sint64)); - message.fixed32 !== undefined && (obj.fixed32 = Math.round(message.fixed32)); - message.fixed64 !== undefined && (obj.fixed64 = Math.round(message.fixed64)); - message.sfixed32 !== undefined && (obj.sfixed32 = Math.round(message.sfixed32)); - message.sfixed64 !== undefined && (obj.sfixed64 = Math.round(message.sfixed64)); + if (message.double !== 0) { + obj.double = message.double; + } + if (message.float !== 0) { + obj.float = message.float; + } + if (message.int32 !== 0) { + obj.int32 = Math.round(message.int32); + } + if (message.int64 !== 0) { + obj.int64 = Math.round(message.int64); + } + if (message.uint32 !== 0) { + obj.uint32 = Math.round(message.uint32); + } + if (message.uint64 !== 0) { + obj.uint64 = Math.round(message.uint64); + } + if (message.sint32 !== 0) { + obj.sint32 = Math.round(message.sint32); + } + if (message.sint64 !== 0) { + obj.sint64 = Math.round(message.sint64); + } + if (message.fixed32 !== 0) { + obj.fixed32 = Math.round(message.fixed32); + } + if (message.fixed64 !== 0) { + obj.fixed64 = Math.round(message.fixed64); + } + if (message.sfixed32 !== 0) { + obj.sfixed32 = Math.round(message.sfixed32); + } + if (message.sfixed64 !== 0) { + obj.sfixed64 = Math.round(message.sfixed64); + } return obj; }, diff --git a/integration/simple-json-name/google/protobuf/timestamp.ts b/integration/simple-json-name/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/simple-json-name/google/protobuf/timestamp.ts +++ b/integration/simple-json-name/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/simple-json-name/simple.ts b/integration/simple-json-name/simple.ts index d3f779c8d..436a143c9 100644 --- a/integration/simple-json-name/simple.ts +++ b/integration/simple-json-name/simple.ts @@ -144,17 +144,29 @@ export const Simple = { toJSON(message: Simple): unknown { const obj: any = {}; - message.name !== undefined && (obj.other_name = message.name); - message.age !== undefined && (obj.other_age = Math.round(message.age)); - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); - message.hyphen !== undefined && (obj["hyphened-name"] = message.hyphen); - message.spaces !== undefined && (obj["name with spaces"] = message.spaces); - message.dollarStart !== undefined && (obj.$dollar = message.dollarStart); - message.dollarEnd !== undefined && (obj.dollar$ = message.dollarEnd); - if (message.hyphenList) { + if (message.name !== "") { + obj.other_name = message.name; + } + if (message.age !== undefined) { + obj.other_age = Math.round(message.age); + } + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } + if (message.hyphen !== "") { + obj["hyphened-name"] = message.hyphen; + } + if (message.spaces !== "") { + obj["name with spaces"] = message.spaces; + } + if (message.dollarStart !== "") { + obj.$dollar = message.dollarStart; + } + if (message.dollarEnd !== "") { + obj.dollar$ = message.dollarEnd; + } + if (message.hyphenList?.length) { obj["hyphen-list"] = message.hyphenList.map((e) => e); - } else { - obj["hyphen-list"] = []; } return obj; }, diff --git a/integration/simple-long-bigint/google/protobuf/timestamp.ts b/integration/simple-long-bigint/google/protobuf/timestamp.ts index 40849a961..d97dfed07 100644 --- a/integration/simple-long-bigint/google/protobuf/timestamp.ts +++ b/integration/simple-long-bigint/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = message.seconds.toString()); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== BigInt("0")) { + obj.seconds = message.seconds.toString(); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/simple-long-bigint/google/protobuf/wrappers.ts b/integration/simple-long-bigint/google/protobuf/wrappers.ts index 613a75aa1..cf3b7eaba 100644 --- a/integration/simple-long-bigint/google/protobuf/wrappers.ts +++ b/integration/simple-long-bigint/google/protobuf/wrappers.ts @@ -135,7 +135,9 @@ export const DoubleValue = { toJSON(message: DoubleValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -191,7 +193,9 @@ export const FloatValue = { toJSON(message: FloatValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -247,7 +251,9 @@ export const Int64Value = { toJSON(message: Int64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value.toString()); + if (message.value !== BigInt("0")) { + obj.value = message.value.toString(); + } return obj; }, @@ -303,7 +309,9 @@ export const UInt64Value = { toJSON(message: UInt64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value.toString()); + if (message.value !== BigInt("0")) { + obj.value = message.value.toString(); + } return obj; }, @@ -359,7 +367,9 @@ export const Int32Value = { toJSON(message: Int32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -415,7 +425,9 @@ export const UInt32Value = { toJSON(message: UInt32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -471,7 +483,9 @@ export const BoolValue = { toJSON(message: BoolValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value === true) { + obj.value = message.value; + } return obj; }, @@ -527,7 +541,9 @@ export const StringValue = { toJSON(message: StringValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -583,8 +599,9 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, diff --git a/integration/simple-long-bigint/simple.ts b/integration/simple-long-bigint/simple.ts index 893800108..d0ae5489a 100644 --- a/integration/simple-long-bigint/simple.ts +++ b/integration/simple-long-bigint/simple.ts @@ -249,24 +249,50 @@ export const Numbers = { toJSON(message: Numbers): unknown { const obj: any = {}; - message.double !== undefined && (obj.double = message.double); - message.float !== undefined && (obj.float = message.float); - message.int32 !== undefined && (obj.int32 = Math.round(message.int32)); - message.int64 !== undefined && (obj.int64 = message.int64.toString()); - message.uint32 !== undefined && (obj.uint32 = Math.round(message.uint32)); - message.uint64 !== undefined && (obj.uint64 = message.uint64.toString()); - message.sint32 !== undefined && (obj.sint32 = Math.round(message.sint32)); - message.sint64 !== undefined && (obj.sint64 = message.sint64.toString()); - message.fixed32 !== undefined && (obj.fixed32 = Math.round(message.fixed32)); - message.fixed64 !== undefined && (obj.fixed64 = message.fixed64.toString()); - message.sfixed32 !== undefined && (obj.sfixed32 = Math.round(message.sfixed32)); - message.sfixed64 !== undefined && (obj.sfixed64 = message.sfixed64.toString()); - message.guint64 !== undefined && (obj.guint64 = message.guint64); - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); - if (message.uint64s) { + if (message.double !== 0) { + obj.double = message.double; + } + if (message.float !== 0) { + obj.float = message.float; + } + if (message.int32 !== 0) { + obj.int32 = Math.round(message.int32); + } + if (message.int64 !== BigInt("0")) { + obj.int64 = message.int64.toString(); + } + if (message.uint32 !== 0) { + obj.uint32 = Math.round(message.uint32); + } + if (message.uint64 !== BigInt("0")) { + obj.uint64 = message.uint64.toString(); + } + if (message.sint32 !== 0) { + obj.sint32 = Math.round(message.sint32); + } + if (message.sint64 !== BigInt("0")) { + obj.sint64 = message.sint64.toString(); + } + if (message.fixed32 !== 0) { + obj.fixed32 = Math.round(message.fixed32); + } + if (message.fixed64 !== BigInt("0")) { + obj.fixed64 = message.fixed64.toString(); + } + if (message.sfixed32 !== 0) { + obj.sfixed32 = Math.round(message.sfixed32); + } + if (message.sfixed64 !== BigInt("0")) { + obj.sfixed64 = message.sfixed64.toString(); + } + if (message.guint64 !== undefined) { + obj.guint64 = message.guint64; + } + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } + if (message.uint64s?.length) { obj.uint64s = message.uint64s.map((e) => e.toString()); - } else { - obj.uint64s = []; } return obj; }, diff --git a/integration/simple-long-string/google/protobuf/timestamp.ts b/integration/simple-long-string/google/protobuf/timestamp.ts index d61c490b5..a6b604c17 100644 --- a/integration/simple-long-string/google/protobuf/timestamp.ts +++ b/integration/simple-long-string/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = message.seconds); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== "0") { + obj.seconds = message.seconds; + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/simple-long-string/google/protobuf/wrappers.ts b/integration/simple-long-string/google/protobuf/wrappers.ts index a69f21c2c..97c1be63c 100644 --- a/integration/simple-long-string/google/protobuf/wrappers.ts +++ b/integration/simple-long-string/google/protobuf/wrappers.ts @@ -135,7 +135,9 @@ export const DoubleValue = { toJSON(message: DoubleValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -191,7 +193,9 @@ export const FloatValue = { toJSON(message: FloatValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -247,7 +251,9 @@ export const Int64Value = { toJSON(message: Int64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "0") { + obj.value = message.value; + } return obj; }, @@ -303,7 +309,9 @@ export const UInt64Value = { toJSON(message: UInt64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "0") { + obj.value = message.value; + } return obj; }, @@ -359,7 +367,9 @@ export const Int32Value = { toJSON(message: Int32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -415,7 +425,9 @@ export const UInt32Value = { toJSON(message: UInt32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -471,7 +483,9 @@ export const BoolValue = { toJSON(message: BoolValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value === true) { + obj.value = message.value; + } return obj; }, @@ -527,7 +541,9 @@ export const StringValue = { toJSON(message: StringValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -583,8 +599,9 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, diff --git a/integration/simple-long-string/simple.ts b/integration/simple-long-string/simple.ts index 7c1a782a0..265b88cdd 100644 --- a/integration/simple-long-string/simple.ts +++ b/integration/simple-long-string/simple.ts @@ -224,20 +224,48 @@ export const Numbers = { toJSON(message: Numbers): unknown { const obj: any = {}; - message.double !== undefined && (obj.double = message.double); - message.float !== undefined && (obj.float = message.float); - message.int32 !== undefined && (obj.int32 = Math.round(message.int32)); - message.int64 !== undefined && (obj.int64 = message.int64); - message.uint32 !== undefined && (obj.uint32 = Math.round(message.uint32)); - message.uint64 !== undefined && (obj.uint64 = message.uint64); - message.sint32 !== undefined && (obj.sint32 = Math.round(message.sint32)); - message.sint64 !== undefined && (obj.sint64 = message.sint64); - message.fixed32 !== undefined && (obj.fixed32 = Math.round(message.fixed32)); - message.fixed64 !== undefined && (obj.fixed64 = message.fixed64); - message.sfixed32 !== undefined && (obj.sfixed32 = Math.round(message.sfixed32)); - message.sfixed64 !== undefined && (obj.sfixed64 = message.sfixed64); - message.guint64 !== undefined && (obj.guint64 = message.guint64); - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + if (message.double !== 0) { + obj.double = message.double; + } + if (message.float !== 0) { + obj.float = message.float; + } + if (message.int32 !== 0) { + obj.int32 = Math.round(message.int32); + } + if (message.int64 !== "0") { + obj.int64 = message.int64; + } + if (message.uint32 !== 0) { + obj.uint32 = Math.round(message.uint32); + } + if (message.uint64 !== "0") { + obj.uint64 = message.uint64; + } + if (message.sint32 !== 0) { + obj.sint32 = Math.round(message.sint32); + } + if (message.sint64 !== "0") { + obj.sint64 = message.sint64; + } + if (message.fixed32 !== 0) { + obj.fixed32 = Math.round(message.fixed32); + } + if (message.fixed64 !== "0") { + obj.fixed64 = message.fixed64; + } + if (message.sfixed32 !== 0) { + obj.sfixed32 = Math.round(message.sfixed32); + } + if (message.sfixed64 !== "0") { + obj.sfixed64 = message.sfixed64; + } + if (message.guint64 !== undefined) { + obj.guint64 = message.guint64; + } + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } return obj; }, diff --git a/integration/simple-long/google/protobuf/wrappers.ts b/integration/simple-long/google/protobuf/wrappers.ts index 3347b40dd..beb5a1224 100644 --- a/integration/simple-long/google/protobuf/wrappers.ts +++ b/integration/simple-long/google/protobuf/wrappers.ts @@ -135,7 +135,9 @@ export const DoubleValue = { toJSON(message: DoubleValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -191,7 +193,9 @@ export const FloatValue = { toJSON(message: FloatValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -247,7 +251,9 @@ export const Int64Value = { toJSON(message: Int64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = (message.value || Long.ZERO).toString()); + if (!message.value.isZero()) { + obj.value = (message.value || Long.ZERO).toString(); + } return obj; }, @@ -303,7 +309,9 @@ export const UInt64Value = { toJSON(message: UInt64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = (message.value || Long.UZERO).toString()); + if (!message.value.isZero()) { + obj.value = (message.value || Long.UZERO).toString(); + } return obj; }, @@ -359,7 +367,9 @@ export const Int32Value = { toJSON(message: Int32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -415,7 +425,9 @@ export const UInt32Value = { toJSON(message: UInt32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -471,7 +483,9 @@ export const BoolValue = { toJSON(message: BoolValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value === true) { + obj.value = message.value; + } return obj; }, @@ -527,7 +541,9 @@ export const StringValue = { toJSON(message: StringValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -583,8 +599,9 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, diff --git a/integration/simple-long/simple.ts b/integration/simple-long/simple.ts index 62d31fda1..0a0959f7b 100644 --- a/integration/simple-long/simple.ts +++ b/integration/simple-long/simple.ts @@ -151,19 +151,23 @@ export const SimpleWithWrappers = { toJSON(message: SimpleWithWrappers): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = message.age); - message.enabled !== undefined && (obj.enabled = message.enabled); - message.bananas !== undefined && (obj.bananas = message.bananas); - if (message.coins) { + if (message.name !== undefined) { + obj.name = message.name; + } + if (message.age !== undefined) { + obj.age = message.age; + } + if (message.enabled !== undefined) { + obj.enabled = message.enabled; + } + if (message.bananas !== undefined) { + obj.bananas = message.bananas; + } + if (message.coins?.length) { obj.coins = message.coins.map((e) => e); - } else { - obj.coins = []; } - if (message.snacks) { + if (message.snacks?.length) { obj.snacks = message.snacks.map((e) => e); - } else { - obj.snacks = []; } return obj; }, @@ -275,23 +279,32 @@ export const SimpleWithMap = { toJSON(message: SimpleWithMap): unknown { const obj: any = {}; - obj.nameLookup = {}; if (message.nameLookup) { - Object.entries(message.nameLookup).forEach(([k, v]) => { - obj.nameLookup[k] = v; - }); + const entries = Object.entries(message.nameLookup); + if (entries.length > 0) { + obj.nameLookup = {}; + entries.forEach(([k, v]) => { + obj.nameLookup[k] = v; + }); + } } - obj.intLookup = {}; if (message.intLookup) { - Object.entries(message.intLookup).forEach(([k, v]) => { - obj.intLookup[k] = Math.round(v); - }); + const entries = Object.entries(message.intLookup); + if (entries.length > 0) { + obj.intLookup = {}; + entries.forEach(([k, v]) => { + obj.intLookup[k] = Math.round(v); + }); + } } - obj.longLookup = {}; if (message.longLookup) { - Object.entries(message.longLookup).forEach(([k, v]) => { - obj.longLookup[k] = v.toString(); - }); + const entries = Object.entries(message.longLookup); + if (entries.length > 0) { + obj.longLookup = {}; + entries.forEach(([k, v]) => { + obj.longLookup[k] = v.toString(); + }); + } } return obj; }, @@ -384,8 +397,12 @@ export const SimpleWithMap_NameLookupEntry = { toJSON(message: SimpleWithMap_NameLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -454,8 +471,12 @@ export const SimpleWithMap_IntLookupEntry = { toJSON(message: SimpleWithMap_IntLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -525,8 +546,12 @@ export const SimpleWithMap_LongLookupEntry = { toJSON(message: SimpleWithMap_LongLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = (message.value || Long.ZERO).toString()); + if (message.key !== "") { + obj.key = message.key; + } + if (!message.value.isZero()) { + obj.value = (message.value || Long.ZERO).toString(); + } return obj; }, @@ -745,22 +770,44 @@ export const Numbers = { toJSON(message: Numbers): unknown { const obj: any = {}; - message.double !== undefined && (obj.double = message.double); - message.float !== undefined && (obj.float = message.float); - message.int32 !== undefined && (obj.int32 = Math.round(message.int32)); - message.int64 !== undefined && (obj.int64 = (message.int64 || Long.ZERO).toString()); - message.uint32 !== undefined && (obj.uint32 = Math.round(message.uint32)); - message.uint64 !== undefined && (obj.uint64 = (message.uint64 || Long.UZERO).toString()); - message.sint32 !== undefined && (obj.sint32 = Math.round(message.sint32)); - message.sint64 !== undefined && (obj.sint64 = (message.sint64 || Long.ZERO).toString()); - message.fixed32 !== undefined && (obj.fixed32 = Math.round(message.fixed32)); - message.fixed64 !== undefined && (obj.fixed64 = (message.fixed64 || Long.UZERO).toString()); - message.sfixed32 !== undefined && (obj.sfixed32 = Math.round(message.sfixed32)); - message.sfixed64 !== undefined && (obj.sfixed64 = (message.sfixed64 || Long.ZERO).toString()); - if (message.manyUint64) { + if (message.double !== 0) { + obj.double = message.double; + } + if (message.float !== 0) { + obj.float = message.float; + } + if (message.int32 !== 0) { + obj.int32 = Math.round(message.int32); + } + if (!message.int64.isZero()) { + obj.int64 = (message.int64 || Long.ZERO).toString(); + } + if (message.uint32 !== 0) { + obj.uint32 = Math.round(message.uint32); + } + if (!message.uint64.isZero()) { + obj.uint64 = (message.uint64 || Long.UZERO).toString(); + } + if (message.sint32 !== 0) { + obj.sint32 = Math.round(message.sint32); + } + if (!message.sint64.isZero()) { + obj.sint64 = (message.sint64 || Long.ZERO).toString(); + } + if (message.fixed32 !== 0) { + obj.fixed32 = Math.round(message.fixed32); + } + if (!message.fixed64.isZero()) { + obj.fixed64 = (message.fixed64 || Long.UZERO).toString(); + } + if (message.sfixed32 !== 0) { + obj.sfixed32 = Math.round(message.sfixed32); + } + if (!message.sfixed64.isZero()) { + obj.sfixed64 = (message.sfixed64 || Long.ZERO).toString(); + } + if (message.manyUint64?.length) { obj.manyUint64 = message.manyUint64.map((e) => (e || Long.UZERO).toString()); - } else { - obj.manyUint64 = []; } return obj; }, diff --git a/integration/simple-optionals/google/protobuf/timestamp.ts b/integration/simple-optionals/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/simple-optionals/google/protobuf/timestamp.ts +++ b/integration/simple-optionals/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/simple-optionals/google/protobuf/wrappers.ts b/integration/simple-optionals/google/protobuf/wrappers.ts index 356be2144..0f8f714df 100644 --- a/integration/simple-optionals/google/protobuf/wrappers.ts +++ b/integration/simple-optionals/google/protobuf/wrappers.ts @@ -135,7 +135,9 @@ export const DoubleValue = { toJSON(message: DoubleValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -191,7 +193,9 @@ export const FloatValue = { toJSON(message: FloatValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -247,7 +251,9 @@ export const Int64Value = { toJSON(message: Int64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -303,7 +309,9 @@ export const UInt64Value = { toJSON(message: UInt64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -359,7 +367,9 @@ export const Int32Value = { toJSON(message: Int32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -415,7 +425,9 @@ export const UInt32Value = { toJSON(message: UInt32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -471,7 +483,9 @@ export const BoolValue = { toJSON(message: BoolValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value === true) { + obj.value = message.value; + } return obj; }, @@ -527,7 +541,9 @@ export const StringValue = { toJSON(message: StringValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -583,8 +599,9 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, diff --git a/integration/simple-optionals/import_dir/thing.ts b/integration/simple-optionals/import_dir/thing.ts index 231c9e092..dacd1b268 100644 --- a/integration/simple-optionals/import_dir/thing.ts +++ b/integration/simple-optionals/import_dir/thing.ts @@ -49,7 +49,9 @@ export const ImportedThing = { toJSON(message: ImportedThing): unknown { const obj: any = {}; - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } return obj; }, diff --git a/integration/simple-optionals/simple.ts b/integration/simple-optionals/simple.ts index 4a3224c7d..8d54cb554 100644 --- a/integration/simple-optionals/simple.ts +++ b/integration/simple-optionals/simple.ts @@ -417,32 +417,36 @@ export const Simple = { toJSON(message: Simple): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = Math.round(message.age)); - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); - message.child !== undefined && (obj.child = message.child ? Child.toJSON(message.child) : undefined); - message.state !== undefined && (obj.state = stateEnumToJSON(message.state)); - if (message.grandChildren) { + if (message.name !== "") { + obj.name = message.name; + } + if (message.age !== 0) { + obj.age = Math.round(message.age); + } + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } + if (message.child !== undefined) { + obj.child = message.child ? Child.toJSON(message.child) : undefined; + } + if (message.state !== 0) { + obj.state = stateEnumToJSON(message.state); + } + if (message.grandChildren?.length) { obj.grandChildren = message.grandChildren.map((e) => e ? Child.toJSON(e) : undefined); - } else { - obj.grandChildren = []; } - if (message.coins) { + if (message.coins?.length) { obj.coins = message.coins.map((e) => Math.round(e)); - } else { - obj.coins = []; } - if (message.snacks) { + if (message.snacks?.length) { obj.snacks = message.snacks.map((e) => e); - } else { - obj.snacks = []; } - if (message.oldStates) { + if (message.oldStates?.length) { obj.oldStates = message.oldStates.map((e) => stateEnumToJSON(e)); - } else { - obj.oldStates = []; } - message.thing !== undefined && (obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined); + if (message.thing !== undefined) { + obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + } return obj; }, @@ -522,8 +526,12 @@ export const Child = { toJSON(message: Child): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.type !== undefined && (obj.type = child_TypeToJSON(message.type)); + if (message.name !== "") { + obj.name = message.name; + } + if (message.type !== 0) { + obj.type = child_TypeToJSON(message.type); + } return obj; }, @@ -604,10 +612,15 @@ export const Nested = { toJSON(message: Nested): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.message !== undefined && - (obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined); - message.state !== undefined && (obj.state = nested_InnerEnumToJSON(message.state)); + if (message.name !== "") { + obj.name = message.name; + } + if (message.message !== undefined) { + obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined; + } + if (message.state !== 0) { + obj.state = nested_InnerEnumToJSON(message.state); + } return obj; }, @@ -680,9 +693,12 @@ export const Nested_InnerMessage = { toJSON(message: Nested_InnerMessage): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.deep !== undefined && - (obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined); + if (message.name !== "") { + obj.name = message.name; + } + if (message.deep !== undefined) { + obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined; + } return obj; }, @@ -741,7 +757,9 @@ export const Nested_InnerMessage_DeepMessage = { toJSON(message: Nested_InnerMessage_DeepMessage): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); + if (message.name !== "") { + obj.name = message.name; + } return obj; }, @@ -812,8 +830,12 @@ export const OneOfMessage = { toJSON(message: OneOfMessage): unknown { const obj: any = {}; - message.first !== undefined && (obj.first = message.first); - message.last !== undefined && (obj.last = message.last); + if (message.first !== undefined) { + obj.first = message.first; + } + if (message.last !== undefined) { + obj.last = message.last; + } return obj; }, @@ -916,18 +938,20 @@ export const SimpleWithWrappers = { toJSON(message: SimpleWithWrappers): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = message.age); - message.enabled !== undefined && (obj.enabled = message.enabled); - if (message.coins) { + if (message.name !== undefined) { + obj.name = message.name; + } + if (message.age !== undefined) { + obj.age = message.age; + } + if (message.enabled !== undefined) { + obj.enabled = message.enabled; + } + if (message.coins?.length) { obj.coins = message.coins.map((e) => e); - } else { - obj.coins = []; } - if (message.snacks) { + if (message.snacks?.length) { obj.snacks = message.snacks.map((e) => e); - } else { - obj.snacks = []; } return obj; }, @@ -988,7 +1012,9 @@ export const Entity = { toJSON(message: Entity): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); + if (message.id !== 0) { + obj.id = Math.round(message.id); + } return obj; }, @@ -1092,23 +1118,32 @@ export const SimpleWithMap = { toJSON(message: SimpleWithMap): unknown { const obj: any = {}; - obj.entitiesById = {}; if (message.entitiesById) { - Object.entries(message.entitiesById).forEach(([k, v]) => { - obj.entitiesById[k] = Entity.toJSON(v); - }); + const entries = Object.entries(message.entitiesById); + if (entries.length > 0) { + obj.entitiesById = {}; + entries.forEach(([k, v]) => { + obj.entitiesById[k] = Entity.toJSON(v); + }); + } } - obj.nameLookup = {}; if (message.nameLookup) { - Object.entries(message.nameLookup).forEach(([k, v]) => { - obj.nameLookup[k] = v; - }); + const entries = Object.entries(message.nameLookup); + if (entries.length > 0) { + obj.nameLookup = {}; + entries.forEach(([k, v]) => { + obj.nameLookup[k] = v; + }); + } } - obj.intLookup = {}; if (message.intLookup) { - Object.entries(message.intLookup).forEach(([k, v]) => { - obj.intLookup[k] = Math.round(v); - }); + const entries = Object.entries(message.intLookup); + if (entries.length > 0) { + obj.intLookup = {}; + entries.forEach(([k, v]) => { + obj.intLookup[k] = Math.round(v); + }); + } } return obj; }, @@ -1204,8 +1239,12 @@ export const SimpleWithMap_EntitiesByIdEntry = { toJSON(message: SimpleWithMap_EntitiesByIdEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -1276,8 +1315,12 @@ export const SimpleWithMap_NameLookupEntry = { toJSON(message: SimpleWithMap_NameLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -1346,8 +1389,12 @@ export const SimpleWithMap_IntLookupEntry = { toJSON(message: SimpleWithMap_IntLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -1414,11 +1461,14 @@ export const SimpleWithSnakeCaseMap = { toJSON(message: SimpleWithSnakeCaseMap): unknown { const obj: any = {}; - obj.entitiesById = {}; if (message.entitiesById) { - Object.entries(message.entitiesById).forEach(([k, v]) => { - obj.entitiesById[k] = Entity.toJSON(v); - }); + const entries = Object.entries(message.entitiesById); + if (entries.length > 0) { + obj.entitiesById = {}; + entries.forEach(([k, v]) => { + obj.entitiesById[k] = Entity.toJSON(v); + }); + } } return obj; }, @@ -1496,8 +1546,12 @@ export const SimpleWithSnakeCaseMap_EntitiesByIdEntry = { toJSON(message: SimpleWithSnakeCaseMap_EntitiesByIdEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -1560,7 +1614,9 @@ export const PingRequest = { toJSON(message: PingRequest): unknown { const obj: any = {}; - message.input !== undefined && (obj.input = message.input); + if (message.input !== "") { + obj.input = message.input; + } return obj; }, @@ -1616,7 +1672,9 @@ export const PingResponse = { toJSON(message: PingResponse): unknown { const obj: any = {}; - message.output !== undefined && (obj.output = message.output); + if (message.output !== "") { + obj.output = message.output; + } return obj; }, @@ -1808,18 +1866,42 @@ export const Numbers = { toJSON(message: Numbers): unknown { const obj: any = {}; - message.double !== undefined && (obj.double = message.double); - message.float !== undefined && (obj.float = message.float); - message.int32 !== undefined && (obj.int32 = Math.round(message.int32)); - message.int64 !== undefined && (obj.int64 = Math.round(message.int64)); - message.uint32 !== undefined && (obj.uint32 = Math.round(message.uint32)); - message.uint64 !== undefined && (obj.uint64 = Math.round(message.uint64)); - message.sint32 !== undefined && (obj.sint32 = Math.round(message.sint32)); - message.sint64 !== undefined && (obj.sint64 = Math.round(message.sint64)); - message.fixed32 !== undefined && (obj.fixed32 = Math.round(message.fixed32)); - message.fixed64 !== undefined && (obj.fixed64 = Math.round(message.fixed64)); - message.sfixed32 !== undefined && (obj.sfixed32 = Math.round(message.sfixed32)); - message.sfixed64 !== undefined && (obj.sfixed64 = Math.round(message.sfixed64)); + if (message.double !== 0) { + obj.double = message.double; + } + if (message.float !== 0) { + obj.float = message.float; + } + if (message.int32 !== 0) { + obj.int32 = Math.round(message.int32); + } + if (message.int64 !== 0) { + obj.int64 = Math.round(message.int64); + } + if (message.uint32 !== 0) { + obj.uint32 = Math.round(message.uint32); + } + if (message.uint64 !== 0) { + obj.uint64 = Math.round(message.uint64); + } + if (message.sint32 !== 0) { + obj.sint32 = Math.round(message.sint32); + } + if (message.sint64 !== 0) { + obj.sint64 = Math.round(message.sint64); + } + if (message.fixed32 !== 0) { + obj.fixed32 = Math.round(message.fixed32); + } + if (message.fixed64 !== 0) { + obj.fixed64 = Math.round(message.fixed64); + } + if (message.sfixed32 !== 0) { + obj.sfixed32 = Math.round(message.sfixed32); + } + if (message.sfixed64 !== 0) { + obj.sfixed64 = Math.round(message.sfixed64); + } return obj; }, diff --git a/integration/simple-optionals/thing.ts b/integration/simple-optionals/thing.ts index e8529c1f6..f890da70b 100644 --- a/integration/simple-optionals/thing.ts +++ b/integration/simple-optionals/thing.ts @@ -49,7 +49,9 @@ export const ImportedThing = { toJSON(message: ImportedThing): unknown { const obj: any = {}; - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } return obj; }, diff --git a/integration/simple-proto2/simple.ts b/integration/simple-proto2/simple.ts index 41f5228e9..1b086230d 100644 --- a/integration/simple-proto2/simple.ts +++ b/integration/simple-proto2/simple.ts @@ -81,7 +81,9 @@ export const Issue56 = { toJSON(message: Issue56): unknown { const obj: any = {}; - message.test !== undefined && (obj.test = enumWithoutZeroToJSON(message.test)); + if (message.test !== 1) { + obj.test = enumWithoutZeroToJSON(message.test); + } return obj; }, diff --git a/integration/simple-prototype-defaults/google/protobuf/timestamp.ts b/integration/simple-prototype-defaults/google/protobuf/timestamp.ts index e056b52e6..7e4a4c789 100644 --- a/integration/simple-prototype-defaults/google/protobuf/timestamp.ts +++ b/integration/simple-prototype-defaults/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/simple-prototype-defaults/google/protobuf/wrappers.ts b/integration/simple-prototype-defaults/google/protobuf/wrappers.ts index 7c1dd0713..e7f55f3ac 100644 --- a/integration/simple-prototype-defaults/google/protobuf/wrappers.ts +++ b/integration/simple-prototype-defaults/google/protobuf/wrappers.ts @@ -135,7 +135,9 @@ export const DoubleValue = { toJSON(message: DoubleValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -191,7 +193,9 @@ export const FloatValue = { toJSON(message: FloatValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -247,7 +251,9 @@ export const Int64Value = { toJSON(message: Int64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -303,7 +309,9 @@ export const UInt64Value = { toJSON(message: UInt64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -359,7 +367,9 @@ export const Int32Value = { toJSON(message: Int32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -415,7 +425,9 @@ export const UInt32Value = { toJSON(message: UInt32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -471,7 +483,9 @@ export const BoolValue = { toJSON(message: BoolValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value === true) { + obj.value = message.value; + } return obj; }, @@ -527,7 +541,9 @@ export const StringValue = { toJSON(message: StringValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -583,8 +599,9 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, diff --git a/integration/simple-prototype-defaults/google/type/date.ts b/integration/simple-prototype-defaults/google/type/date.ts index a1698f759..2e042add8 100644 --- a/integration/simple-prototype-defaults/google/type/date.ts +++ b/integration/simple-prototype-defaults/google/type/date.ts @@ -99,9 +99,15 @@ export const DateMessage = { toJSON(message: DateMessage): unknown { const obj: any = {}; - message.year !== undefined && (obj.year = Math.round(message.year)); - message.month !== undefined && (obj.month = Math.round(message.month)); - message.day !== undefined && (obj.day = Math.round(message.day)); + if (message.year !== 0) { + obj.year = Math.round(message.year); + } + if (message.month !== 0) { + obj.month = Math.round(message.month); + } + if (message.day !== 0) { + obj.day = Math.round(message.day); + } return obj; }, diff --git a/integration/simple-prototype-defaults/import_dir/thing.ts b/integration/simple-prototype-defaults/import_dir/thing.ts index 520383bd0..9ae339e4a 100644 --- a/integration/simple-prototype-defaults/import_dir/thing.ts +++ b/integration/simple-prototype-defaults/import_dir/thing.ts @@ -49,7 +49,9 @@ export const ImportedThing = { toJSON(message: ImportedThing): unknown { const obj: any = {}; - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } return obj; }, diff --git a/integration/simple-prototype-defaults/simple.ts b/integration/simple-prototype-defaults/simple.ts index 7963712f9..5ee911067 100644 --- a/integration/simple-prototype-defaults/simple.ts +++ b/integration/simple-prototype-defaults/simple.ts @@ -515,41 +515,45 @@ export const Simple = { toJSON(message: Simple): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = Math.round(message.age)); - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); - message.child !== undefined && (obj.child = message.child ? Child.toJSON(message.child) : undefined); - message.state !== undefined && (obj.state = stateEnumToJSON(message.state)); - if (message.grandChildren) { + if (message.name !== "") { + obj.name = message.name; + } + if (message.age !== 0) { + obj.age = Math.round(message.age); + } + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } + if (message.child !== undefined) { + obj.child = message.child ? Child.toJSON(message.child) : undefined; + } + if (message.state !== 0) { + obj.state = stateEnumToJSON(message.state); + } + if (message.grandChildren?.length) { obj.grandChildren = message.grandChildren.map((e) => e ? Child.toJSON(e) : undefined); - } else { - obj.grandChildren = []; } - if (message.coins) { + if (message.coins?.length) { obj.coins = message.coins.map((e) => Math.round(e)); - } else { - obj.coins = []; } - if (message.snacks) { + if (message.snacks?.length) { obj.snacks = message.snacks.map((e) => e); - } else { - obj.snacks = []; } - if (message.oldStates) { + if (message.oldStates?.length) { obj.oldStates = message.oldStates.map((e) => stateEnumToJSON(e)); - } else { - obj.oldStates = []; } - message.thing !== undefined && (obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined); - if (message.blobs) { + if (message.thing !== undefined) { + obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + } + if (message.blobs?.length) { obj.blobs = message.blobs.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array(0))); - } else { - obj.blobs = []; } - message.birthday !== undefined && - (obj.birthday = message.birthday ? DateMessage.toJSON(message.birthday) : undefined); - message.blob !== undefined && - (obj.blob = base64FromBytes(message.blob !== undefined ? message.blob : new Uint8Array(0))); + if (message.birthday !== undefined) { + obj.birthday = message.birthday ? DateMessage.toJSON(message.birthday) : undefined; + } + if (message.blob.length !== 0) { + obj.blob = base64FromBytes(message.blob !== undefined ? message.blob : new Uint8Array(0)); + } return obj; }, @@ -634,8 +638,12 @@ export const Child = { toJSON(message: Child): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.type !== undefined && (obj.type = child_TypeToJSON(message.type)); + if (message.name !== "") { + obj.name = message.name; + } + if (message.type !== 0) { + obj.type = child_TypeToJSON(message.type); + } return obj; }, @@ -716,10 +724,15 @@ export const Nested = { toJSON(message: Nested): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.message !== undefined && - (obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined); - message.state !== undefined && (obj.state = nested_InnerEnumToJSON(message.state)); + if (message.name !== "") { + obj.name = message.name; + } + if (message.message !== undefined) { + obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined; + } + if (message.state !== 0) { + obj.state = nested_InnerEnumToJSON(message.state); + } return obj; }, @@ -792,9 +805,12 @@ export const Nested_InnerMessage = { toJSON(message: Nested_InnerMessage): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.deep !== undefined && - (obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined); + if (message.name !== "") { + obj.name = message.name; + } + if (message.deep !== undefined) { + obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined; + } return obj; }, @@ -853,7 +869,9 @@ export const Nested_InnerMessage_DeepMessage = { toJSON(message: Nested_InnerMessage_DeepMessage): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); + if (message.name !== "") { + obj.name = message.name; + } return obj; }, @@ -924,8 +942,12 @@ export const OneOfMessage = { toJSON(message: OneOfMessage): unknown { const obj: any = {}; - message.first !== undefined && (obj.first = message.first); - message.last !== undefined && (obj.last = message.last); + if (message.first !== undefined) { + obj.first = message.first; + } + if (message.last !== undefined) { + obj.last = message.last; + } return obj; }, @@ -1039,20 +1061,24 @@ export const SimpleWithWrappers = { toJSON(message: SimpleWithWrappers): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = message.age); - message.enabled !== undefined && (obj.enabled = message.enabled); - if (message.coins) { + if (message.name !== undefined) { + obj.name = message.name; + } + if (message.age !== undefined) { + obj.age = message.age; + } + if (message.enabled !== undefined) { + obj.enabled = message.enabled; + } + if (message.coins?.length) { obj.coins = message.coins.map((e) => e); - } else { - obj.coins = []; } - if (message.snacks) { + if (message.snacks?.length) { obj.snacks = message.snacks.map((e) => e); - } else { - obj.snacks = []; } - message.id !== undefined && (obj.id = message.id); + if (message.id !== undefined) { + obj.id = message.id; + } return obj; }, @@ -1113,7 +1139,9 @@ export const Entity = { toJSON(message: Entity): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); + if (message.id !== 0) { + obj.id = Math.round(message.id); + } return obj; }, @@ -1306,47 +1334,68 @@ export const SimpleWithMap = { toJSON(message: SimpleWithMap): unknown { const obj: any = {}; - obj.entitiesById = {}; if (message.entitiesById) { - Object.entries(message.entitiesById).forEach(([k, v]) => { - obj.entitiesById[k] = Entity.toJSON(v); - }); + const entries = Object.entries(message.entitiesById); + if (entries.length > 0) { + obj.entitiesById = {}; + entries.forEach(([k, v]) => { + obj.entitiesById[k] = Entity.toJSON(v); + }); + } } - obj.nameLookup = {}; if (message.nameLookup) { - Object.entries(message.nameLookup).forEach(([k, v]) => { - obj.nameLookup[k] = v; - }); + const entries = Object.entries(message.nameLookup); + if (entries.length > 0) { + obj.nameLookup = {}; + entries.forEach(([k, v]) => { + obj.nameLookup[k] = v; + }); + } } - obj.intLookup = {}; if (message.intLookup) { - Object.entries(message.intLookup).forEach(([k, v]) => { - obj.intLookup[k] = Math.round(v); - }); + const entries = Object.entries(message.intLookup); + if (entries.length > 0) { + obj.intLookup = {}; + entries.forEach(([k, v]) => { + obj.intLookup[k] = Math.round(v); + }); + } } - obj.mapOfTimestamps = {}; if (message.mapOfTimestamps) { - Object.entries(message.mapOfTimestamps).forEach(([k, v]) => { - obj.mapOfTimestamps[k] = v.toISOString(); - }); + const entries = Object.entries(message.mapOfTimestamps); + if (entries.length > 0) { + obj.mapOfTimestamps = {}; + entries.forEach(([k, v]) => { + obj.mapOfTimestamps[k] = v.toISOString(); + }); + } } - obj.mapOfBytes = {}; if (message.mapOfBytes) { - Object.entries(message.mapOfBytes).forEach(([k, v]) => { - obj.mapOfBytes[k] = base64FromBytes(v); - }); + const entries = Object.entries(message.mapOfBytes); + if (entries.length > 0) { + obj.mapOfBytes = {}; + entries.forEach(([k, v]) => { + obj.mapOfBytes[k] = base64FromBytes(v); + }); + } } - obj.mapOfStringValues = {}; if (message.mapOfStringValues) { - Object.entries(message.mapOfStringValues).forEach(([k, v]) => { - obj.mapOfStringValues[k] = v; - }); + const entries = Object.entries(message.mapOfStringValues); + if (entries.length > 0) { + obj.mapOfStringValues = {}; + entries.forEach(([k, v]) => { + obj.mapOfStringValues[k] = v; + }); + } } - obj.longLookup = {}; if (message.longLookup) { - Object.entries(message.longLookup).forEach(([k, v]) => { - obj.longLookup[k] = Math.round(v); - }); + const entries = Object.entries(message.longLookup); + if (entries.length > 0) { + obj.longLookup = {}; + entries.forEach(([k, v]) => { + obj.longLookup[k] = Math.round(v); + }); + } } return obj; }, @@ -1477,8 +1526,12 @@ export const SimpleWithMap_EntitiesByIdEntry = { toJSON(message: SimpleWithMap_EntitiesByIdEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -1549,8 +1602,12 @@ export const SimpleWithMap_NameLookupEntry = { toJSON(message: SimpleWithMap_NameLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -1619,8 +1676,12 @@ export const SimpleWithMap_IntLookupEntry = { toJSON(message: SimpleWithMap_IntLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -1690,8 +1751,12 @@ export const SimpleWithMap_MapOfTimestampsEntry = { toJSON(message: SimpleWithMap_MapOfTimestampsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value.toISOString()); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value.toISOString(); + } return obj; }, @@ -1765,9 +1830,12 @@ export const SimpleWithMap_MapOfBytesEntry = { toJSON(message: SimpleWithMap_MapOfBytesEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, @@ -1841,8 +1909,12 @@ export const SimpleWithMap_MapOfStringValuesEntry = { toJSON(message: SimpleWithMap_MapOfStringValuesEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -1915,8 +1987,12 @@ export const SimpleWithMap_LongLookupEntry = { toJSON(message: SimpleWithMap_LongLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -1985,11 +2061,14 @@ export const SimpleWithSnakeCaseMap = { toJSON(message: SimpleWithSnakeCaseMap): unknown { const obj: any = {}; - obj.entitiesById = {}; if (message.entitiesById) { - Object.entries(message.entitiesById).forEach(([k, v]) => { - obj.entitiesById[k] = Entity.toJSON(v); - }); + const entries = Object.entries(message.entitiesById); + if (entries.length > 0) { + obj.entitiesById = {}; + entries.forEach(([k, v]) => { + obj.entitiesById[k] = Entity.toJSON(v); + }); + } } return obj; }, @@ -2069,8 +2148,12 @@ export const SimpleWithSnakeCaseMap_EntitiesByIdEntry = { toJSON(message: SimpleWithSnakeCaseMap_EntitiesByIdEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -2145,11 +2228,14 @@ export const SimpleWithMapOfEnums = { toJSON(message: SimpleWithMapOfEnums): unknown { const obj: any = {}; - obj.enumsById = {}; if (message.enumsById) { - Object.entries(message.enumsById).forEach(([k, v]) => { - obj.enumsById[k] = stateEnumToJSON(v); - }); + const entries = Object.entries(message.enumsById); + if (entries.length > 0) { + obj.enumsById = {}; + entries.forEach(([k, v]) => { + obj.enumsById[k] = stateEnumToJSON(v); + }); + } } return obj; }, @@ -2229,8 +2315,12 @@ export const SimpleWithMapOfEnums_EnumsByIdEntry = { toJSON(message: SimpleWithMapOfEnums_EnumsByIdEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = stateEnumToJSON(message.value)); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== 0) { + obj.value = stateEnumToJSON(message.value); + } return obj; }, @@ -2293,7 +2383,9 @@ export const PingRequest = { toJSON(message: PingRequest): unknown { const obj: any = {}; - message.input !== undefined && (obj.input = message.input); + if (message.input !== "") { + obj.input = message.input; + } return obj; }, @@ -2349,7 +2441,9 @@ export const PingResponse = { toJSON(message: PingResponse): unknown { const obj: any = {}; - message.output !== undefined && (obj.output = message.output); + if (message.output !== "") { + obj.output = message.output; + } return obj; }, @@ -2541,18 +2635,42 @@ export const Numbers = { toJSON(message: Numbers): unknown { const obj: any = {}; - message.double !== undefined && (obj.double = message.double); - message.float !== undefined && (obj.float = message.float); - message.int32 !== undefined && (obj.int32 = Math.round(message.int32)); - message.int64 !== undefined && (obj.int64 = Math.round(message.int64)); - message.uint32 !== undefined && (obj.uint32 = Math.round(message.uint32)); - message.uint64 !== undefined && (obj.uint64 = Math.round(message.uint64)); - message.sint32 !== undefined && (obj.sint32 = Math.round(message.sint32)); - message.sint64 !== undefined && (obj.sint64 = Math.round(message.sint64)); - message.fixed32 !== undefined && (obj.fixed32 = Math.round(message.fixed32)); - message.fixed64 !== undefined && (obj.fixed64 = Math.round(message.fixed64)); - message.sfixed32 !== undefined && (obj.sfixed32 = Math.round(message.sfixed32)); - message.sfixed64 !== undefined && (obj.sfixed64 = Math.round(message.sfixed64)); + if (message.double !== 0) { + obj.double = message.double; + } + if (message.float !== 0) { + obj.float = message.float; + } + if (message.int32 !== 0) { + obj.int32 = Math.round(message.int32); + } + if (message.int64 !== 0) { + obj.int64 = Math.round(message.int64); + } + if (message.uint32 !== 0) { + obj.uint32 = Math.round(message.uint32); + } + if (message.uint64 !== 0) { + obj.uint64 = Math.round(message.uint64); + } + if (message.sint32 !== 0) { + obj.sint32 = Math.round(message.sint32); + } + if (message.sint64 !== 0) { + obj.sint64 = Math.round(message.sint64); + } + if (message.fixed32 !== 0) { + obj.fixed32 = Math.round(message.fixed32); + } + if (message.fixed64 !== 0) { + obj.fixed64 = Math.round(message.fixed64); + } + if (message.sfixed32 !== 0) { + obj.sfixed32 = Math.round(message.sfixed32); + } + if (message.sfixed64 !== 0) { + obj.sfixed64 = Math.round(message.sfixed64); + } return obj; }, @@ -2695,15 +2813,27 @@ export const SimpleButOptional = { toJSON(message: SimpleButOptional): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = Math.round(message.age)); - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); - message.child !== undefined && (obj.child = message.child ? Child.toJSON(message.child) : undefined); - message.state !== undefined && - (obj.state = message.state !== undefined ? stateEnumToJSON(message.state) : undefined); - message.thing !== undefined && (obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined); - message.birthday !== undefined && - (obj.birthday = message.birthday ? DateMessage.toJSON(message.birthday) : undefined); + if (message.name !== undefined) { + obj.name = message.name; + } + if (message.age !== undefined) { + obj.age = Math.round(message.age); + } + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } + if (message.child !== undefined) { + obj.child = message.child ? Child.toJSON(message.child) : undefined; + } + if (message.state !== undefined) { + obj.state = message.state !== undefined ? stateEnumToJSON(message.state) : undefined; + } + if (message.thing !== undefined) { + obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + } + if (message.birthday !== undefined) { + obj.birthday = message.birthday ? DateMessage.toJSON(message.birthday) : undefined; + } return obj; }, diff --git a/integration/simple-snake/google/protobuf/struct.ts b/integration/simple-snake/google/protobuf/struct.ts index 964c81de4..4176b896c 100644 --- a/integration/simple-snake/google/protobuf/struct.ts +++ b/integration/simple-snake/google/protobuf/struct.ts @@ -153,11 +153,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -252,8 +255,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -374,13 +381,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.null_value !== undefined && - (obj.null_value = message.null_value !== undefined ? nullValueToJSON(message.null_value) : undefined); - message.number_value !== undefined && (obj.number_value = message.number_value); - message.string_value !== undefined && (obj.string_value = message.string_value); - message.bool_value !== undefined && (obj.bool_value = message.bool_value); - message.struct_value !== undefined && (obj.struct_value = message.struct_value); - message.list_value !== undefined && (obj.list_value = message.list_value); + if (message.null_value !== undefined) { + obj.null_value = message.null_value !== undefined ? nullValueToJSON(message.null_value) : undefined; + } + if (message.number_value !== undefined) { + obj.number_value = message.number_value; + } + if (message.string_value !== undefined) { + obj.string_value = message.string_value; + } + if (message.bool_value !== undefined) { + obj.bool_value = message.bool_value; + } + if (message.struct_value !== undefined) { + obj.struct_value = message.struct_value; + } + if (message.list_value !== undefined) { + obj.list_value = message.list_value; + } return obj; }, @@ -478,10 +496,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/simple-snake/google/protobuf/timestamp.ts b/integration/simple-snake/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/simple-snake/google/protobuf/timestamp.ts +++ b/integration/simple-snake/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/simple-snake/google/protobuf/wrappers.ts b/integration/simple-snake/google/protobuf/wrappers.ts index 356be2144..0f8f714df 100644 --- a/integration/simple-snake/google/protobuf/wrappers.ts +++ b/integration/simple-snake/google/protobuf/wrappers.ts @@ -135,7 +135,9 @@ export const DoubleValue = { toJSON(message: DoubleValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -191,7 +193,9 @@ export const FloatValue = { toJSON(message: FloatValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -247,7 +251,9 @@ export const Int64Value = { toJSON(message: Int64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -303,7 +309,9 @@ export const UInt64Value = { toJSON(message: UInt64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -359,7 +367,9 @@ export const Int32Value = { toJSON(message: Int32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -415,7 +425,9 @@ export const UInt32Value = { toJSON(message: UInt32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -471,7 +483,9 @@ export const BoolValue = { toJSON(message: BoolValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value === true) { + obj.value = message.value; + } return obj; }, @@ -527,7 +541,9 @@ export const StringValue = { toJSON(message: StringValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -583,8 +599,9 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, diff --git a/integration/simple-snake/import_dir/thing.ts b/integration/simple-snake/import_dir/thing.ts index 41f9956ff..ea62d88a7 100644 --- a/integration/simple-snake/import_dir/thing.ts +++ b/integration/simple-snake/import_dir/thing.ts @@ -49,7 +49,9 @@ export const ImportedThing = { toJSON(message: ImportedThing): unknown { const obj: any = {}; - message.created_at !== undefined && (obj.created_at = message.created_at.toISOString()); + if (message.created_at !== undefined) { + obj.created_at = message.created_at.toISOString(); + } return obj; }, diff --git a/integration/simple-snake/simple.ts b/integration/simple-snake/simple.ts index f81351124..21275d25a 100644 --- a/integration/simple-snake/simple.ts +++ b/integration/simple-snake/simple.ts @@ -422,32 +422,36 @@ export const Simple = { toJSON(message: Simple): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = Math.round(message.age)); - message.created_at !== undefined && (obj.created_at = message.created_at.toISOString()); - message.child !== undefined && (obj.child = message.child ? Child.toJSON(message.child) : undefined); - message.state !== undefined && (obj.state = stateEnumToJSON(message.state)); - if (message.grand_children) { + if (message.name !== "") { + obj.name = message.name; + } + if (message.age !== 0) { + obj.age = Math.round(message.age); + } + if (message.created_at !== undefined) { + obj.created_at = message.created_at.toISOString(); + } + if (message.child !== undefined) { + obj.child = message.child ? Child.toJSON(message.child) : undefined; + } + if (message.state !== 0) { + obj.state = stateEnumToJSON(message.state); + } + if (message.grand_children?.length) { obj.grand_children = message.grand_children.map((e) => e ? Child.toJSON(e) : undefined); - } else { - obj.grand_children = []; } - if (message.coins) { + if (message.coins?.length) { obj.coins = message.coins.map((e) => Math.round(e)); - } else { - obj.coins = []; } - if (message.snacks) { + if (message.snacks?.length) { obj.snacks = message.snacks.map((e) => e); - } else { - obj.snacks = []; } - if (message.old_states) { + if (message.old_states?.length) { obj.old_states = message.old_states.map((e) => stateEnumToJSON(e)); - } else { - obj.old_states = []; } - message.thing !== undefined && (obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined); + if (message.thing !== undefined) { + obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + } return obj; }, @@ -527,8 +531,12 @@ export const Child = { toJSON(message: Child): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.type !== undefined && (obj.type = child_TypeToJSON(message.type)); + if (message.name !== "") { + obj.name = message.name; + } + if (message.type !== 0) { + obj.type = child_TypeToJSON(message.type); + } return obj; }, @@ -609,10 +617,15 @@ export const Nested = { toJSON(message: Nested): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.message !== undefined && - (obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined); - message.state !== undefined && (obj.state = nested_InnerEnumToJSON(message.state)); + if (message.name !== "") { + obj.name = message.name; + } + if (message.message !== undefined) { + obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined; + } + if (message.state !== 0) { + obj.state = nested_InnerEnumToJSON(message.state); + } return obj; }, @@ -685,9 +698,12 @@ export const Nested_InnerMessage = { toJSON(message: Nested_InnerMessage): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.deep !== undefined && - (obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined); + if (message.name !== "") { + obj.name = message.name; + } + if (message.deep !== undefined) { + obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined; + } return obj; }, @@ -746,7 +762,9 @@ export const Nested_InnerMessage_DeepMessage = { toJSON(message: Nested_InnerMessage_DeepMessage): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); + if (message.name !== "") { + obj.name = message.name; + } return obj; }, @@ -817,8 +835,12 @@ export const OneOfMessage = { toJSON(message: OneOfMessage): unknown { const obj: any = {}; - message.first !== undefined && (obj.first = message.first); - message.last !== undefined && (obj.last = message.last); + if (message.first !== undefined) { + obj.first = message.first; + } + if (message.last !== undefined) { + obj.last = message.last; + } return obj; }, @@ -921,18 +943,20 @@ export const SimpleWithWrappers = { toJSON(message: SimpleWithWrappers): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = message.age); - message.enabled !== undefined && (obj.enabled = message.enabled); - if (message.coins) { + if (message.name !== undefined) { + obj.name = message.name; + } + if (message.age !== undefined) { + obj.age = message.age; + } + if (message.enabled !== undefined) { + obj.enabled = message.enabled; + } + if (message.coins?.length) { obj.coins = message.coins.map((e) => e); - } else { - obj.coins = []; } - if (message.snacks) { + if (message.snacks?.length) { obj.snacks = message.snacks.map((e) => e); - } else { - obj.snacks = []; } return obj; }, @@ -993,7 +1017,9 @@ export const Entity = { toJSON(message: Entity): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); + if (message.id !== 0) { + obj.id = Math.round(message.id); + } return obj; }, @@ -1097,23 +1123,32 @@ export const SimpleWithMap = { toJSON(message: SimpleWithMap): unknown { const obj: any = {}; - obj.entitiesById = {}; if (message.entitiesById) { - Object.entries(message.entitiesById).forEach(([k, v]) => { - obj.entitiesById[k] = Entity.toJSON(v); - }); + const entries = Object.entries(message.entitiesById); + if (entries.length > 0) { + obj.entitiesById = {}; + entries.forEach(([k, v]) => { + obj.entitiesById[k] = Entity.toJSON(v); + }); + } } - obj.nameLookup = {}; if (message.nameLookup) { - Object.entries(message.nameLookup).forEach(([k, v]) => { - obj.nameLookup[k] = v; - }); + const entries = Object.entries(message.nameLookup); + if (entries.length > 0) { + obj.nameLookup = {}; + entries.forEach(([k, v]) => { + obj.nameLookup[k] = v; + }); + } } - obj.intLookup = {}; if (message.intLookup) { - Object.entries(message.intLookup).forEach(([k, v]) => { - obj.intLookup[k] = Math.round(v); - }); + const entries = Object.entries(message.intLookup); + if (entries.length > 0) { + obj.intLookup = {}; + entries.forEach(([k, v]) => { + obj.intLookup[k] = Math.round(v); + }); + } } return obj; }, @@ -1209,8 +1244,12 @@ export const SimpleWithMap_EntitiesByIdEntry = { toJSON(message: SimpleWithMap_EntitiesByIdEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -1281,8 +1320,12 @@ export const SimpleWithMap_NameLookupEntry = { toJSON(message: SimpleWithMap_NameLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -1351,8 +1394,12 @@ export const SimpleWithMap_IntLookupEntry = { toJSON(message: SimpleWithMap_IntLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -1419,11 +1466,14 @@ export const SimpleWithSnakeCaseMap = { toJSON(message: SimpleWithSnakeCaseMap): unknown { const obj: any = {}; - obj.entities_by_id = {}; if (message.entities_by_id) { - Object.entries(message.entities_by_id).forEach(([k, v]) => { - obj.entities_by_id[k] = Entity.toJSON(v); - }); + const entries = Object.entries(message.entities_by_id); + if (entries.length > 0) { + obj.entities_by_id = {}; + entries.forEach(([k, v]) => { + obj.entities_by_id[k] = Entity.toJSON(v); + }); + } } return obj; }, @@ -1501,8 +1551,12 @@ export const SimpleWithSnakeCaseMap_EntitiesByIdEntry = { toJSON(message: SimpleWithSnakeCaseMap_EntitiesByIdEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -1565,7 +1619,9 @@ export const PingRequest = { toJSON(message: PingRequest): unknown { const obj: any = {}; - message.input !== undefined && (obj.input = message.input); + if (message.input !== "") { + obj.input = message.input; + } return obj; }, @@ -1621,7 +1677,9 @@ export const PingResponse = { toJSON(message: PingResponse): unknown { const obj: any = {}; - message.output !== undefined && (obj.output = message.output); + if (message.output !== "") { + obj.output = message.output; + } return obj; }, @@ -1813,18 +1871,42 @@ export const Numbers = { toJSON(message: Numbers): unknown { const obj: any = {}; - message.double !== undefined && (obj.double = message.double); - message.float !== undefined && (obj.float = message.float); - message.int32 !== undefined && (obj.int32 = Math.round(message.int32)); - message.int64 !== undefined && (obj.int64 = Math.round(message.int64)); - message.uint32 !== undefined && (obj.uint32 = Math.round(message.uint32)); - message.uint64 !== undefined && (obj.uint64 = Math.round(message.uint64)); - message.sint32 !== undefined && (obj.sint32 = Math.round(message.sint32)); - message.sint64 !== undefined && (obj.sint64 = Math.round(message.sint64)); - message.fixed32 !== undefined && (obj.fixed32 = Math.round(message.fixed32)); - message.fixed64 !== undefined && (obj.fixed64 = Math.round(message.fixed64)); - message.sfixed32 !== undefined && (obj.sfixed32 = Math.round(message.sfixed32)); - message.sfixed64 !== undefined && (obj.sfixed64 = Math.round(message.sfixed64)); + if (message.double !== 0) { + obj.double = message.double; + } + if (message.float !== 0) { + obj.float = message.float; + } + if (message.int32 !== 0) { + obj.int32 = Math.round(message.int32); + } + if (message.int64 !== 0) { + obj.int64 = Math.round(message.int64); + } + if (message.uint32 !== 0) { + obj.uint32 = Math.round(message.uint32); + } + if (message.uint64 !== 0) { + obj.uint64 = Math.round(message.uint64); + } + if (message.sint32 !== 0) { + obj.sint32 = Math.round(message.sint32); + } + if (message.sint64 !== 0) { + obj.sint64 = Math.round(message.sint64); + } + if (message.fixed32 !== 0) { + obj.fixed32 = Math.round(message.fixed32); + } + if (message.fixed64 !== 0) { + obj.fixed64 = Math.round(message.fixed64); + } + if (message.sfixed32 !== 0) { + obj.sfixed32 = Math.round(message.sfixed32); + } + if (message.sfixed64 !== 0) { + obj.sfixed64 = Math.round(message.sfixed64); + } return obj; }, @@ -1891,7 +1973,9 @@ export const SimpleStruct = { toJSON(message: SimpleStruct): unknown { const obj: any = {}; - message.simple_struct !== undefined && (obj.simple_struct = message.simple_struct); + if (message.simple_struct !== undefined) { + obj.simple_struct = message.simple_struct; + } return obj; }, diff --git a/integration/simple-string-enums/google/protobuf/struct.ts b/integration/simple-string-enums/google/protobuf/struct.ts index 3a596a8a6..a7240a875 100644 --- a/integration/simple-string-enums/google/protobuf/struct.ts +++ b/integration/simple-string-enums/google/protobuf/struct.ts @@ -163,11 +163,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -262,8 +265,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -384,13 +391,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.nullValue !== undefined && - (obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined); - message.numberValue !== undefined && (obj.numberValue = message.numberValue); - message.stringValue !== undefined && (obj.stringValue = message.stringValue); - message.boolValue !== undefined && (obj.boolValue = message.boolValue); - message.structValue !== undefined && (obj.structValue = message.structValue); - message.listValue !== undefined && (obj.listValue = message.listValue); + if (message.nullValue !== undefined) { + obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + } + if (message.numberValue !== undefined) { + obj.numberValue = message.numberValue; + } + if (message.stringValue !== undefined) { + obj.stringValue = message.stringValue; + } + if (message.boolValue !== undefined) { + obj.boolValue = message.boolValue; + } + if (message.structValue !== undefined) { + obj.structValue = message.structValue; + } + if (message.listValue !== undefined) { + obj.listValue = message.listValue; + } return obj; }, @@ -488,10 +506,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/simple-string-enums/simple.ts b/integration/simple-string-enums/simple.ts index 69fa78aa4..05a4259c8 100644 --- a/integration/simple-string-enums/simple.ts +++ b/integration/simple-string-enums/simple.ts @@ -177,19 +177,26 @@ export const Simple = { toJSON(message: Simple): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.state !== undefined && (obj.state = stateEnumToJSON(message.state)); - if (message.states) { + if (message.name !== "") { + obj.name = message.name; + } + if (message.state !== StateEnum.UNKNOWN) { + obj.state = stateEnumToJSON(message.state); + } + if (message.states?.length) { obj.states = message.states.map((e) => stateEnumToJSON(e)); - } else { - obj.states = []; } - message.nullValue !== undefined && (obj.nullValue = nullValueToJSON(message.nullValue)); - obj.stateMap = {}; + if (message.nullValue !== NullValue.NULL_VALUE) { + obj.nullValue = nullValueToJSON(message.nullValue); + } if (message.stateMap) { - Object.entries(message.stateMap).forEach(([k, v]) => { - obj.stateMap[k] = stateEnumToJSON(v); - }); + const entries = Object.entries(message.stateMap); + if (entries.length > 0) { + obj.stateMap = {}; + entries.forEach(([k, v]) => { + obj.stateMap[k] = stateEnumToJSON(v); + }); + } } return obj; }, @@ -271,8 +278,12 @@ export const Simple_StateMapEntry = { toJSON(message: Simple_StateMapEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = stateEnumToJSON(message.value)); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== StateEnum.UNKNOWN) { + obj.value = stateEnumToJSON(message.value); + } return obj; }, diff --git a/integration/simple-unrecognized-enum/google/protobuf/timestamp.ts b/integration/simple-unrecognized-enum/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/simple-unrecognized-enum/google/protobuf/timestamp.ts +++ b/integration/simple-unrecognized-enum/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/simple-unrecognized-enum/google/protobuf/wrappers.ts b/integration/simple-unrecognized-enum/google/protobuf/wrappers.ts index 356be2144..0f8f714df 100644 --- a/integration/simple-unrecognized-enum/google/protobuf/wrappers.ts +++ b/integration/simple-unrecognized-enum/google/protobuf/wrappers.ts @@ -135,7 +135,9 @@ export const DoubleValue = { toJSON(message: DoubleValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -191,7 +193,9 @@ export const FloatValue = { toJSON(message: FloatValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -247,7 +251,9 @@ export const Int64Value = { toJSON(message: Int64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -303,7 +309,9 @@ export const UInt64Value = { toJSON(message: UInt64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -359,7 +367,9 @@ export const Int32Value = { toJSON(message: Int32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -415,7 +425,9 @@ export const UInt32Value = { toJSON(message: UInt32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -471,7 +483,9 @@ export const BoolValue = { toJSON(message: BoolValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value === true) { + obj.value = message.value; + } return obj; }, @@ -527,7 +541,9 @@ export const StringValue = { toJSON(message: StringValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -583,8 +599,9 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, diff --git a/integration/simple-unrecognized-enum/import_dir/thing.ts b/integration/simple-unrecognized-enum/import_dir/thing.ts index e4da9890f..4fe4bb1a2 100644 --- a/integration/simple-unrecognized-enum/import_dir/thing.ts +++ b/integration/simple-unrecognized-enum/import_dir/thing.ts @@ -49,7 +49,9 @@ export const ImportedThing = { toJSON(message: ImportedThing): unknown { const obj: any = {}; - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } return obj; }, diff --git a/integration/simple-unrecognized-enum/simple.ts b/integration/simple-unrecognized-enum/simple.ts index bf8f3c9ec..1110c349f 100644 --- a/integration/simple-unrecognized-enum/simple.ts +++ b/integration/simple-unrecognized-enum/simple.ts @@ -405,32 +405,36 @@ export const Simple = { toJSON(message: Simple): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = Math.round(message.age)); - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); - message.child !== undefined && (obj.child = message.child ? Child.toJSON(message.child) : undefined); - message.state !== undefined && (obj.state = stateEnumToJSON(message.state)); - if (message.grandChildren) { + if (message.name !== "") { + obj.name = message.name; + } + if (message.age !== 0) { + obj.age = Math.round(message.age); + } + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } + if (message.child !== undefined) { + obj.child = message.child ? Child.toJSON(message.child) : undefined; + } + if (message.state !== 0) { + obj.state = stateEnumToJSON(message.state); + } + if (message.grandChildren?.length) { obj.grandChildren = message.grandChildren.map((e) => e ? Child.toJSON(e) : undefined); - } else { - obj.grandChildren = []; } - if (message.coins) { + if (message.coins?.length) { obj.coins = message.coins.map((e) => Math.round(e)); - } else { - obj.coins = []; } - if (message.snacks) { + if (message.snacks?.length) { obj.snacks = message.snacks.map((e) => e); - } else { - obj.snacks = []; } - if (message.oldStates) { + if (message.oldStates?.length) { obj.oldStates = message.oldStates.map((e) => stateEnumToJSON(e)); - } else { - obj.oldStates = []; } - message.thing !== undefined && (obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined); + if (message.thing !== undefined) { + obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + } return obj; }, @@ -510,8 +514,12 @@ export const Child = { toJSON(message: Child): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.type !== undefined && (obj.type = child_TypeToJSON(message.type)); + if (message.name !== "") { + obj.name = message.name; + } + if (message.type !== 0) { + obj.type = child_TypeToJSON(message.type); + } return obj; }, @@ -592,10 +600,15 @@ export const Nested = { toJSON(message: Nested): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.message !== undefined && - (obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined); - message.state !== undefined && (obj.state = nested_InnerEnumToJSON(message.state)); + if (message.name !== "") { + obj.name = message.name; + } + if (message.message !== undefined) { + obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined; + } + if (message.state !== 0) { + obj.state = nested_InnerEnumToJSON(message.state); + } return obj; }, @@ -668,9 +681,12 @@ export const Nested_InnerMessage = { toJSON(message: Nested_InnerMessage): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.deep !== undefined && - (obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined); + if (message.name !== "") { + obj.name = message.name; + } + if (message.deep !== undefined) { + obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined; + } return obj; }, @@ -729,7 +745,9 @@ export const Nested_InnerMessage_DeepMessage = { toJSON(message: Nested_InnerMessage_DeepMessage): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); + if (message.name !== "") { + obj.name = message.name; + } return obj; }, @@ -800,8 +818,12 @@ export const OneOfMessage = { toJSON(message: OneOfMessage): unknown { const obj: any = {}; - message.first !== undefined && (obj.first = message.first); - message.last !== undefined && (obj.last = message.last); + if (message.first !== undefined) { + obj.first = message.first; + } + if (message.last !== undefined) { + obj.last = message.last; + } return obj; }, @@ -904,18 +926,20 @@ export const SimpleWithWrappers = { toJSON(message: SimpleWithWrappers): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = message.age); - message.enabled !== undefined && (obj.enabled = message.enabled); - if (message.coins) { + if (message.name !== undefined) { + obj.name = message.name; + } + if (message.age !== undefined) { + obj.age = message.age; + } + if (message.enabled !== undefined) { + obj.enabled = message.enabled; + } + if (message.coins?.length) { obj.coins = message.coins.map((e) => e); - } else { - obj.coins = []; } - if (message.snacks) { + if (message.snacks?.length) { obj.snacks = message.snacks.map((e) => e); - } else { - obj.snacks = []; } return obj; }, @@ -976,7 +1000,9 @@ export const Entity = { toJSON(message: Entity): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); + if (message.id !== 0) { + obj.id = Math.round(message.id); + } return obj; }, @@ -1080,23 +1106,32 @@ export const SimpleWithMap = { toJSON(message: SimpleWithMap): unknown { const obj: any = {}; - obj.entitiesById = {}; if (message.entitiesById) { - Object.entries(message.entitiesById).forEach(([k, v]) => { - obj.entitiesById[k] = Entity.toJSON(v); - }); + const entries = Object.entries(message.entitiesById); + if (entries.length > 0) { + obj.entitiesById = {}; + entries.forEach(([k, v]) => { + obj.entitiesById[k] = Entity.toJSON(v); + }); + } } - obj.nameLookup = {}; if (message.nameLookup) { - Object.entries(message.nameLookup).forEach(([k, v]) => { - obj.nameLookup[k] = v; - }); + const entries = Object.entries(message.nameLookup); + if (entries.length > 0) { + obj.nameLookup = {}; + entries.forEach(([k, v]) => { + obj.nameLookup[k] = v; + }); + } } - obj.intLookup = {}; if (message.intLookup) { - Object.entries(message.intLookup).forEach(([k, v]) => { - obj.intLookup[k] = Math.round(v); - }); + const entries = Object.entries(message.intLookup); + if (entries.length > 0) { + obj.intLookup = {}; + entries.forEach(([k, v]) => { + obj.intLookup[k] = Math.round(v); + }); + } } return obj; }, @@ -1192,8 +1227,12 @@ export const SimpleWithMap_EntitiesByIdEntry = { toJSON(message: SimpleWithMap_EntitiesByIdEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -1264,8 +1303,12 @@ export const SimpleWithMap_NameLookupEntry = { toJSON(message: SimpleWithMap_NameLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -1334,8 +1377,12 @@ export const SimpleWithMap_IntLookupEntry = { toJSON(message: SimpleWithMap_IntLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -1402,11 +1449,14 @@ export const SimpleWithSnakeCaseMap = { toJSON(message: SimpleWithSnakeCaseMap): unknown { const obj: any = {}; - obj.entitiesById = {}; if (message.entitiesById) { - Object.entries(message.entitiesById).forEach(([k, v]) => { - obj.entitiesById[k] = Entity.toJSON(v); - }); + const entries = Object.entries(message.entitiesById); + if (entries.length > 0) { + obj.entitiesById = {}; + entries.forEach(([k, v]) => { + obj.entitiesById[k] = Entity.toJSON(v); + }); + } } return obj; }, @@ -1484,8 +1534,12 @@ export const SimpleWithSnakeCaseMap_EntitiesByIdEntry = { toJSON(message: SimpleWithSnakeCaseMap_EntitiesByIdEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -1548,7 +1602,9 @@ export const PingRequest = { toJSON(message: PingRequest): unknown { const obj: any = {}; - message.input !== undefined && (obj.input = message.input); + if (message.input !== "") { + obj.input = message.input; + } return obj; }, @@ -1604,7 +1660,9 @@ export const PingResponse = { toJSON(message: PingResponse): unknown { const obj: any = {}; - message.output !== undefined && (obj.output = message.output); + if (message.output !== "") { + obj.output = message.output; + } return obj; }, @@ -1796,18 +1854,42 @@ export const Numbers = { toJSON(message: Numbers): unknown { const obj: any = {}; - message.double !== undefined && (obj.double = message.double); - message.float !== undefined && (obj.float = message.float); - message.int32 !== undefined && (obj.int32 = Math.round(message.int32)); - message.int64 !== undefined && (obj.int64 = Math.round(message.int64)); - message.uint32 !== undefined && (obj.uint32 = Math.round(message.uint32)); - message.uint64 !== undefined && (obj.uint64 = Math.round(message.uint64)); - message.sint32 !== undefined && (obj.sint32 = Math.round(message.sint32)); - message.sint64 !== undefined && (obj.sint64 = Math.round(message.sint64)); - message.fixed32 !== undefined && (obj.fixed32 = Math.round(message.fixed32)); - message.fixed64 !== undefined && (obj.fixed64 = Math.round(message.fixed64)); - message.sfixed32 !== undefined && (obj.sfixed32 = Math.round(message.sfixed32)); - message.sfixed64 !== undefined && (obj.sfixed64 = Math.round(message.sfixed64)); + if (message.double !== 0) { + obj.double = message.double; + } + if (message.float !== 0) { + obj.float = message.float; + } + if (message.int32 !== 0) { + obj.int32 = Math.round(message.int32); + } + if (message.int64 !== 0) { + obj.int64 = Math.round(message.int64); + } + if (message.uint32 !== 0) { + obj.uint32 = Math.round(message.uint32); + } + if (message.uint64 !== 0) { + obj.uint64 = Math.round(message.uint64); + } + if (message.sint32 !== 0) { + obj.sint32 = Math.round(message.sint32); + } + if (message.sint64 !== 0) { + obj.sint64 = Math.round(message.sint64); + } + if (message.fixed32 !== 0) { + obj.fixed32 = Math.round(message.fixed32); + } + if (message.fixed64 !== 0) { + obj.fixed64 = Math.round(message.fixed64); + } + if (message.sfixed32 !== 0) { + obj.sfixed32 = Math.round(message.sfixed32); + } + if (message.sfixed64 !== 0) { + obj.sfixed64 = Math.round(message.sfixed64); + } return obj; }, diff --git a/integration/simple/google/protobuf/timestamp.ts b/integration/simple/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/simple/google/protobuf/timestamp.ts +++ b/integration/simple/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/simple/google/protobuf/wrappers.ts b/integration/simple/google/protobuf/wrappers.ts index 356be2144..0f8f714df 100644 --- a/integration/simple/google/protobuf/wrappers.ts +++ b/integration/simple/google/protobuf/wrappers.ts @@ -135,7 +135,9 @@ export const DoubleValue = { toJSON(message: DoubleValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -191,7 +193,9 @@ export const FloatValue = { toJSON(message: FloatValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -247,7 +251,9 @@ export const Int64Value = { toJSON(message: Int64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -303,7 +309,9 @@ export const UInt64Value = { toJSON(message: UInt64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -359,7 +367,9 @@ export const Int32Value = { toJSON(message: Int32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -415,7 +425,9 @@ export const UInt32Value = { toJSON(message: UInt32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -471,7 +483,9 @@ export const BoolValue = { toJSON(message: BoolValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value === true) { + obj.value = message.value; + } return obj; }, @@ -527,7 +541,9 @@ export const StringValue = { toJSON(message: StringValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -583,8 +599,9 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, diff --git a/integration/simple/google/type/date.ts b/integration/simple/google/type/date.ts index a6be1883a..055208cca 100644 --- a/integration/simple/google/type/date.ts +++ b/integration/simple/google/type/date.ts @@ -99,9 +99,15 @@ export const DateMessage = { toJSON(message: DateMessage): unknown { const obj: any = {}; - message.year !== undefined && (obj.year = Math.round(message.year)); - message.month !== undefined && (obj.month = Math.round(message.month)); - message.day !== undefined && (obj.day = Math.round(message.day)); + if (message.year !== 0) { + obj.year = Math.round(message.year); + } + if (message.month !== 0) { + obj.month = Math.round(message.month); + } + if (message.day !== 0) { + obj.day = Math.round(message.day); + } return obj; }, diff --git a/integration/simple/import_dir/thing.ts b/integration/simple/import_dir/thing.ts index e4da9890f..4fe4bb1a2 100644 --- a/integration/simple/import_dir/thing.ts +++ b/integration/simple/import_dir/thing.ts @@ -49,7 +49,9 @@ export const ImportedThing = { toJSON(message: ImportedThing): unknown { const obj: any = {}; - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } return obj; }, diff --git a/integration/simple/simple.ts b/integration/simple/simple.ts index 3a599c337..1ba3fd9db 100644 --- a/integration/simple/simple.ts +++ b/integration/simple/simple.ts @@ -528,42 +528,48 @@ export const Simple = { toJSON(message: Simple): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = Math.round(message.age)); - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); - message.child !== undefined && (obj.child = message.child ? Child.toJSON(message.child) : undefined); - message.state !== undefined && (obj.state = stateEnumToJSON(message.state)); - if (message.grandChildren) { + if (message.name !== "") { + obj.name = message.name; + } + if (message.age !== 0) { + obj.age = Math.round(message.age); + } + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } + if (message.child !== undefined) { + obj.child = message.child ? Child.toJSON(message.child) : undefined; + } + if (message.state !== 0) { + obj.state = stateEnumToJSON(message.state); + } + if (message.grandChildren?.length) { obj.grandChildren = message.grandChildren.map((e) => e ? Child.toJSON(e) : undefined); - } else { - obj.grandChildren = []; } - if (message.coins) { + if (message.coins?.length) { obj.coins = message.coins.map((e) => Math.round(e)); - } else { - obj.coins = []; } - if (message.snacks) { + if (message.snacks?.length) { obj.snacks = message.snacks.map((e) => e); - } else { - obj.snacks = []; } - if (message.oldStates) { + if (message.oldStates?.length) { obj.oldStates = message.oldStates.map((e) => stateEnumToJSON(e)); - } else { - obj.oldStates = []; } - message.thing !== undefined && (obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined); - if (message.blobs) { + if (message.thing !== undefined) { + obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + } + if (message.blobs?.length) { obj.blobs = message.blobs.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array(0))); - } else { - obj.blobs = []; - } - message.birthday !== undefined && - (obj.birthday = message.birthday ? DateMessage.toJSON(message.birthday) : undefined); - message.blob !== undefined && - (obj.blob = base64FromBytes(message.blob !== undefined ? message.blob : new Uint8Array(0))); - message.enabled !== undefined && (obj.enabled = message.enabled); + } + if (message.birthday !== undefined) { + obj.birthday = message.birthday ? DateMessage.toJSON(message.birthday) : undefined; + } + if (message.blob.length !== 0) { + obj.blob = base64FromBytes(message.blob !== undefined ? message.blob : new Uint8Array(0)); + } + if (message.enabled === true) { + obj.enabled = message.enabled; + } return obj; }, @@ -649,8 +655,12 @@ export const Child = { toJSON(message: Child): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.type !== undefined && (obj.type = child_TypeToJSON(message.type)); + if (message.name !== "") { + obj.name = message.name; + } + if (message.type !== 0) { + obj.type = child_TypeToJSON(message.type); + } return obj; }, @@ -731,10 +741,15 @@ export const Nested = { toJSON(message: Nested): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.message !== undefined && - (obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined); - message.state !== undefined && (obj.state = nested_InnerEnumToJSON(message.state)); + if (message.name !== "") { + obj.name = message.name; + } + if (message.message !== undefined) { + obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined; + } + if (message.state !== 0) { + obj.state = nested_InnerEnumToJSON(message.state); + } return obj; }, @@ -807,9 +822,12 @@ export const Nested_InnerMessage = { toJSON(message: Nested_InnerMessage): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.deep !== undefined && - (obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined); + if (message.name !== "") { + obj.name = message.name; + } + if (message.deep !== undefined) { + obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined; + } return obj; }, @@ -868,7 +886,9 @@ export const Nested_InnerMessage_DeepMessage = { toJSON(message: Nested_InnerMessage_DeepMessage): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); + if (message.name !== "") { + obj.name = message.name; + } return obj; }, @@ -939,8 +959,12 @@ export const OneOfMessage = { toJSON(message: OneOfMessage): unknown { const obj: any = {}; - message.first !== undefined && (obj.first = message.first); - message.last !== undefined && (obj.last = message.last); + if (message.first !== undefined) { + obj.first = message.first; + } + if (message.last !== undefined) { + obj.last = message.last; + } return obj; }, @@ -1054,20 +1078,24 @@ export const SimpleWithWrappers = { toJSON(message: SimpleWithWrappers): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = message.age); - message.enabled !== undefined && (obj.enabled = message.enabled); - if (message.coins) { + if (message.name !== undefined) { + obj.name = message.name; + } + if (message.age !== undefined) { + obj.age = message.age; + } + if (message.enabled !== undefined) { + obj.enabled = message.enabled; + } + if (message.coins?.length) { obj.coins = message.coins.map((e) => e); - } else { - obj.coins = []; } - if (message.snacks) { + if (message.snacks?.length) { obj.snacks = message.snacks.map((e) => e); - } else { - obj.snacks = []; } - message.id !== undefined && (obj.id = message.id); + if (message.id !== undefined) { + obj.id = message.id; + } return obj; }, @@ -1128,7 +1156,9 @@ export const Entity = { toJSON(message: Entity): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); + if (message.id !== 0) { + obj.id = Math.round(message.id); + } return obj; }, @@ -1321,47 +1351,68 @@ export const SimpleWithMap = { toJSON(message: SimpleWithMap): unknown { const obj: any = {}; - obj.entitiesById = {}; if (message.entitiesById) { - Object.entries(message.entitiesById).forEach(([k, v]) => { - obj.entitiesById[k] = Entity.toJSON(v); - }); + const entries = Object.entries(message.entitiesById); + if (entries.length > 0) { + obj.entitiesById = {}; + entries.forEach(([k, v]) => { + obj.entitiesById[k] = Entity.toJSON(v); + }); + } } - obj.nameLookup = {}; if (message.nameLookup) { - Object.entries(message.nameLookup).forEach(([k, v]) => { - obj.nameLookup[k] = v; - }); + const entries = Object.entries(message.nameLookup); + if (entries.length > 0) { + obj.nameLookup = {}; + entries.forEach(([k, v]) => { + obj.nameLookup[k] = v; + }); + } } - obj.intLookup = {}; if (message.intLookup) { - Object.entries(message.intLookup).forEach(([k, v]) => { - obj.intLookup[k] = Math.round(v); - }); + const entries = Object.entries(message.intLookup); + if (entries.length > 0) { + obj.intLookup = {}; + entries.forEach(([k, v]) => { + obj.intLookup[k] = Math.round(v); + }); + } } - obj.mapOfTimestamps = {}; if (message.mapOfTimestamps) { - Object.entries(message.mapOfTimestamps).forEach(([k, v]) => { - obj.mapOfTimestamps[k] = v.toISOString(); - }); + const entries = Object.entries(message.mapOfTimestamps); + if (entries.length > 0) { + obj.mapOfTimestamps = {}; + entries.forEach(([k, v]) => { + obj.mapOfTimestamps[k] = v.toISOString(); + }); + } } - obj.mapOfBytes = {}; if (message.mapOfBytes) { - Object.entries(message.mapOfBytes).forEach(([k, v]) => { - obj.mapOfBytes[k] = base64FromBytes(v); - }); + const entries = Object.entries(message.mapOfBytes); + if (entries.length > 0) { + obj.mapOfBytes = {}; + entries.forEach(([k, v]) => { + obj.mapOfBytes[k] = base64FromBytes(v); + }); + } } - obj.mapOfStringValues = {}; if (message.mapOfStringValues) { - Object.entries(message.mapOfStringValues).forEach(([k, v]) => { - obj.mapOfStringValues[k] = v; - }); + const entries = Object.entries(message.mapOfStringValues); + if (entries.length > 0) { + obj.mapOfStringValues = {}; + entries.forEach(([k, v]) => { + obj.mapOfStringValues[k] = v; + }); + } } - obj.longLookup = {}; if (message.longLookup) { - Object.entries(message.longLookup).forEach(([k, v]) => { - obj.longLookup[k] = Math.round(v); - }); + const entries = Object.entries(message.longLookup); + if (entries.length > 0) { + obj.longLookup = {}; + entries.forEach(([k, v]) => { + obj.longLookup[k] = Math.round(v); + }); + } } return obj; }, @@ -1492,8 +1543,12 @@ export const SimpleWithMap_EntitiesByIdEntry = { toJSON(message: SimpleWithMap_EntitiesByIdEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -1564,8 +1619,12 @@ export const SimpleWithMap_NameLookupEntry = { toJSON(message: SimpleWithMap_NameLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -1634,8 +1693,12 @@ export const SimpleWithMap_IntLookupEntry = { toJSON(message: SimpleWithMap_IntLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -1705,8 +1768,12 @@ export const SimpleWithMap_MapOfTimestampsEntry = { toJSON(message: SimpleWithMap_MapOfTimestampsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value.toISOString()); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value.toISOString(); + } return obj; }, @@ -1780,9 +1847,12 @@ export const SimpleWithMap_MapOfBytesEntry = { toJSON(message: SimpleWithMap_MapOfBytesEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, @@ -1854,8 +1924,12 @@ export const SimpleWithMap_MapOfStringValuesEntry = { toJSON(message: SimpleWithMap_MapOfStringValuesEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -1926,8 +2000,12 @@ export const SimpleWithMap_LongLookupEntry = { toJSON(message: SimpleWithMap_LongLookupEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -1996,11 +2074,14 @@ export const SimpleWithSnakeCaseMap = { toJSON(message: SimpleWithSnakeCaseMap): unknown { const obj: any = {}; - obj.entitiesById = {}; if (message.entitiesById) { - Object.entries(message.entitiesById).forEach(([k, v]) => { - obj.entitiesById[k] = Entity.toJSON(v); - }); + const entries = Object.entries(message.entitiesById); + if (entries.length > 0) { + obj.entitiesById = {}; + entries.forEach(([k, v]) => { + obj.entitiesById[k] = Entity.toJSON(v); + }); + } } return obj; }, @@ -2078,8 +2159,12 @@ export const SimpleWithSnakeCaseMap_EntitiesByIdEntry = { toJSON(message: SimpleWithSnakeCaseMap_EntitiesByIdEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -2152,11 +2237,14 @@ export const SimpleWithMapOfEnums = { toJSON(message: SimpleWithMapOfEnums): unknown { const obj: any = {}; - obj.enumsById = {}; if (message.enumsById) { - Object.entries(message.enumsById).forEach(([k, v]) => { - obj.enumsById[k] = stateEnumToJSON(v); - }); + const entries = Object.entries(message.enumsById); + if (entries.length > 0) { + obj.enumsById = {}; + entries.forEach(([k, v]) => { + obj.enumsById[k] = stateEnumToJSON(v); + }); + } } return obj; }, @@ -2234,8 +2322,12 @@ export const SimpleWithMapOfEnums_EnumsByIdEntry = { toJSON(message: SimpleWithMapOfEnums_EnumsByIdEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = stateEnumToJSON(message.value)); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== 0) { + obj.value = stateEnumToJSON(message.value); + } return obj; }, @@ -2296,7 +2388,9 @@ export const PingRequest = { toJSON(message: PingRequest): unknown { const obj: any = {}; - message.input !== undefined && (obj.input = message.input); + if (message.input !== "") { + obj.input = message.input; + } return obj; }, @@ -2352,7 +2446,9 @@ export const PingResponse = { toJSON(message: PingResponse): unknown { const obj: any = {}; - message.output !== undefined && (obj.output = message.output); + if (message.output !== "") { + obj.output = message.output; + } return obj; }, @@ -2544,18 +2640,42 @@ export const Numbers = { toJSON(message: Numbers): unknown { const obj: any = {}; - message.double !== undefined && (obj.double = message.double); - message.float !== undefined && (obj.float = message.float); - message.int32 !== undefined && (obj.int32 = Math.round(message.int32)); - message.int64 !== undefined && (obj.int64 = Math.round(message.int64)); - message.uint32 !== undefined && (obj.uint32 = Math.round(message.uint32)); - message.uint64 !== undefined && (obj.uint64 = Math.round(message.uint64)); - message.sint32 !== undefined && (obj.sint32 = Math.round(message.sint32)); - message.sint64 !== undefined && (obj.sint64 = Math.round(message.sint64)); - message.fixed32 !== undefined && (obj.fixed32 = Math.round(message.fixed32)); - message.fixed64 !== undefined && (obj.fixed64 = Math.round(message.fixed64)); - message.sfixed32 !== undefined && (obj.sfixed32 = Math.round(message.sfixed32)); - message.sfixed64 !== undefined && (obj.sfixed64 = Math.round(message.sfixed64)); + if (message.double !== 0) { + obj.double = message.double; + } + if (message.float !== 0) { + obj.float = message.float; + } + if (message.int32 !== 0) { + obj.int32 = Math.round(message.int32); + } + if (message.int64 !== 0) { + obj.int64 = Math.round(message.int64); + } + if (message.uint32 !== 0) { + obj.uint32 = Math.round(message.uint32); + } + if (message.uint64 !== 0) { + obj.uint64 = Math.round(message.uint64); + } + if (message.sint32 !== 0) { + obj.sint32 = Math.round(message.sint32); + } + if (message.sint64 !== 0) { + obj.sint64 = Math.round(message.sint64); + } + if (message.fixed32 !== 0) { + obj.fixed32 = Math.round(message.fixed32); + } + if (message.fixed64 !== 0) { + obj.fixed64 = Math.round(message.fixed64); + } + if (message.sfixed32 !== 0) { + obj.sfixed32 = Math.round(message.sfixed32); + } + if (message.sfixed64 !== 0) { + obj.sfixed64 = Math.round(message.sfixed64); + } return obj; }, @@ -2698,15 +2818,27 @@ export const SimpleButOptional = { toJSON(message: SimpleButOptional): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.age !== undefined && (obj.age = Math.round(message.age)); - message.createdAt !== undefined && (obj.createdAt = message.createdAt.toISOString()); - message.child !== undefined && (obj.child = message.child ? Child.toJSON(message.child) : undefined); - message.state !== undefined && - (obj.state = message.state !== undefined ? stateEnumToJSON(message.state) : undefined); - message.thing !== undefined && (obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined); - message.birthday !== undefined && - (obj.birthday = message.birthday ? DateMessage.toJSON(message.birthday) : undefined); + if (message.name !== undefined) { + obj.name = message.name; + } + if (message.age !== undefined) { + obj.age = Math.round(message.age); + } + if (message.createdAt !== undefined) { + obj.createdAt = message.createdAt.toISOString(); + } + if (message.child !== undefined) { + obj.child = message.child ? Child.toJSON(message.child) : undefined; + } + if (message.state !== undefined) { + obj.state = message.state !== undefined ? stateEnumToJSON(message.state) : undefined; + } + if (message.thing !== undefined) { + obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + } + if (message.birthday !== undefined) { + obj.birthday = message.birthday ? DateMessage.toJSON(message.birthday) : undefined; + } return obj; }, diff --git a/integration/static-only-type-registry/bar/bar.ts b/integration/static-only-type-registry/bar/bar.ts index 114c3221c..b6f291854 100644 --- a/integration/static-only-type-registry/bar/bar.ts +++ b/integration/static-only-type-registry/bar/bar.ts @@ -52,7 +52,9 @@ export const Bar = { toJSON(message: Bar): unknown { const obj: any = {}; - message.foo !== undefined && (obj.foo = message.foo ? Foo.toJSON(message.foo) : undefined); + if (message.foo !== undefined) { + obj.foo = message.foo ? Foo.toJSON(message.foo) : undefined; + } return obj; }, diff --git a/integration/static-only-type-registry/foo.ts b/integration/static-only-type-registry/foo.ts index 88cc84809..bf714ce78 100644 --- a/integration/static-only-type-registry/foo.ts +++ b/integration/static-only-type-registry/foo.ts @@ -61,7 +61,9 @@ export const Foo = { toJSON(message: Foo): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } return obj; }, @@ -121,7 +123,9 @@ export const Foo2 = { toJSON(message: Foo2): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } return obj; }, @@ -181,7 +185,9 @@ export const WithStruct = { toJSON(message: WithStruct): unknown { const obj: any = {}; - message.struct !== undefined && (obj.struct = message.struct); + if (message.struct !== undefined) { + obj.struct = message.struct; + } return obj; }, diff --git a/integration/static-only-type-registry/google/protobuf/struct.ts b/integration/static-only-type-registry/google/protobuf/struct.ts index 9bd5a3bcf..e6c5d6857 100644 --- a/integration/static-only-type-registry/google/protobuf/struct.ts +++ b/integration/static-only-type-registry/google/protobuf/struct.ts @@ -156,11 +156,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -259,8 +262,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -385,13 +392,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.nullValue !== undefined && - (obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined); - message.numberValue !== undefined && (obj.numberValue = message.numberValue); - message.stringValue !== undefined && (obj.stringValue = message.stringValue); - message.boolValue !== undefined && (obj.boolValue = message.boolValue); - message.structValue !== undefined && (obj.structValue = message.structValue); - message.listValue !== undefined && (obj.listValue = message.listValue); + if (message.nullValue !== undefined) { + obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + } + if (message.numberValue !== undefined) { + obj.numberValue = message.numberValue; + } + if (message.stringValue !== undefined) { + obj.stringValue = message.stringValue; + } + if (message.boolValue !== undefined) { + obj.boolValue = message.boolValue; + } + if (message.structValue !== undefined) { + obj.structValue = message.structValue; + } + if (message.listValue !== undefined) { + obj.listValue = message.listValue; + } return obj; }, @@ -493,10 +511,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/static-only-type-registry/google/protobuf/timestamp.ts b/integration/static-only-type-registry/google/protobuf/timestamp.ts index ac2ec05f9..feebb2f59 100644 --- a/integration/static-only-type-registry/google/protobuf/timestamp.ts +++ b/integration/static-only-type-registry/google/protobuf/timestamp.ts @@ -168,8 +168,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/static-only/bar/bar.ts b/integration/static-only/bar/bar.ts index eb6c003f7..b725ba252 100644 --- a/integration/static-only/bar/bar.ts +++ b/integration/static-only/bar/bar.ts @@ -51,7 +51,9 @@ export const Bar = { toJSON(message: Bar): unknown { const obj: any = {}; - message.foo !== undefined && (obj.foo = message.foo ? Foo.toJSON(message.foo) : undefined); + if (message.foo !== undefined) { + obj.foo = message.foo ? Foo.toJSON(message.foo) : undefined; + } return obj; }, diff --git a/integration/static-only/foo.ts b/integration/static-only/foo.ts index a740eb1c8..8055715b9 100644 --- a/integration/static-only/foo.ts +++ b/integration/static-only/foo.ts @@ -60,7 +60,9 @@ export const Foo = { toJSON(message: Foo): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } return obj; }, @@ -118,7 +120,9 @@ export const Foo2 = { toJSON(message: Foo2): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } return obj; }, @@ -176,7 +180,9 @@ export const WithStruct = { toJSON(message: WithStruct): unknown { const obj: any = {}; - message.struct !== undefined && (obj.struct = message.struct); + if (message.struct !== undefined) { + obj.struct = message.struct; + } return obj; }, diff --git a/integration/static-only/google/protobuf/struct.ts b/integration/static-only/google/protobuf/struct.ts index 4061e47c0..1a6a21764 100644 --- a/integration/static-only/google/protobuf/struct.ts +++ b/integration/static-only/google/protobuf/struct.ts @@ -155,11 +155,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -256,8 +259,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -380,13 +387,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.nullValue !== undefined && - (obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined); - message.numberValue !== undefined && (obj.numberValue = message.numberValue); - message.stringValue !== undefined && (obj.stringValue = message.stringValue); - message.boolValue !== undefined && (obj.boolValue = message.boolValue); - message.structValue !== undefined && (obj.structValue = message.structValue); - message.listValue !== undefined && (obj.listValue = message.listValue); + if (message.nullValue !== undefined) { + obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + } + if (message.numberValue !== undefined) { + obj.numberValue = message.numberValue; + } + if (message.stringValue !== undefined) { + obj.stringValue = message.stringValue; + } + if (message.boolValue !== undefined) { + obj.boolValue = message.boolValue; + } + if (message.structValue !== undefined) { + obj.structValue = message.structValue; + } + if (message.listValue !== undefined) { + obj.listValue = message.listValue; + } return obj; }, @@ -486,10 +504,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/static-only/google/protobuf/timestamp.ts b/integration/static-only/google/protobuf/timestamp.ts index 1095ff430..12496051e 100644 --- a/integration/static-only/google/protobuf/timestamp.ts +++ b/integration/static-only/google/protobuf/timestamp.ts @@ -167,8 +167,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/struct/google/protobuf/struct.ts b/integration/struct/google/protobuf/struct.ts index 70c5714fd..f2b9f1bb6 100644 --- a/integration/struct/google/protobuf/struct.ts +++ b/integration/struct/google/protobuf/struct.ts @@ -153,11 +153,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -252,8 +255,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -374,13 +381,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.nullValue !== undefined && - (obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined); - message.numberValue !== undefined && (obj.numberValue = message.numberValue); - message.stringValue !== undefined && (obj.stringValue = message.stringValue); - message.boolValue !== undefined && (obj.boolValue = message.boolValue); - message.structValue !== undefined && (obj.structValue = message.structValue); - message.listValue !== undefined && (obj.listValue = message.listValue); + if (message.nullValue !== undefined) { + obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + } + if (message.numberValue !== undefined) { + obj.numberValue = message.numberValue; + } + if (message.stringValue !== undefined) { + obj.stringValue = message.stringValue; + } + if (message.boolValue !== undefined) { + obj.boolValue = message.boolValue; + } + if (message.structValue !== undefined) { + obj.structValue = message.structValue; + } + if (message.listValue !== undefined) { + obj.listValue = message.listValue; + } return obj; }, @@ -478,10 +496,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/struct/struct.ts b/integration/struct/struct.ts index 7ee4d8f27..83bf70017 100644 --- a/integration/struct/struct.ts +++ b/integration/struct/struct.ts @@ -49,7 +49,9 @@ export const StructMessage = { toJSON(message: StructMessage): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, diff --git a/integration/type-annotations/bar/bar.ts b/integration/type-annotations/bar/bar.ts index 762af75f5..a87e0a857 100644 --- a/integration/type-annotations/bar/bar.ts +++ b/integration/type-annotations/bar/bar.ts @@ -52,7 +52,9 @@ export const Bar = { toJSON(message: Bar): unknown { const obj: any = {}; - message.foo !== undefined && (obj.foo = message.foo ? Foo.toJSON(message.foo) : undefined); + if (message.foo !== undefined) { + obj.foo = message.foo ? Foo.toJSON(message.foo) : undefined; + } return obj; }, diff --git a/integration/type-annotations/foo.ts b/integration/type-annotations/foo.ts index 0fa145257..2ae6b7752 100644 --- a/integration/type-annotations/foo.ts +++ b/integration/type-annotations/foo.ts @@ -63,7 +63,9 @@ export const Foo = { toJSON(message: Foo): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } return obj; }, @@ -121,7 +123,9 @@ export const Foo2 = { toJSON(message: Foo2): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } return obj; }, @@ -179,7 +183,9 @@ export const WithStruct = { toJSON(message: WithStruct): unknown { const obj: any = {}; - message.struct !== undefined && (obj.struct = message.struct); + if (message.struct !== undefined) { + obj.struct = message.struct; + } return obj; }, diff --git a/integration/type-annotations/google/protobuf/struct.ts b/integration/type-annotations/google/protobuf/struct.ts index 4edb58b48..783bf5043 100644 --- a/integration/type-annotations/google/protobuf/struct.ts +++ b/integration/type-annotations/google/protobuf/struct.ts @@ -163,11 +163,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -268,8 +271,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -394,13 +401,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.nullValue !== undefined && - (obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined); - message.numberValue !== undefined && (obj.numberValue = message.numberValue); - message.stringValue !== undefined && (obj.stringValue = message.stringValue); - message.boolValue !== undefined && (obj.boolValue = message.boolValue); - message.structValue !== undefined && (obj.structValue = message.structValue); - message.listValue !== undefined && (obj.listValue = message.listValue); + if (message.nullValue !== undefined) { + obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + } + if (message.numberValue !== undefined) { + obj.numberValue = message.numberValue; + } + if (message.stringValue !== undefined) { + obj.stringValue = message.stringValue; + } + if (message.boolValue !== undefined) { + obj.boolValue = message.boolValue; + } + if (message.structValue !== undefined) { + obj.structValue = message.structValue; + } + if (message.listValue !== undefined) { + obj.listValue = message.listValue; + } return obj; }, @@ -500,10 +518,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/type-annotations/google/protobuf/timestamp.ts b/integration/type-annotations/google/protobuf/timestamp.ts index 8dcb63d97..c54fc2e7e 100644 --- a/integration/type-annotations/google/protobuf/timestamp.ts +++ b/integration/type-annotations/google/protobuf/timestamp.ts @@ -169,8 +169,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/type-registry/bar/bar.ts b/integration/type-registry/bar/bar.ts index 8522b9eaa..1eb37b04e 100644 --- a/integration/type-registry/bar/bar.ts +++ b/integration/type-registry/bar/bar.ts @@ -53,7 +53,9 @@ export const Bar = { toJSON(message: Bar): unknown { const obj: any = {}; - message.foo !== undefined && (obj.foo = message.foo ? Foo.toJSON(message.foo) : undefined); + if (message.foo !== undefined) { + obj.foo = message.foo ? Foo.toJSON(message.foo) : undefined; + } return obj; }, diff --git a/integration/type-registry/foo.ts b/integration/type-registry/foo.ts index dc0a9fa33..d8e4e26cc 100644 --- a/integration/type-registry/foo.ts +++ b/integration/type-registry/foo.ts @@ -64,7 +64,9 @@ export const Foo = { toJSON(message: Foo): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } return obj; }, @@ -124,7 +126,9 @@ export const Foo2 = { toJSON(message: Foo2): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } return obj; }, @@ -184,7 +188,9 @@ export const WithStruct = { toJSON(message: WithStruct): unknown { const obj: any = {}; - message.struct !== undefined && (obj.struct = message.struct); + if (message.struct !== undefined) { + obj.struct = message.struct; + } return obj; }, diff --git a/integration/type-registry/google/protobuf/struct.ts b/integration/type-registry/google/protobuf/struct.ts index bce6365a8..bacdd0ab7 100644 --- a/integration/type-registry/google/protobuf/struct.ts +++ b/integration/type-registry/google/protobuf/struct.ts @@ -164,11 +164,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -271,8 +274,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -399,13 +406,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.nullValue !== undefined && - (obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined); - message.numberValue !== undefined && (obj.numberValue = message.numberValue); - message.stringValue !== undefined && (obj.stringValue = message.stringValue); - message.boolValue !== undefined && (obj.boolValue = message.boolValue); - message.structValue !== undefined && (obj.structValue = message.structValue); - message.listValue !== undefined && (obj.listValue = message.listValue); + if (message.nullValue !== undefined) { + obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + } + if (message.numberValue !== undefined) { + obj.numberValue = message.numberValue; + } + if (message.stringValue !== undefined) { + obj.stringValue = message.stringValue; + } + if (message.boolValue !== undefined) { + obj.boolValue = message.boolValue; + } + if (message.structValue !== undefined) { + obj.structValue = message.structValue; + } + if (message.listValue !== undefined) { + obj.listValue = message.listValue; + } return obj; }, @@ -507,10 +525,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/type-registry/google/protobuf/timestamp.ts b/integration/type-registry/google/protobuf/timestamp.ts index b97b50a44..c90f9a59e 100644 --- a/integration/type-registry/google/protobuf/timestamp.ts +++ b/integration/type-registry/google/protobuf/timestamp.ts @@ -170,8 +170,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/types-with-underscores/file.ts b/integration/types-with-underscores/file.ts index 92dce6cb8..950992a29 100644 --- a/integration/types-with-underscores/file.ts +++ b/integration/types-with-underscores/file.ts @@ -51,7 +51,9 @@ export const Baz = { toJSON(message: Baz): unknown { const obj: any = {}; - message.foo !== undefined && (obj.foo = message.foo ? FooBar.toJSON(message.foo) : undefined); + if (message.foo !== undefined) { + obj.foo = message.foo ? FooBar.toJSON(message.foo) : undefined; + } return obj; }, diff --git a/integration/use-date-false/google/protobuf/timestamp.ts b/integration/use-date-false/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/use-date-false/google/protobuf/timestamp.ts +++ b/integration/use-date-false/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/use-date-false/metadata.ts b/integration/use-date-false/metadata.ts index 2f7984b38..097fa6736 100644 --- a/integration/use-date-false/metadata.ts +++ b/integration/use-date-false/metadata.ts @@ -49,7 +49,9 @@ export const Metadata = { toJSON(message: Metadata): unknown { const obj: any = {}; - message.lastEdited !== undefined && (obj.lastEdited = fromTimestamp(message.lastEdited).toISOString()); + if (message.lastEdited !== undefined) { + obj.lastEdited = fromTimestamp(message.lastEdited).toISOString(); + } return obj; }, diff --git a/integration/use-date-string/google/protobuf/timestamp.ts b/integration/use-date-string/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/use-date-string/google/protobuf/timestamp.ts +++ b/integration/use-date-string/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/use-date-string/use-date-string.ts b/integration/use-date-string/use-date-string.ts index d6293d61c..492a2c58f 100644 --- a/integration/use-date-string/use-date-string.ts +++ b/integration/use-date-string/use-date-string.ts @@ -114,19 +114,26 @@ export const Todo = { toJSON(message: Todo): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); - message.timestamp !== undefined && (obj.timestamp = message.timestamp); - if (message.repeatedTimestamp) { + if (message.id !== "") { + obj.id = message.id; + } + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp; + } + if (message.repeatedTimestamp?.length) { obj.repeatedTimestamp = message.repeatedTimestamp.map((e) => e); - } else { - obj.repeatedTimestamp = []; } - message.optionalTimestamp !== undefined && (obj.optionalTimestamp = message.optionalTimestamp); - obj.mapOfTimestamps = {}; + if (message.optionalTimestamp !== undefined) { + obj.optionalTimestamp = message.optionalTimestamp; + } if (message.mapOfTimestamps) { - Object.entries(message.mapOfTimestamps).forEach(([k, v]) => { - obj.mapOfTimestamps[k] = v; - }); + const entries = Object.entries(message.mapOfTimestamps); + if (entries.length > 0) { + obj.mapOfTimestamps = {}; + entries.forEach(([k, v]) => { + obj.mapOfTimestamps[k] = v; + }); + } } return obj; }, @@ -208,8 +215,12 @@ export const Todo_MapOfTimestampsEntry = { toJSON(message: Todo_MapOfTimestampsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, diff --git a/integration/use-date-true/google/protobuf/timestamp.ts b/integration/use-date-true/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/use-date-true/google/protobuf/timestamp.ts +++ b/integration/use-date-true/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/use-date-true/use-date-true.ts b/integration/use-date-true/use-date-true.ts index 27cb61142..0fae63006 100644 --- a/integration/use-date-true/use-date-true.ts +++ b/integration/use-date-true/use-date-true.ts @@ -115,19 +115,26 @@ export const Todo = { toJSON(message: Todo): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); - if (message.repeatedTimestamp) { + if (message.id !== "") { + obj.id = message.id; + } + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); + } + if (message.repeatedTimestamp?.length) { obj.repeatedTimestamp = message.repeatedTimestamp.map((e) => e.toISOString()); - } else { - obj.repeatedTimestamp = []; } - message.optionalTimestamp !== undefined && (obj.optionalTimestamp = message.optionalTimestamp.toISOString()); - obj.mapOfTimestamps = {}; + if (message.optionalTimestamp !== undefined) { + obj.optionalTimestamp = message.optionalTimestamp.toISOString(); + } if (message.mapOfTimestamps) { - Object.entries(message.mapOfTimestamps).forEach(([k, v]) => { - obj.mapOfTimestamps[k] = v.toISOString(); - }); + const entries = Object.entries(message.mapOfTimestamps); + if (entries.length > 0) { + obj.mapOfTimestamps = {}; + entries.forEach(([k, v]) => { + obj.mapOfTimestamps[k] = v.toISOString(); + }); + } } return obj; }, @@ -209,8 +216,12 @@ export const Todo_MapOfTimestampsEntry = { toJSON(message: Todo_MapOfTimestampsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value.toISOString()); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value.toISOString(); + } return obj; }, diff --git a/integration/use-exact-types-false/foo.ts b/integration/use-exact-types-false/foo.ts index b216e1d2f..fe86b5836 100644 --- a/integration/use-exact-types-false/foo.ts +++ b/integration/use-exact-types-false/foo.ts @@ -59,8 +59,12 @@ export const Foo = { toJSON(message: Foo): unknown { const obj: any = {}; - message.bar !== undefined && (obj.bar = message.bar); - message.baz !== undefined && (obj.baz = message.baz); + if (message.bar !== "") { + obj.bar = message.bar; + } + if (message.baz !== "") { + obj.baz = message.baz; + } return obj; }, diff --git a/integration/use-map-type/google/protobuf/struct.ts b/integration/use-map-type/google/protobuf/struct.ts index d99db2773..3cc6b7eb7 100644 --- a/integration/use-map-type/google/protobuf/struct.ts +++ b/integration/use-map-type/google/protobuf/struct.ts @@ -153,8 +153,8 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; - if (message.fields) { + if (message.fields?.size) { + obj.fields = {}; message.fields.forEach((v, k) => { obj.fields[k] = v; }); @@ -250,8 +250,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -372,13 +376,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.nullValue !== undefined && - (obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined); - message.numberValue !== undefined && (obj.numberValue = message.numberValue); - message.stringValue !== undefined && (obj.stringValue = message.stringValue); - message.boolValue !== undefined && (obj.boolValue = message.boolValue); - message.structValue !== undefined && (obj.structValue = message.structValue); - message.listValue !== undefined && (obj.listValue = message.listValue); + if (message.nullValue !== undefined) { + obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + } + if (message.numberValue !== undefined) { + obj.numberValue = message.numberValue; + } + if (message.stringValue !== undefined) { + obj.stringValue = message.stringValue; + } + if (message.boolValue !== undefined) { + obj.boolValue = message.boolValue; + } + if (message.structValue !== undefined) { + obj.structValue = message.structValue; + } + if (message.listValue !== undefined) { + obj.listValue = message.listValue; + } return obj; }, @@ -476,10 +491,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/use-map-type/google/protobuf/timestamp.ts b/integration/use-map-type/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/use-map-type/google/protobuf/timestamp.ts +++ b/integration/use-map-type/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/use-map-type/use-map-type.ts b/integration/use-map-type/use-map-type.ts index 65f8fccc4..c92057509 100644 --- a/integration/use-map-type/use-map-type.ts +++ b/integration/use-map-type/use-map-type.ts @@ -85,7 +85,9 @@ export const Entity = { toJSON(message: Entity): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); + if (message.id !== 0) { + obj.id = Math.round(message.id); + } return obj; }, @@ -245,37 +247,39 @@ export const Maps = { toJSON(message: Maps): unknown { const obj: any = {}; - obj.strToEntity = {}; - if (message.strToEntity) { + if (message.strToEntity?.size) { + obj.strToEntity = {}; message.strToEntity.forEach((v, k) => { obj.strToEntity[k] = Entity.toJSON(v); }); } - obj.int32ToInt32 = {}; - if (message.int32ToInt32) { + if (message.int32ToInt32?.size) { + obj.int32ToInt32 = {}; message.int32ToInt32.forEach((v, k) => { obj.int32ToInt32[k] = Math.round(v); }); } - obj.stringToBytes = {}; - if (message.stringToBytes) { + if (message.stringToBytes?.size) { + obj.stringToBytes = {}; message.stringToBytes.forEach((v, k) => { obj.stringToBytes[k] = base64FromBytes(v); }); } - obj.int64ToInt64 = {}; - if (message.int64ToInt64) { + if (message.int64ToInt64?.size) { + obj.int64ToInt64 = {}; message.int64ToInt64.forEach((v, k) => { obj.int64ToInt64[k] = Math.round(v); }); } - obj.mapOfTimestamps = {}; - if (message.mapOfTimestamps) { + if (message.mapOfTimestamps?.size) { + obj.mapOfTimestamps = {}; message.mapOfTimestamps.forEach((v, k) => { obj.mapOfTimestamps[k] = v.toISOString(); }); } - message.struct !== undefined && (obj.struct = message.struct); + if (message.struct !== undefined) { + obj.struct = message.struct; + } return obj; }, @@ -389,8 +393,12 @@ export const Maps_StrToEntityEntry = { toJSON(message: Maps_StrToEntityEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value ? Entity.toJSON(message.value) : undefined); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value ? Entity.toJSON(message.value) : undefined; + } return obj; }, @@ -459,8 +467,12 @@ export const Maps_Int32ToInt32Entry = { toJSON(message: Maps_Int32ToInt32Entry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -530,9 +542,12 @@ export const Maps_StringToBytesEntry = { toJSON(message: Maps_StringToBytesEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, @@ -599,8 +614,12 @@ export const Maps_Int64ToInt64Entry = { toJSON(message: Maps_Int64ToInt64Entry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = Math.round(message.key)); - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.key !== 0) { + obj.key = Math.round(message.key); + } + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -670,8 +689,12 @@ export const Maps_MapOfTimestampsEntry = { toJSON(message: Maps_MapOfTimestampsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value.toISOString()); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value.toISOString(); + } return obj; }, diff --git a/integration/use-numeric-enum-json/google/protobuf/struct.ts b/integration/use-numeric-enum-json/google/protobuf/struct.ts index bc9a5f3e7..e330fe112 100644 --- a/integration/use-numeric-enum-json/google/protobuf/struct.ts +++ b/integration/use-numeric-enum-json/google/protobuf/struct.ts @@ -153,11 +153,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -252,8 +255,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -374,13 +381,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.nullValue !== undefined && - (obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined); - message.numberValue !== undefined && (obj.numberValue = message.numberValue); - message.stringValue !== undefined && (obj.stringValue = message.stringValue); - message.boolValue !== undefined && (obj.boolValue = message.boolValue); - message.structValue !== undefined && (obj.structValue = message.structValue); - message.listValue !== undefined && (obj.listValue = message.listValue); + if (message.nullValue !== undefined) { + obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + } + if (message.numberValue !== undefined) { + obj.numberValue = message.numberValue; + } + if (message.stringValue !== undefined) { + obj.stringValue = message.stringValue; + } + if (message.boolValue !== undefined) { + obj.boolValue = message.boolValue; + } + if (message.structValue !== undefined) { + obj.structValue = message.structValue; + } + if (message.listValue !== undefined) { + obj.listValue = message.listValue; + } return obj; }, @@ -478,10 +496,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/use-numeric-enum-json/simple.ts b/integration/use-numeric-enum-json/simple.ts index 88cffa962..bec6c5696 100644 --- a/integration/use-numeric-enum-json/simple.ts +++ b/integration/use-numeric-enum-json/simple.ts @@ -163,19 +163,26 @@ export const Simple = { toJSON(message: Simple): unknown { const obj: any = {}; - message.name !== undefined && (obj.name = message.name); - message.state !== undefined && (obj.state = stateEnumToJSON(message.state)); - if (message.states) { + if (message.name !== "") { + obj.name = message.name; + } + if (message.state !== 0) { + obj.state = stateEnumToJSON(message.state); + } + if (message.states?.length) { obj.states = message.states.map((e) => stateEnumToJSON(e)); - } else { - obj.states = []; } - message.nullValue !== undefined && (obj.nullValue = nullValueToJSON(message.nullValue)); - obj.stateMap = {}; + if (message.nullValue !== 0) { + obj.nullValue = nullValueToJSON(message.nullValue); + } if (message.stateMap) { - Object.entries(message.stateMap).forEach(([k, v]) => { - obj.stateMap[k] = stateEnumToJSON(v); - }); + const entries = Object.entries(message.stateMap); + if (entries.length > 0) { + obj.stateMap = {}; + entries.forEach(([k, v]) => { + obj.stateMap[k] = stateEnumToJSON(v); + }); + } } return obj; }, @@ -257,8 +264,12 @@ export const Simple_StateMapEntry = { toJSON(message: Simple_StateMapEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = stateEnumToJSON(message.value)); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== 0) { + obj.value = stateEnumToJSON(message.value); + } return obj; }, diff --git a/integration/use-objectid-true-external-import/objectid/objectid.ts b/integration/use-objectid-true-external-import/objectid/objectid.ts index ad60fb5c6..e61fbb74b 100644 --- a/integration/use-objectid-true-external-import/objectid/objectid.ts +++ b/integration/use-objectid-true-external-import/objectid/objectid.ts @@ -48,7 +48,9 @@ export const ObjectId = { toJSON(message: ObjectId): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, diff --git a/integration/use-objectid-true-external-import/use-objectid-true.ts b/integration/use-objectid-true-external-import/use-objectid-true.ts index a6ff4d52d..4d51b266a 100644 --- a/integration/use-objectid-true-external-import/use-objectid-true.ts +++ b/integration/use-objectid-true-external-import/use-objectid-true.ts @@ -113,19 +113,26 @@ export const Todo = { toJSON(message: Todo): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); - message.oid !== undefined && (obj.oid = message.oid.toString()); - if (message.repeatedOid) { + if (message.id !== "") { + obj.id = message.id; + } + if (message.oid !== undefined) { + obj.oid = message.oid.toString(); + } + if (message.repeatedOid?.length) { obj.repeatedOid = message.repeatedOid.map((e) => e.toString()); - } else { - obj.repeatedOid = []; } - message.optionalOid !== undefined && (obj.optionalOid = message.optionalOid.toString()); - obj.mapOfOids = {}; + if (message.optionalOid !== undefined) { + obj.optionalOid = message.optionalOid.toString(); + } if (message.mapOfOids) { - Object.entries(message.mapOfOids).forEach(([k, v]) => { - obj.mapOfOids[k] = v.toString(); - }); + const entries = Object.entries(message.mapOfOids); + if (entries.length > 0) { + obj.mapOfOids = {}; + entries.forEach(([k, v]) => { + obj.mapOfOids[k] = v.toString(); + }); + } } return obj; }, @@ -209,8 +216,12 @@ export const Todo_MapOfOidsEntry = { toJSON(message: Todo_MapOfOidsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value.toString()); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value.toString(); + } return obj; }, diff --git a/integration/use-optionals-all/google/protobuf/timestamp.ts b/integration/use-optionals-all/google/protobuf/timestamp.ts index dfd52f72d..ff65580b5 100644 --- a/integration/use-optionals-all/google/protobuf/timestamp.ts +++ b/integration/use-optionals-all/google/protobuf/timestamp.ts @@ -167,8 +167,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== undefined && message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== undefined && message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/use-optionals-all/test.ts b/integration/use-optionals-all/test.ts index 24afe279e..54d22c595 100644 --- a/integration/use-optionals-all/test.ts +++ b/integration/use-optionals-all/test.ts @@ -457,65 +457,81 @@ export const OptionalsTest = { toJSON(message: OptionalsTest): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); - message.child !== undefined && (obj.child = message.child ? Child.toJSON(message.child) : undefined); - message.state !== undefined && (obj.state = stateEnumToJSON(message.state)); - message.long !== undefined && (obj.long = Math.round(message.long)); - message.truth !== undefined && (obj.truth = message.truth); - message.description !== undefined && (obj.description = message.description); - message.data !== undefined && - (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array(0))); - if (message.repId) { + if (message.id !== undefined && message.id !== 0) { + obj.id = Math.round(message.id); + } + if (message.child !== undefined) { + obj.child = message.child ? Child.toJSON(message.child) : undefined; + } + if (message.state !== undefined && message.state !== 0) { + obj.state = stateEnumToJSON(message.state); + } + if (message.long !== undefined && message.long !== 0) { + obj.long = Math.round(message.long); + } + if (message.truth === true) { + obj.truth = message.truth; + } + if (message.description !== undefined && message.description !== "") { + obj.description = message.description; + } + if (message.data !== undefined && message.data.length !== 0) { + obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array(0)); + } + if (message.repId?.length) { obj.repId = message.repId.map((e) => Math.round(e)); - } else { - obj.repId = []; } - if (message.repChild) { + if (message.repChild?.length) { obj.repChild = message.repChild.map((e) => e ? Child.toJSON(e) : undefined); - } else { - obj.repChild = []; } - if (message.repState) { + if (message.repState?.length) { obj.repState = message.repState.map((e) => stateEnumToJSON(e)); - } else { - obj.repState = []; } - if (message.repLong) { + if (message.repLong?.length) { obj.repLong = message.repLong.map((e) => Math.round(e)); - } else { - obj.repLong = []; } - if (message.repTruth) { + if (message.repTruth?.length) { obj.repTruth = message.repTruth.map((e) => e); - } else { - obj.repTruth = []; } - if (message.repDescription) { + if (message.repDescription?.length) { obj.repDescription = message.repDescription.map((e) => e); - } else { - obj.repDescription = []; } - if (message.repData) { + if (message.repData?.length) { obj.repData = message.repData.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array(0))); - } else { - obj.repData = []; - } - message.optId !== undefined && (obj.optId = Math.round(message.optId)); - message.optChild !== undefined && (obj.optChild = message.optChild ? Child.toJSON(message.optChild) : undefined); - message.optState !== undefined && - (obj.optState = message.optState !== undefined ? stateEnumToJSON(message.optState) : undefined); - message.optLong !== undefined && (obj.optLong = Math.round(message.optLong)); - message.optTruth !== undefined && (obj.optTruth = message.optTruth); - message.optDescription !== undefined && (obj.optDescription = message.optDescription); - message.optData !== undefined && - (obj.optData = message.optData !== undefined ? base64FromBytes(message.optData) : undefined); - obj.translations = {}; + } + if (message.optId !== undefined) { + obj.optId = Math.round(message.optId); + } + if (message.optChild !== undefined) { + obj.optChild = message.optChild ? Child.toJSON(message.optChild) : undefined; + } + if (message.optState !== undefined) { + obj.optState = message.optState !== undefined ? stateEnumToJSON(message.optState) : undefined; + } + if (message.optLong !== undefined) { + obj.optLong = Math.round(message.optLong); + } + if (message.optTruth !== undefined) { + obj.optTruth = message.optTruth; + } + if (message.optDescription !== undefined) { + obj.optDescription = message.optDescription; + } + if (message.optData !== undefined) { + obj.optData = message.optData !== undefined ? base64FromBytes(message.optData) : undefined; + } if (message.translations) { - Object.entries(message.translations).forEach(([k, v]) => { - obj.translations[k] = v; - }); + const entries = Object.entries(message.translations); + if (entries.length > 0) { + obj.translations = {}; + entries.forEach(([k, v]) => { + obj.translations[k] = v; + }); + } + } + if (message.timestamp !== undefined) { + obj.timestamp = message.timestamp.toISOString(); } - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); return obj; }, @@ -613,8 +629,12 @@ export const OptionalsTest_TranslationsEntry = { toJSON(message: OptionalsTest_TranslationsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== "") { + obj.value = message.value; + } return obj; }, diff --git a/integration/use-optionals-no-undefined/test.ts b/integration/use-optionals-no-undefined/test.ts index 7125bf0a6..7b4bbd50c 100644 --- a/integration/use-optionals-no-undefined/test.ts +++ b/integration/use-optionals-no-undefined/test.ts @@ -458,63 +458,77 @@ export const OptionalsTest = { toJSON(message: OptionalsTest): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); - message.child !== undefined && (obj.child = message.child ? Child.toJSON(message.child) : undefined); - message.state !== undefined && (obj.state = stateEnumToJSON(message.state)); - message.long !== undefined && (obj.long = Math.round(message.long)); - message.truth !== undefined && (obj.truth = message.truth); - message.description !== undefined && (obj.description = message.description); - message.data !== undefined && - (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array(0))); - if (message.repId) { + if (message.id !== undefined && message.id !== 0) { + obj.id = Math.round(message.id); + } + if (message.child !== undefined) { + obj.child = message.child ? Child.toJSON(message.child) : undefined; + } + if (message.state !== undefined && message.state !== 0) { + obj.state = stateEnumToJSON(message.state); + } + if (message.long !== undefined && message.long !== 0) { + obj.long = Math.round(message.long); + } + if (message.truth === true) { + obj.truth = message.truth; + } + if (message.description !== undefined && message.description !== "") { + obj.description = message.description; + } + if (message.data !== undefined && message.data.length !== 0) { + obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array(0)); + } + if (message.repId?.length) { obj.repId = message.repId.map((e) => Math.round(e)); - } else { - obj.repId = []; } - if (message.repChild) { + if (message.repChild?.length) { obj.repChild = message.repChild.map((e) => e ? Child.toJSON(e) : undefined); - } else { - obj.repChild = []; } - if (message.repState) { + if (message.repState?.length) { obj.repState = message.repState.map((e) => stateEnumToJSON(e)); - } else { - obj.repState = []; } - if (message.repLong) { + if (message.repLong?.length) { obj.repLong = message.repLong.map((e) => Math.round(e)); - } else { - obj.repLong = []; } - if (message.repTruth) { + if (message.repTruth?.length) { obj.repTruth = message.repTruth.map((e) => e); - } else { - obj.repTruth = []; } - if (message.repDescription) { + if (message.repDescription?.length) { obj.repDescription = message.repDescription.map((e) => e); - } else { - obj.repDescription = []; } - if (message.repData) { + if (message.repData?.length) { obj.repData = message.repData.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array(0))); - } else { - obj.repData = []; - } - message.optId !== undefined && (obj.optId = Math.round(message.optId)); - message.optChild !== undefined && (obj.optChild = message.optChild ? Child.toJSON(message.optChild) : undefined); - message.optState !== undefined && - (obj.optState = message.optState !== undefined ? stateEnumToJSON(message.optState) : undefined); - message.optLong !== undefined && (obj.optLong = Math.round(message.optLong)); - message.optTruth !== undefined && (obj.optTruth = message.optTruth); - message.optDescription !== undefined && (obj.optDescription = message.optDescription); - message.optData !== undefined && - (obj.optData = message.optData !== undefined ? base64FromBytes(message.optData) : undefined); - obj.translations = {}; + } + if (message.optId !== undefined) { + obj.optId = Math.round(message.optId); + } + if (message.optChild !== undefined) { + obj.optChild = message.optChild ? Child.toJSON(message.optChild) : undefined; + } + if (message.optState !== undefined) { + obj.optState = message.optState !== undefined ? stateEnumToJSON(message.optState) : undefined; + } + if (message.optLong !== undefined) { + obj.optLong = Math.round(message.optLong); + } + if (message.optTruth !== undefined) { + obj.optTruth = message.optTruth; + } + if (message.optDescription !== undefined) { + obj.optDescription = message.optDescription; + } + if (message.optData !== undefined) { + obj.optData = message.optData !== undefined ? base64FromBytes(message.optData) : undefined; + } if (message.translations) { - Object.entries(message.translations).forEach(([k, v]) => { - obj.translations[k] = v; - }); + const entries = Object.entries(message.translations); + if (entries.length > 0) { + obj.translations = {}; + entries.forEach(([k, v]) => { + obj.translations[k] = v; + }); + } } return obj; }, @@ -611,8 +625,12 @@ export const OptionalsTest_TranslationsEntry = { toJSON(message: OptionalsTest_TranslationsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== "") { + obj.value = message.value; + } return obj; }, diff --git a/integration/use-readonly-types/google/protobuf/struct.ts b/integration/use-readonly-types/google/protobuf/struct.ts index 10fbb6188..286af7846 100644 --- a/integration/use-readonly-types/google/protobuf/struct.ts +++ b/integration/use-readonly-types/google/protobuf/struct.ts @@ -139,11 +139,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -238,8 +241,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -362,13 +369,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.kind?.$case === "nullValue" && - (obj.nullValue = message.kind?.nullValue !== undefined ? nullValueToJSON(message.kind?.nullValue) : undefined); - message.kind?.$case === "numberValue" && (obj.numberValue = message.kind?.numberValue); - message.kind?.$case === "stringValue" && (obj.stringValue = message.kind?.stringValue); - message.kind?.$case === "boolValue" && (obj.boolValue = message.kind?.boolValue); - message.kind?.$case === "structValue" && (obj.structValue = message.kind?.structValue); - message.kind?.$case === "listValue" && (obj.listValue = message.kind?.listValue); + if (message.kind?.$case === "nullValue") { + obj.nullValue = message.kind?.nullValue !== undefined ? nullValueToJSON(message.kind?.nullValue) : undefined; + } + if (message.kind?.$case === "numberValue") { + obj.numberValue = message.kind?.numberValue; + } + if (message.kind?.$case === "stringValue") { + obj.stringValue = message.kind?.stringValue; + } + if (message.kind?.$case === "boolValue") { + obj.boolValue = message.kind?.boolValue; + } + if (message.kind?.$case === "structValue") { + obj.structValue = message.kind?.structValue; + } + if (message.kind?.$case === "listValue") { + obj.listValue = message.kind?.listValue; + } return obj; }, @@ -491,10 +509,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/use-readonly-types/use-readonly-types.ts b/integration/use-readonly-types/use-readonly-types.ts index e901e8751..6c8d4689e 100644 --- a/integration/use-readonly-types/use-readonly-types.ts +++ b/integration/use-readonly-types/use-readonly-types.ts @@ -221,31 +221,42 @@ export const Entity = { toJSON(message: Entity): unknown { const obj: any = {}; - message.intVal !== undefined && (obj.intVal = Math.round(message.intVal)); - message.stringVal !== undefined && (obj.stringVal = message.stringVal); - if (message.intArray) { + if (message.intVal !== 0) { + obj.intVal = Math.round(message.intVal); + } + if (message.stringVal !== "") { + obj.stringVal = message.stringVal; + } + if (message.intArray?.length) { obj.intArray = message.intArray.map((e) => Math.round(e)); - } else { - obj.intArray = []; } - if (message.stringArray) { + if (message.stringArray?.length) { obj.stringArray = message.stringArray.map((e) => e); - } else { - obj.stringArray = []; } - message.subEntity !== undefined && - (obj.subEntity = message.subEntity ? SubEntity.toJSON(message.subEntity) : undefined); - if (message.subEntityArray) { + if (message.subEntity !== undefined) { + obj.subEntity = message.subEntity ? SubEntity.toJSON(message.subEntity) : undefined; + } + if (message.subEntityArray?.length) { obj.subEntityArray = message.subEntityArray.map((e) => e ? SubEntity.toJSON(e) : undefined); - } else { - obj.subEntityArray = []; } - message.optionalIntVal !== undefined && (obj.optionalIntVal = Math.round(message.optionalIntVal)); - message.fieldMask !== undefined && (obj.fieldMask = FieldMask.toJSON(FieldMask.wrap(message.fieldMask))); - message.listValue !== undefined && (obj.listValue = message.listValue); - message.structValue !== undefined && (obj.structValue = message.structValue); - message.oneOfValue?.$case === "theStringValue" && (obj.theStringValue = message.oneOfValue?.theStringValue); - message.oneOfValue?.$case === "theIntValue" && (obj.theIntValue = Math.round(message.oneOfValue?.theIntValue)); + if (message.optionalIntVal !== undefined) { + obj.optionalIntVal = Math.round(message.optionalIntVal); + } + if (message.fieldMask !== undefined) { + obj.fieldMask = FieldMask.toJSON(FieldMask.wrap(message.fieldMask)); + } + if (message.listValue !== undefined) { + obj.listValue = message.listValue; + } + if (message.structValue !== undefined) { + obj.structValue = message.structValue; + } + if (message.oneOfValue?.$case === "theStringValue") { + obj.theStringValue = message.oneOfValue?.theStringValue; + } + if (message.oneOfValue?.$case === "theIntValue") { + obj.theIntValue = Math.round(message.oneOfValue?.theIntValue); + } return obj; }, @@ -326,7 +337,9 @@ export const SubEntity = { toJSON(message: SubEntity): unknown { const obj: any = {}; - message.subVal !== undefined && (obj.subVal = Math.round(message.subVal)); + if (message.subVal !== 0) { + obj.subVal = Math.round(message.subVal); + } return obj; }, diff --git a/integration/value/google/protobuf/struct.ts b/integration/value/google/protobuf/struct.ts index 70c5714fd..f2b9f1bb6 100644 --- a/integration/value/google/protobuf/struct.ts +++ b/integration/value/google/protobuf/struct.ts @@ -153,11 +153,14 @@ export const Struct = { toJSON(message: Struct): unknown { const obj: any = {}; - obj.fields = {}; if (message.fields) { - Object.entries(message.fields).forEach(([k, v]) => { - obj.fields[k] = v; - }); + const entries = Object.entries(message.fields); + if (entries.length > 0) { + obj.fields = {}; + entries.forEach(([k, v]) => { + obj.fields[k] = v; + }); + } } return obj; }, @@ -252,8 +255,12 @@ export const Struct_FieldsEntry = { toJSON(message: Struct_FieldsEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); - message.value !== undefined && (obj.value = message.value); + if (message.key !== "") { + obj.key = message.key; + } + if (message.value !== undefined) { + obj.value = message.value; + } return obj; }, @@ -374,13 +381,24 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; - message.nullValue !== undefined && - (obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined); - message.numberValue !== undefined && (obj.numberValue = message.numberValue); - message.stringValue !== undefined && (obj.stringValue = message.stringValue); - message.boolValue !== undefined && (obj.boolValue = message.boolValue); - message.structValue !== undefined && (obj.structValue = message.structValue); - message.listValue !== undefined && (obj.listValue = message.listValue); + if (message.nullValue !== undefined) { + obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + } + if (message.numberValue !== undefined) { + obj.numberValue = message.numberValue; + } + if (message.stringValue !== undefined) { + obj.stringValue = message.stringValue; + } + if (message.boolValue !== undefined) { + obj.boolValue = message.boolValue; + } + if (message.structValue !== undefined) { + obj.structValue = message.structValue; + } + if (message.listValue !== undefined) { + obj.listValue = message.listValue; + } return obj; }, @@ -478,10 +496,8 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e); - } else { - obj.values = []; } return obj; }, diff --git a/integration/value/google/protobuf/wrappers.ts b/integration/value/google/protobuf/wrappers.ts index 356be2144..0f8f714df 100644 --- a/integration/value/google/protobuf/wrappers.ts +++ b/integration/value/google/protobuf/wrappers.ts @@ -135,7 +135,9 @@ export const DoubleValue = { toJSON(message: DoubleValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -191,7 +193,9 @@ export const FloatValue = { toJSON(message: FloatValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -247,7 +251,9 @@ export const Int64Value = { toJSON(message: Int64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -303,7 +309,9 @@ export const UInt64Value = { toJSON(message: UInt64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -359,7 +367,9 @@ export const Int32Value = { toJSON(message: Int32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -415,7 +425,9 @@ export const UInt32Value = { toJSON(message: UInt32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -471,7 +483,9 @@ export const BoolValue = { toJSON(message: BoolValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value === true) { + obj.value = message.value; + } return obj; }, @@ -527,7 +541,9 @@ export const StringValue = { toJSON(message: StringValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -583,8 +599,9 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, diff --git a/integration/value/value.ts b/integration/value/value.ts index c79fdf0ac..edcfe0c4b 100644 --- a/integration/value/value.ts +++ b/integration/value/value.ts @@ -100,19 +100,21 @@ export const ValueMessage = { toJSON(message: ValueMessage): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); - message.anyList !== undefined && (obj.anyList = message.anyList); - if (message.repeatedAny) { + if (message.value !== undefined) { + obj.value = message.value; + } + if (message.anyList !== undefined) { + obj.anyList = message.anyList; + } + if (message.repeatedAny?.length) { obj.repeatedAny = message.repeatedAny.map((e) => e); - } else { - obj.repeatedAny = []; } - if (message.repeatedStrings) { + if (message.repeatedStrings?.length) { obj.repeatedStrings = message.repeatedStrings.map((e) => e); - } else { - obj.repeatedStrings = []; } - message.structValue !== undefined && (obj.structValue = message.structValue); + if (message.structValue !== undefined) { + obj.structValue = message.structValue; + } return obj; }, diff --git a/integration/vector-tile/vector_tile.ts b/integration/vector-tile/vector_tile.ts index ba8856812..5b4e33cc9 100644 --- a/integration/vector-tile/vector_tile.ts +++ b/integration/vector-tile/vector_tile.ts @@ -120,10 +120,8 @@ export const Tile = { toJSON(message: Tile): unknown { const obj: any = {}; - if (message.layers) { + if (message.layers?.length) { obj.layers = message.layers.map((e) => e ? Tile_Layer.toJSON(e) : undefined); - } else { - obj.layers = []; } return obj; }, @@ -248,13 +246,27 @@ export const Tile_Value = { toJSON(message: Tile_Value): unknown { const obj: any = {}; - message.stringValue !== undefined && (obj.stringValue = message.stringValue); - message.floatValue !== undefined && (obj.floatValue = message.floatValue); - message.doubleValue !== undefined && (obj.doubleValue = message.doubleValue); - message.intValue !== undefined && (obj.intValue = Math.round(message.intValue)); - message.uintValue !== undefined && (obj.uintValue = Math.round(message.uintValue)); - message.sintValue !== undefined && (obj.sintValue = Math.round(message.sintValue)); - message.boolValue !== undefined && (obj.boolValue = message.boolValue); + if (message.stringValue !== "") { + obj.stringValue = message.stringValue; + } + if (message.floatValue !== 0) { + obj.floatValue = message.floatValue; + } + if (message.doubleValue !== 0) { + obj.doubleValue = message.doubleValue; + } + if (message.intValue !== 0) { + obj.intValue = Math.round(message.intValue); + } + if (message.uintValue !== 0) { + obj.uintValue = Math.round(message.uintValue); + } + if (message.sintValue !== 0) { + obj.sintValue = Math.round(message.sintValue); + } + if (message.boolValue === true) { + obj.boolValue = message.boolValue; + } return obj; }, @@ -375,17 +387,17 @@ export const Tile_Feature = { toJSON(message: Tile_Feature): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = Math.round(message.id)); - if (message.tags) { + if (message.id !== 0) { + obj.id = Math.round(message.id); + } + if (message.tags?.length) { obj.tags = message.tags.map((e) => Math.round(e)); - } else { - obj.tags = []; } - message.type !== undefined && (obj.type = tile_GeomTypeToJSON(message.type)); - if (message.geometry) { + if (message.type !== 0) { + obj.type = tile_GeomTypeToJSON(message.type); + } + if (message.geometry?.length) { obj.geometry = message.geometry.map((e) => Math.round(e)); - } else { - obj.geometry = []; } return obj; }, @@ -502,24 +514,24 @@ export const Tile_Layer = { toJSON(message: Tile_Layer): unknown { const obj: any = {}; - message.version !== undefined && (obj.version = Math.round(message.version)); - message.name !== undefined && (obj.name = message.name); - if (message.features) { + if (message.version !== 0) { + obj.version = Math.round(message.version); + } + if (message.name !== "") { + obj.name = message.name; + } + if (message.features?.length) { obj.features = message.features.map((e) => e ? Tile_Feature.toJSON(e) : undefined); - } else { - obj.features = []; } - if (message.keys) { + if (message.keys?.length) { obj.keys = message.keys.map((e) => e); - } else { - obj.keys = []; } - if (message.values) { + if (message.values?.length) { obj.values = message.values.map((e) => e ? Tile_Value.toJSON(e) : undefined); - } else { - obj.values = []; } - message.extent !== undefined && (obj.extent = Math.round(message.extent)); + if (message.extent !== 0) { + obj.extent = Math.round(message.extent); + } return obj; }, diff --git a/integration/wrappers-regression/google/protobuf/timestamp.ts b/integration/wrappers-regression/google/protobuf/timestamp.ts index dc3946fe7..ea8e77c4a 100644 --- a/integration/wrappers-regression/google/protobuf/timestamp.ts +++ b/integration/wrappers-regression/google/protobuf/timestamp.ts @@ -165,8 +165,12 @@ export const Timestamp = { toJSON(message: Timestamp): unknown { const obj: any = {}; - message.seconds !== undefined && (obj.seconds = Math.round(message.seconds)); - message.nanos !== undefined && (obj.nanos = Math.round(message.nanos)); + if (message.seconds !== 0) { + obj.seconds = Math.round(message.seconds); + } + if (message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } return obj; }, diff --git a/integration/wrappers-regression/google/protobuf/wrappers.ts b/integration/wrappers-regression/google/protobuf/wrappers.ts index 356be2144..0f8f714df 100644 --- a/integration/wrappers-regression/google/protobuf/wrappers.ts +++ b/integration/wrappers-regression/google/protobuf/wrappers.ts @@ -135,7 +135,9 @@ export const DoubleValue = { toJSON(message: DoubleValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -191,7 +193,9 @@ export const FloatValue = { toJSON(message: FloatValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== 0) { + obj.value = message.value; + } return obj; }, @@ -247,7 +251,9 @@ export const Int64Value = { toJSON(message: Int64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -303,7 +309,9 @@ export const UInt64Value = { toJSON(message: UInt64Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -359,7 +367,9 @@ export const Int32Value = { toJSON(message: Int32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -415,7 +425,9 @@ export const UInt32Value = { toJSON(message: UInt32Value): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = Math.round(message.value)); + if (message.value !== 0) { + obj.value = Math.round(message.value); + } return obj; }, @@ -471,7 +483,9 @@ export const BoolValue = { toJSON(message: BoolValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value === true) { + obj.value = message.value; + } return obj; }, @@ -527,7 +541,9 @@ export const StringValue = { toJSON(message: StringValue): unknown { const obj: any = {}; - message.value !== undefined && (obj.value = message.value); + if (message.value !== "") { + obj.value = message.value; + } return obj; }, @@ -583,8 +599,9 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; - message.value !== undefined && - (obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0))); + if (message.value.length !== 0) { + obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + } return obj; }, diff --git a/src/main.ts b/src/main.ts index a4860b127..5c9053a4a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2049,8 +2049,8 @@ function generateToJson( if (ctx.options.useMapType) { chunks.push(code` - ${jsonProperty} = {}; - if (message.${fieldName}) { + if (message.${fieldName}?.size) { + ${jsonProperty} = {}; message.${fieldName}.forEach((v, k) => { ${jsonProperty}[${i}] = ${readSnippet("v")}; }); @@ -2058,31 +2058,43 @@ function generateToJson( `); } else { chunks.push(code` - ${jsonProperty} = {}; - if (message.${fieldName}) { - Object.entries(message.${fieldName}).forEach(([k, v]) => { - ${jsonProperty}[${i}] = ${readSnippet("v")}; - }); + if (message.${fieldName}) { + const entries = Object.entries(message.${fieldName}); + if (entries.length > 0) { + ${jsonProperty} = {}; + entries.forEach(([k, v]) => { + ${jsonProperty}[${i}] = ${readSnippet("v")}; + }); + } } `); } } else if (isRepeated(field)) { // Arrays might need their elements transformed chunks.push(code` - if (message.${fieldName}) { + if (message.${fieldName}?.length) { ${jsonProperty} = message.${fieldName}.map(e => ${readSnippet("e")}); - } else { - ${jsonProperty} = []; } `); } else if (isWithinOneOfThatShouldBeUnion(options, field)) { // oneofs in a union are only output as `oneof name = ...` const oneofName = maybeSnakeToCamel(messageDesc.oneofDecl[field.oneofIndex].name, options); - const v = readSnippet(`message.${oneofName}?.${fieldName}`); - chunks.push(code`message.${oneofName}?.$case === '${fieldName}' && (${jsonProperty} = ${v});`); + chunks.push(code` + if (message.${oneofName}?.$case === '${fieldName}') { + ${jsonProperty} = ${readSnippet(`message.${oneofName}?.${fieldName}`)}; + } + `); } else { - const v = readSnippet(`message.${fieldName}`); - chunks.push(code`message.${fieldName} !== undefined && (${jsonProperty} = ${v});`); + const check = + (isScalar(field) || isEnum(field)) && !isWithinOneOf(field) + ? notDefaultCheck(ctx, field, messageDesc.options, `message.${fieldName}`) + : `message.${fieldName} !== undefined`; + + chunks.push(code` + if (${check}) { + ${jsonProperty} = ${readSnippet(`message.${fieldName}`)}; + } + `); } }); chunks.push(code`return obj;`); From 863bb60939be6f88a16d9c0631784bbca2059577 Mon Sep 17 00:00:00 2001 From: Andrew Haines Date: Thu, 13 Jul 2023 13:49:09 +0100 Subject: [PATCH 2/4] Avoid mapping arrays with the identity function --- .../batching-with-context-esModuleInterop/batching.ts | 4 ++-- integration/batching-with-context/batching.ts | 4 ++-- integration/batching/batching.ts | 4 ++-- integration/from-partial-no-initialize/test.ts | 2 +- integration/groups/test.ts | 4 ++-- integration/grpc-js/google/protobuf/struct.ts | 2 +- integration/lower-case-svc-methods/math.ts | 2 +- integration/nice-grpc/google/protobuf/struct.ts | 2 +- integration/oneof-unions-snake/google/protobuf/struct.ts | 2 +- integration/oneof-unions/google/protobuf/struct.ts | 2 +- integration/simple-json-name/simple.ts | 2 +- integration/simple-long/simple.ts | 4 ++-- integration/simple-optionals/simple.ts | 6 +++--- integration/simple-prototype-defaults/simple.ts | 6 +++--- integration/simple-snake/google/protobuf/struct.ts | 2 +- integration/simple-snake/simple.ts | 6 +++--- integration/simple-string-enums/google/protobuf/struct.ts | 2 +- integration/simple-unrecognized-enum/simple.ts | 6 +++--- integration/simple/simple.ts | 6 +++--- .../static-only-type-registry/google/protobuf/struct.ts | 2 +- integration/static-only/google/protobuf/struct.ts | 2 +- integration/struct/google/protobuf/struct.ts | 2 +- integration/type-annotations/google/protobuf/struct.ts | 2 +- integration/type-registry/google/protobuf/struct.ts | 2 +- integration/use-date-string/use-date-string.ts | 2 +- integration/use-map-type/google/protobuf/struct.ts | 2 +- integration/use-numeric-enum-json/google/protobuf/struct.ts | 2 +- integration/use-optionals-all/test.ts | 4 ++-- integration/use-optionals-no-undefined/test.ts | 4 ++-- integration/use-readonly-types/google/protobuf/struct.ts | 2 +- integration/use-readonly-types/use-readonly-types.ts | 2 +- integration/value/google/protobuf/struct.ts | 2 +- integration/value/value.ts | 4 ++-- integration/vector-tile/vector_tile.ts | 2 +- src/main.ts | 4 +++- 35 files changed, 55 insertions(+), 53 deletions(-) diff --git a/integration/batching-with-context-esModuleInterop/batching.ts b/integration/batching-with-context-esModuleInterop/batching.ts index 58c1c8ed5..e18194009 100644 --- a/integration/batching-with-context-esModuleInterop/batching.ts +++ b/integration/batching-with-context-esModuleInterop/batching.ts @@ -88,7 +88,7 @@ export const BatchQueryRequest = { toJSON(message: BatchQueryRequest): unknown { const obj: any = {}; if (message.ids?.length) { - obj.ids = message.ids.map((e) => e); + obj.ids = message.ids; } return obj; }, @@ -204,7 +204,7 @@ export const BatchMapQueryRequest = { toJSON(message: BatchMapQueryRequest): unknown { const obj: any = {}; if (message.ids?.length) { - obj.ids = message.ids.map((e) => e); + obj.ids = message.ids; } return obj; }, diff --git a/integration/batching-with-context/batching.ts b/integration/batching-with-context/batching.ts index de86f5163..2433149a0 100644 --- a/integration/batching-with-context/batching.ts +++ b/integration/batching-with-context/batching.ts @@ -88,7 +88,7 @@ export const BatchQueryRequest = { toJSON(message: BatchQueryRequest): unknown { const obj: any = {}; if (message.ids?.length) { - obj.ids = message.ids.map((e) => e); + obj.ids = message.ids; } return obj; }, @@ -204,7 +204,7 @@ export const BatchMapQueryRequest = { toJSON(message: BatchMapQueryRequest): unknown { const obj: any = {}; if (message.ids?.length) { - obj.ids = message.ids.map((e) => e); + obj.ids = message.ids; } return obj; }, diff --git a/integration/batching/batching.ts b/integration/batching/batching.ts index 225c0dd7a..42015f9fd 100644 --- a/integration/batching/batching.ts +++ b/integration/batching/batching.ts @@ -86,7 +86,7 @@ export const BatchQueryRequest = { toJSON(message: BatchQueryRequest): unknown { const obj: any = {}; if (message.ids?.length) { - obj.ids = message.ids.map((e) => e); + obj.ids = message.ids; } return obj; }, @@ -202,7 +202,7 @@ export const BatchMapQueryRequest = { toJSON(message: BatchMapQueryRequest): unknown { const obj: any = {}; if (message.ids?.length) { - obj.ids = message.ids.map((e) => e); + obj.ids = message.ids; } return obj; }, diff --git a/integration/from-partial-no-initialize/test.ts b/integration/from-partial-no-initialize/test.ts index b5fc7b99e..f81d83042 100644 --- a/integration/from-partial-no-initialize/test.ts +++ b/integration/from-partial-no-initialize/test.ts @@ -258,7 +258,7 @@ export const TPartial = { obj.repeatedMessage = message.repeatedMessage.map((e) => e ? TPartialMessage.toJSON(e) : undefined); } if (message.repeatedString?.length) { - obj.repeatedString = message.repeatedString.map((e) => e); + obj.repeatedString = message.repeatedString; } if (message.repeatedNumber?.length) { obj.repeatedNumber = message.repeatedNumber.map((e) => Math.round(e)); diff --git a/integration/groups/test.ts b/integration/groups/test.ts index dc842e9af..b2f0bcbcf 100644 --- a/integration/groups/test.ts +++ b/integration/groups/test.ts @@ -528,10 +528,10 @@ export const GroupsRepeatedTest_Group = { toJSON(message: GroupsRepeatedTest_Group): unknown { const obj: any = {}; if (message.key?.length) { - obj.key = message.key.map((e) => e); + obj.key = message.key; } if (message.value?.length) { - obj.value = message.value.map((e) => e); + obj.value = message.value; } return obj; }, diff --git a/integration/grpc-js/google/protobuf/struct.ts b/integration/grpc-js/google/protobuf/struct.ts index f2b9f1bb6..3ca7265b7 100644 --- a/integration/grpc-js/google/protobuf/struct.ts +++ b/integration/grpc-js/google/protobuf/struct.ts @@ -497,7 +497,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/lower-case-svc-methods/math.ts b/integration/lower-case-svc-methods/math.ts index a1830e709..3468aa8b8 100644 --- a/integration/lower-case-svc-methods/math.ts +++ b/integration/lower-case-svc-methods/math.ts @@ -202,7 +202,7 @@ export const Numbers = { toJSON(message: Numbers): unknown { const obj: any = {}; if (message.num?.length) { - obj.num = message.num.map((e) => e); + obj.num = message.num; } return obj; }, diff --git a/integration/nice-grpc/google/protobuf/struct.ts b/integration/nice-grpc/google/protobuf/struct.ts index 86fa39100..7cf9b223f 100644 --- a/integration/nice-grpc/google/protobuf/struct.ts +++ b/integration/nice-grpc/google/protobuf/struct.ts @@ -497,7 +497,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/oneof-unions-snake/google/protobuf/struct.ts b/integration/oneof-unions-snake/google/protobuf/struct.ts index 8b2b312d4..d9eebf503 100644 --- a/integration/oneof-unions-snake/google/protobuf/struct.ts +++ b/integration/oneof-unions-snake/google/protobuf/struct.ts @@ -519,7 +519,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/oneof-unions/google/protobuf/struct.ts b/integration/oneof-unions/google/protobuf/struct.ts index e6249d4fa..a62b72bdf 100644 --- a/integration/oneof-unions/google/protobuf/struct.ts +++ b/integration/oneof-unions/google/protobuf/struct.ts @@ -510,7 +510,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/simple-json-name/simple.ts b/integration/simple-json-name/simple.ts index 436a143c9..37f2a3705 100644 --- a/integration/simple-json-name/simple.ts +++ b/integration/simple-json-name/simple.ts @@ -166,7 +166,7 @@ export const Simple = { obj.dollar$ = message.dollarEnd; } if (message.hyphenList?.length) { - obj["hyphen-list"] = message.hyphenList.map((e) => e); + obj["hyphen-list"] = message.hyphenList; } return obj; }, diff --git a/integration/simple-long/simple.ts b/integration/simple-long/simple.ts index 0a0959f7b..6f1efbb31 100644 --- a/integration/simple-long/simple.ts +++ b/integration/simple-long/simple.ts @@ -164,10 +164,10 @@ export const SimpleWithWrappers = { obj.bananas = message.bananas; } if (message.coins?.length) { - obj.coins = message.coins.map((e) => e); + obj.coins = message.coins; } if (message.snacks?.length) { - obj.snacks = message.snacks.map((e) => e); + obj.snacks = message.snacks; } return obj; }, diff --git a/integration/simple-optionals/simple.ts b/integration/simple-optionals/simple.ts index 8d54cb554..0cfc642b5 100644 --- a/integration/simple-optionals/simple.ts +++ b/integration/simple-optionals/simple.ts @@ -439,7 +439,7 @@ export const Simple = { obj.coins = message.coins.map((e) => Math.round(e)); } if (message.snacks?.length) { - obj.snacks = message.snacks.map((e) => e); + obj.snacks = message.snacks; } if (message.oldStates?.length) { obj.oldStates = message.oldStates.map((e) => stateEnumToJSON(e)); @@ -948,10 +948,10 @@ export const SimpleWithWrappers = { obj.enabled = message.enabled; } if (message.coins?.length) { - obj.coins = message.coins.map((e) => e); + obj.coins = message.coins; } if (message.snacks?.length) { - obj.snacks = message.snacks.map((e) => e); + obj.snacks = message.snacks; } return obj; }, diff --git a/integration/simple-prototype-defaults/simple.ts b/integration/simple-prototype-defaults/simple.ts index 5ee911067..888ded2c6 100644 --- a/integration/simple-prototype-defaults/simple.ts +++ b/integration/simple-prototype-defaults/simple.ts @@ -537,7 +537,7 @@ export const Simple = { obj.coins = message.coins.map((e) => Math.round(e)); } if (message.snacks?.length) { - obj.snacks = message.snacks.map((e) => e); + obj.snacks = message.snacks; } if (message.oldStates?.length) { obj.oldStates = message.oldStates.map((e) => stateEnumToJSON(e)); @@ -1071,10 +1071,10 @@ export const SimpleWithWrappers = { obj.enabled = message.enabled; } if (message.coins?.length) { - obj.coins = message.coins.map((e) => e); + obj.coins = message.coins; } if (message.snacks?.length) { - obj.snacks = message.snacks.map((e) => e); + obj.snacks = message.snacks; } if (message.id !== undefined) { obj.id = message.id; diff --git a/integration/simple-snake/google/protobuf/struct.ts b/integration/simple-snake/google/protobuf/struct.ts index 4176b896c..b25347bd1 100644 --- a/integration/simple-snake/google/protobuf/struct.ts +++ b/integration/simple-snake/google/protobuf/struct.ts @@ -497,7 +497,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/simple-snake/simple.ts b/integration/simple-snake/simple.ts index 21275d25a..c5c95afdc 100644 --- a/integration/simple-snake/simple.ts +++ b/integration/simple-snake/simple.ts @@ -444,7 +444,7 @@ export const Simple = { obj.coins = message.coins.map((e) => Math.round(e)); } if (message.snacks?.length) { - obj.snacks = message.snacks.map((e) => e); + obj.snacks = message.snacks; } if (message.old_states?.length) { obj.old_states = message.old_states.map((e) => stateEnumToJSON(e)); @@ -953,10 +953,10 @@ export const SimpleWithWrappers = { obj.enabled = message.enabled; } if (message.coins?.length) { - obj.coins = message.coins.map((e) => e); + obj.coins = message.coins; } if (message.snacks?.length) { - obj.snacks = message.snacks.map((e) => e); + obj.snacks = message.snacks; } return obj; }, diff --git a/integration/simple-string-enums/google/protobuf/struct.ts b/integration/simple-string-enums/google/protobuf/struct.ts index a7240a875..0ac9518d0 100644 --- a/integration/simple-string-enums/google/protobuf/struct.ts +++ b/integration/simple-string-enums/google/protobuf/struct.ts @@ -507,7 +507,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/simple-unrecognized-enum/simple.ts b/integration/simple-unrecognized-enum/simple.ts index 1110c349f..e2cabed15 100644 --- a/integration/simple-unrecognized-enum/simple.ts +++ b/integration/simple-unrecognized-enum/simple.ts @@ -427,7 +427,7 @@ export const Simple = { obj.coins = message.coins.map((e) => Math.round(e)); } if (message.snacks?.length) { - obj.snacks = message.snacks.map((e) => e); + obj.snacks = message.snacks; } if (message.oldStates?.length) { obj.oldStates = message.oldStates.map((e) => stateEnumToJSON(e)); @@ -936,10 +936,10 @@ export const SimpleWithWrappers = { obj.enabled = message.enabled; } if (message.coins?.length) { - obj.coins = message.coins.map((e) => e); + obj.coins = message.coins; } if (message.snacks?.length) { - obj.snacks = message.snacks.map((e) => e); + obj.snacks = message.snacks; } return obj; }, diff --git a/integration/simple/simple.ts b/integration/simple/simple.ts index 1ba3fd9db..9fb06bd40 100644 --- a/integration/simple/simple.ts +++ b/integration/simple/simple.ts @@ -550,7 +550,7 @@ export const Simple = { obj.coins = message.coins.map((e) => Math.round(e)); } if (message.snacks?.length) { - obj.snacks = message.snacks.map((e) => e); + obj.snacks = message.snacks; } if (message.oldStates?.length) { obj.oldStates = message.oldStates.map((e) => stateEnumToJSON(e)); @@ -1088,10 +1088,10 @@ export const SimpleWithWrappers = { obj.enabled = message.enabled; } if (message.coins?.length) { - obj.coins = message.coins.map((e) => e); + obj.coins = message.coins; } if (message.snacks?.length) { - obj.snacks = message.snacks.map((e) => e); + obj.snacks = message.snacks; } if (message.id !== undefined) { obj.id = message.id; diff --git a/integration/static-only-type-registry/google/protobuf/struct.ts b/integration/static-only-type-registry/google/protobuf/struct.ts index e6c5d6857..51a4b8b87 100644 --- a/integration/static-only-type-registry/google/protobuf/struct.ts +++ b/integration/static-only-type-registry/google/protobuf/struct.ts @@ -512,7 +512,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/static-only/google/protobuf/struct.ts b/integration/static-only/google/protobuf/struct.ts index 1a6a21764..76ab89fa9 100644 --- a/integration/static-only/google/protobuf/struct.ts +++ b/integration/static-only/google/protobuf/struct.ts @@ -505,7 +505,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/struct/google/protobuf/struct.ts b/integration/struct/google/protobuf/struct.ts index f2b9f1bb6..3ca7265b7 100644 --- a/integration/struct/google/protobuf/struct.ts +++ b/integration/struct/google/protobuf/struct.ts @@ -497,7 +497,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/type-annotations/google/protobuf/struct.ts b/integration/type-annotations/google/protobuf/struct.ts index 783bf5043..dcf2210a0 100644 --- a/integration/type-annotations/google/protobuf/struct.ts +++ b/integration/type-annotations/google/protobuf/struct.ts @@ -519,7 +519,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/type-registry/google/protobuf/struct.ts b/integration/type-registry/google/protobuf/struct.ts index bacdd0ab7..3919be4ff 100644 --- a/integration/type-registry/google/protobuf/struct.ts +++ b/integration/type-registry/google/protobuf/struct.ts @@ -526,7 +526,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/use-date-string/use-date-string.ts b/integration/use-date-string/use-date-string.ts index 492a2c58f..e8d32a532 100644 --- a/integration/use-date-string/use-date-string.ts +++ b/integration/use-date-string/use-date-string.ts @@ -121,7 +121,7 @@ export const Todo = { obj.timestamp = message.timestamp; } if (message.repeatedTimestamp?.length) { - obj.repeatedTimestamp = message.repeatedTimestamp.map((e) => e); + obj.repeatedTimestamp = message.repeatedTimestamp; } if (message.optionalTimestamp !== undefined) { obj.optionalTimestamp = message.optionalTimestamp; diff --git a/integration/use-map-type/google/protobuf/struct.ts b/integration/use-map-type/google/protobuf/struct.ts index 3cc6b7eb7..0ace535d5 100644 --- a/integration/use-map-type/google/protobuf/struct.ts +++ b/integration/use-map-type/google/protobuf/struct.ts @@ -492,7 +492,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/use-numeric-enum-json/google/protobuf/struct.ts b/integration/use-numeric-enum-json/google/protobuf/struct.ts index e330fe112..0fe9ebd0b 100644 --- a/integration/use-numeric-enum-json/google/protobuf/struct.ts +++ b/integration/use-numeric-enum-json/google/protobuf/struct.ts @@ -497,7 +497,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/use-optionals-all/test.ts b/integration/use-optionals-all/test.ts index 54d22c595..049ec0b19 100644 --- a/integration/use-optionals-all/test.ts +++ b/integration/use-optionals-all/test.ts @@ -491,10 +491,10 @@ export const OptionalsTest = { obj.repLong = message.repLong.map((e) => Math.round(e)); } if (message.repTruth?.length) { - obj.repTruth = message.repTruth.map((e) => e); + obj.repTruth = message.repTruth; } if (message.repDescription?.length) { - obj.repDescription = message.repDescription.map((e) => e); + obj.repDescription = message.repDescription; } if (message.repData?.length) { obj.repData = message.repData.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array(0))); diff --git a/integration/use-optionals-no-undefined/test.ts b/integration/use-optionals-no-undefined/test.ts index 7b4bbd50c..ad6450be5 100644 --- a/integration/use-optionals-no-undefined/test.ts +++ b/integration/use-optionals-no-undefined/test.ts @@ -492,10 +492,10 @@ export const OptionalsTest = { obj.repLong = message.repLong.map((e) => Math.round(e)); } if (message.repTruth?.length) { - obj.repTruth = message.repTruth.map((e) => e); + obj.repTruth = message.repTruth; } if (message.repDescription?.length) { - obj.repDescription = message.repDescription.map((e) => e); + obj.repDescription = message.repDescription; } if (message.repData?.length) { obj.repData = message.repData.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array(0))); diff --git a/integration/use-readonly-types/google/protobuf/struct.ts b/integration/use-readonly-types/google/protobuf/struct.ts index 286af7846..0e294e2bd 100644 --- a/integration/use-readonly-types/google/protobuf/struct.ts +++ b/integration/use-readonly-types/google/protobuf/struct.ts @@ -510,7 +510,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/use-readonly-types/use-readonly-types.ts b/integration/use-readonly-types/use-readonly-types.ts index 6c8d4689e..8b44c2045 100644 --- a/integration/use-readonly-types/use-readonly-types.ts +++ b/integration/use-readonly-types/use-readonly-types.ts @@ -231,7 +231,7 @@ export const Entity = { obj.intArray = message.intArray.map((e) => Math.round(e)); } if (message.stringArray?.length) { - obj.stringArray = message.stringArray.map((e) => e); + obj.stringArray = message.stringArray; } if (message.subEntity !== undefined) { obj.subEntity = message.subEntity ? SubEntity.toJSON(message.subEntity) : undefined; diff --git a/integration/value/google/protobuf/struct.ts b/integration/value/google/protobuf/struct.ts index f2b9f1bb6..3ca7265b7 100644 --- a/integration/value/google/protobuf/struct.ts +++ b/integration/value/google/protobuf/struct.ts @@ -497,7 +497,7 @@ export const ListValue = { toJSON(message: ListValue): unknown { const obj: any = {}; if (message.values?.length) { - obj.values = message.values.map((e) => e); + obj.values = message.values; } return obj; }, diff --git a/integration/value/value.ts b/integration/value/value.ts index edcfe0c4b..a8e9092b0 100644 --- a/integration/value/value.ts +++ b/integration/value/value.ts @@ -107,10 +107,10 @@ export const ValueMessage = { obj.anyList = message.anyList; } if (message.repeatedAny?.length) { - obj.repeatedAny = message.repeatedAny.map((e) => e); + obj.repeatedAny = message.repeatedAny; } if (message.repeatedStrings?.length) { - obj.repeatedStrings = message.repeatedStrings.map((e) => e); + obj.repeatedStrings = message.repeatedStrings; } if (message.structValue !== undefined) { obj.structValue = message.structValue; diff --git a/integration/vector-tile/vector_tile.ts b/integration/vector-tile/vector_tile.ts index 5b4e33cc9..ffbe764bd 100644 --- a/integration/vector-tile/vector_tile.ts +++ b/integration/vector-tile/vector_tile.ts @@ -524,7 +524,7 @@ export const Tile_Layer = { obj.features = message.features.map((e) => e ? Tile_Feature.toJSON(e) : undefined); } if (message.keys?.length) { - obj.keys = message.keys.map((e) => e); + obj.keys = message.keys; } if (message.values?.length) { obj.values = message.values.map((e) => e ? Tile_Value.toJSON(e) : undefined); diff --git a/src/main.ts b/src/main.ts index 5c9053a4a..2d9843dab 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2071,9 +2071,11 @@ function generateToJson( } } else if (isRepeated(field)) { // Arrays might need their elements transformed + const transformElement = readSnippet("e"); + const maybeMap = transformElement.toCodeString([]) !== "e" ? code`.map(e => ${transformElement})` : ""; chunks.push(code` if (message.${fieldName}?.length) { - ${jsonProperty} = message.${fieldName}.map(e => ${readSnippet("e")}); + ${jsonProperty} = message.${fieldName}${maybeMap}; } `); } else if (isWithinOneOfThatShouldBeUnion(options, field)) { From bb6e0a96e9734c68c885b999b1bdfd199e4b60c9 Mon Sep 17 00:00:00 2001 From: Andrew Haines Date: Thu, 13 Jul 2023 14:02:20 +0100 Subject: [PATCH 3/4] Remove unnecessary undefined checks --- integration/avoid-import-conflicts/simple.ts | 2 +- integration/barrel-imports/foo.ts | 2 +- .../batching.ts | 6 ++-- integration/batching-with-context/batching.ts | 6 ++-- integration/batching/batching.ts | 6 ++-- integration/bytes-as-base64/message.ts | 2 +- .../bytes-node/google/protobuf/wrappers.ts | 2 +- integration/bytes-node/point.ts | 2 +- integration/file-suffix/parent.pb.ts | 2 +- .../from-partial-no-initialize/test.ts | 4 +-- integration/groups/test.ts | 10 +++---- integration/grpc-js/google/protobuf/struct.ts | 2 +- .../grpc-js/google/protobuf/wrappers.ts | 2 +- integration/grpc-web-abort-signal/example.ts | 4 +-- integration/grpc-web-go-server/example.ts | 4 +-- .../example.ts | 4 +-- integration/grpc-web-no-streaming/example.ts | 4 +-- integration/grpc-web/example.ts | 4 +-- integration/import-mapping/mapping.ts | 8 ++--- integration/import-suffix/parent.pb.ts | 2 +- .../nice-grpc/google/protobuf/struct.ts | 2 +- .../nice-grpc/google/protobuf/wrappers.ts | 2 +- integration/oneof-properties/oneof.ts | 6 ++-- .../google/protobuf/struct.ts | 12 ++++---- .../oneof-unions/google/protobuf/struct.ts | 12 ++++---- integration/oneof-unions/oneof.ts | 24 +++++++-------- integration/point/point.ts | 4 +-- .../simple-deprecated-fields/simple.ts | 2 +- .../google/protobuf/wrappers.ts | 2 +- .../google/protobuf/wrappers.ts | 2 +- .../simple-long/google/protobuf/wrappers.ts | 2 +- .../google/protobuf/wrappers.ts | 2 +- integration/simple-optionals/simple.ts | 14 ++++----- .../google/protobuf/wrappers.ts | 2 +- .../simple-prototype-defaults/simple.ts | 30 +++++++++---------- .../simple-snake/google/protobuf/struct.ts | 2 +- .../simple-snake/google/protobuf/wrappers.ts | 2 +- integration/simple-snake/simple.ts | 14 ++++----- .../google/protobuf/struct.ts | 2 +- .../google/protobuf/wrappers.ts | 2 +- .../simple-unrecognized-enum/simple.ts | 14 ++++----- .../simple/google/protobuf/wrappers.ts | 2 +- integration/simple/simple.ts | 30 +++++++++---------- .../static-only-type-registry/bar/bar.ts | 2 +- .../google/protobuf/struct.ts | 2 +- integration/static-only/bar/bar.ts | 2 +- .../static-only/google/protobuf/struct.ts | 2 +- integration/struct/google/protobuf/struct.ts | 2 +- integration/type-annotations/bar/bar.ts | 2 +- .../google/protobuf/struct.ts | 2 +- integration/type-registry/bar/bar.ts | 2 +- .../type-registry/google/protobuf/struct.ts | 2 +- integration/types-with-underscores/file.ts | 2 +- .../use-map-type/google/protobuf/struct.ts | 2 +- integration/use-map-type/use-map-type.ts | 4 +-- .../google/protobuf/struct.ts | 2 +- integration/use-optionals-all/test.ts | 14 ++++----- .../use-optionals-no-undefined/test.ts | 14 ++++----- .../google/protobuf/struct.ts | 12 ++++---- .../use-readonly-types/use-readonly-types.ts | 8 ++--- integration/value/google/protobuf/struct.ts | 2 +- integration/value/google/protobuf/wrappers.ts | 2 +- integration/vector-tile/vector_tile.ts | 6 ++-- .../google/protobuf/wrappers.ts | 2 +- src/main.ts | 17 ++++------- 65 files changed, 179 insertions(+), 190 deletions(-) diff --git a/integration/avoid-import-conflicts/simple.ts b/integration/avoid-import-conflicts/simple.ts index 24fbd4a07..299bbe76c 100644 --- a/integration/avoid-import-conflicts/simple.ts +++ b/integration/avoid-import-conflicts/simple.ts @@ -127,7 +127,7 @@ export const Simple = { obj.name = message.name; } if (message.otherSimple !== undefined) { - obj.otherSimple = message.otherSimple ? Simple3.toJSON(message.otherSimple) : undefined; + obj.otherSimple = Simple3.toJSON(message.otherSimple); } return obj; }, diff --git a/integration/barrel-imports/foo.ts b/integration/barrel-imports/foo.ts index 0fdbf4aaf..e5a81e984 100644 --- a/integration/barrel-imports/foo.ts +++ b/integration/barrel-imports/foo.ts @@ -65,7 +65,7 @@ export const Foo = { obj.name = message.name; } if (message.bar !== undefined) { - obj.bar = message.bar ? Bar.toJSON(message.bar) : undefined; + obj.bar = Bar.toJSON(message.bar); } return obj; }, diff --git a/integration/batching-with-context-esModuleInterop/batching.ts b/integration/batching-with-context-esModuleInterop/batching.ts index e18194009..3318bc324 100644 --- a/integration/batching-with-context-esModuleInterop/batching.ts +++ b/integration/batching-with-context-esModuleInterop/batching.ts @@ -146,7 +146,7 @@ export const BatchQueryResponse = { toJSON(message: BatchQueryResponse): unknown { const obj: any = {}; if (message.entities?.length) { - obj.entities = message.entities.map((e) => e ? Entity.toJSON(e) : undefined); + obj.entities = message.entities.map((e) => Entity.toJSON(e)); } return obj; }, @@ -357,7 +357,7 @@ export const BatchMapQueryResponse_EntitiesEntry = { obj.key = message.key; } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, @@ -480,7 +480,7 @@ export const GetOnlyMethodResponse = { toJSON(message: GetOnlyMethodResponse): unknown { const obj: any = {}; if (message.entity !== undefined) { - obj.entity = message.entity ? Entity.toJSON(message.entity) : undefined; + obj.entity = Entity.toJSON(message.entity); } return obj; }, diff --git a/integration/batching-with-context/batching.ts b/integration/batching-with-context/batching.ts index 2433149a0..84281ff2b 100644 --- a/integration/batching-with-context/batching.ts +++ b/integration/batching-with-context/batching.ts @@ -146,7 +146,7 @@ export const BatchQueryResponse = { toJSON(message: BatchQueryResponse): unknown { const obj: any = {}; if (message.entities?.length) { - obj.entities = message.entities.map((e) => e ? Entity.toJSON(e) : undefined); + obj.entities = message.entities.map((e) => Entity.toJSON(e)); } return obj; }, @@ -357,7 +357,7 @@ export const BatchMapQueryResponse_EntitiesEntry = { obj.key = message.key; } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, @@ -480,7 +480,7 @@ export const GetOnlyMethodResponse = { toJSON(message: GetOnlyMethodResponse): unknown { const obj: any = {}; if (message.entity !== undefined) { - obj.entity = message.entity ? Entity.toJSON(message.entity) : undefined; + obj.entity = Entity.toJSON(message.entity); } return obj; }, diff --git a/integration/batching/batching.ts b/integration/batching/batching.ts index 42015f9fd..ea5e6ddbb 100644 --- a/integration/batching/batching.ts +++ b/integration/batching/batching.ts @@ -144,7 +144,7 @@ export const BatchQueryResponse = { toJSON(message: BatchQueryResponse): unknown { const obj: any = {}; if (message.entities?.length) { - obj.entities = message.entities.map((e) => e ? Entity.toJSON(e) : undefined); + obj.entities = message.entities.map((e) => Entity.toJSON(e)); } return obj; }, @@ -355,7 +355,7 @@ export const BatchMapQueryResponse_EntitiesEntry = { obj.key = message.key; } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, @@ -478,7 +478,7 @@ export const GetOnlyMethodResponse = { toJSON(message: GetOnlyMethodResponse): unknown { const obj: any = {}; if (message.entity !== undefined) { - obj.entity = message.entity ? Entity.toJSON(message.entity) : undefined; + obj.entity = Entity.toJSON(message.entity); } return obj; }, diff --git a/integration/bytes-as-base64/message.ts b/integration/bytes-as-base64/message.ts index 692beeafc..9678e3084 100644 --- a/integration/bytes-as-base64/message.ts +++ b/integration/bytes-as-base64/message.ts @@ -18,7 +18,7 @@ export const Message = { toJSON(message: Message): unknown { const obj: any = {}; if (message.data.length !== 0) { - obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array(0)); + obj.data = base64FromBytes(message.data); } return obj; }, diff --git a/integration/bytes-node/google/protobuf/wrappers.ts b/integration/bytes-node/google/protobuf/wrappers.ts index cd546a6d2..fa227fba0 100644 --- a/integration/bytes-node/google/protobuf/wrappers.ts +++ b/integration/bytes-node/google/protobuf/wrappers.ts @@ -600,7 +600,7 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : Buffer.alloc(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/integration/bytes-node/point.ts b/integration/bytes-node/point.ts index 029576f14..c9f0a51e0 100644 --- a/integration/bytes-node/point.ts +++ b/integration/bytes-node/point.ts @@ -64,7 +64,7 @@ export const Point = { toJSON(message: Point): unknown { const obj: any = {}; if (message.data.length !== 0) { - obj.data = base64FromBytes(message.data !== undefined ? message.data : Buffer.alloc(0)); + obj.data = base64FromBytes(message.data); } if (message.dataWrapped !== undefined) { obj.dataWrapped = message.dataWrapped; diff --git a/integration/file-suffix/parent.pb.ts b/integration/file-suffix/parent.pb.ts index ed82c77d0..8cd18e863 100644 --- a/integration/file-suffix/parent.pb.ts +++ b/integration/file-suffix/parent.pb.ts @@ -77,7 +77,7 @@ export const Parent = { toJSON(message: Parent): unknown { const obj: any = {}; if (message.child !== undefined) { - obj.child = message.child ? Child.toJSON(message.child) : undefined; + obj.child = Child.toJSON(message.child); } if (message.childEnum !== 0) { obj.childEnum = childEnumToJSON(message.childEnum); diff --git a/integration/from-partial-no-initialize/test.ts b/integration/from-partial-no-initialize/test.ts index f81d83042..4dc48cfcb 100644 --- a/integration/from-partial-no-initialize/test.ts +++ b/integration/from-partial-no-initialize/test.ts @@ -252,10 +252,10 @@ export const TPartial = { } } if (message.message !== undefined) { - obj.message = message.message ? TPartialMessage.toJSON(message.message) : undefined; + obj.message = TPartialMessage.toJSON(message.message); } if (message.repeatedMessage?.length) { - obj.repeatedMessage = message.repeatedMessage.map((e) => e ? TPartialMessage.toJSON(e) : undefined); + obj.repeatedMessage = message.repeatedMessage.map((e) => TPartialMessage.toJSON(e)); } if (message.repeatedString?.length) { obj.repeatedString = message.repeatedString; diff --git a/integration/groups/test.ts b/integration/groups/test.ts index b2f0bcbcf..038e37513 100644 --- a/integration/groups/test.ts +++ b/integration/groups/test.ts @@ -147,7 +147,7 @@ export const GroupsOptionalTest = { obj.int1 = Math.round(message.int1); } if (message.group !== undefined) { - obj.group = message.group ? GroupsOptionalTest_Group.toJSON(message.group) : undefined; + obj.group = GroupsOptionalTest_Group.toJSON(message.group); } if (message.int3 !== undefined && message.int3 !== 0) { obj.int3 = Math.round(message.int3); @@ -415,7 +415,7 @@ export const GroupsRepeatedTest = { obj.int1 = message.int1.map((e) => Math.round(e)); } if (message.group?.length) { - obj.group = message.group.map((e) => e ? GroupsRepeatedTest_Group.toJSON(e) : undefined); + obj.group = message.group.map((e) => GroupsRepeatedTest_Group.toJSON(e)); } if (message.int3?.length) { obj.int3 = message.int3.map((e) => Math.round(e)); @@ -691,7 +691,7 @@ export const GroupsNestedTest = { obj.int1 = message.int1.map((e) => Math.round(e)); } if (message.group?.length) { - obj.group = message.group.map((e) => e ? GroupsNestedTest_Group.toJSON(e) : undefined); + obj.group = message.group.map((e) => GroupsNestedTest_Group.toJSON(e)); } if (message.int3?.length) { obj.int3 = message.int3.map((e) => Math.round(e)); @@ -790,7 +790,7 @@ export const GroupsNestedTest_Group = { toJSON(message: GroupsNestedTest_Group): unknown { const obj: any = {}; if (message.nested?.length) { - obj.nested = message.nested.map((e) => e ? GroupsNestedTest_Group_Nested.toJSON(e) : undefined); + obj.nested = message.nested.map((e) => GroupsNestedTest_Group_Nested.toJSON(e)); } return obj; }, @@ -884,7 +884,7 @@ export const GroupsNestedTest_Group_Nested = { toJSON(message: GroupsNestedTest_Group_Nested): unknown { const obj: any = {}; if (message.nested2?.length) { - obj.nested2 = message.nested2.map((e) => e ? GroupsNestedTest_Group_Nested_Nested2.toJSON(e) : undefined); + obj.nested2 = message.nested2.map((e) => GroupsNestedTest_Group_Nested_Nested2.toJSON(e)); } return obj; }, diff --git a/integration/grpc-js/google/protobuf/struct.ts b/integration/grpc-js/google/protobuf/struct.ts index 3ca7265b7..b2486a866 100644 --- a/integration/grpc-js/google/protobuf/struct.ts +++ b/integration/grpc-js/google/protobuf/struct.ts @@ -382,7 +382,7 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.nullValue !== undefined) { - obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + obj.nullValue = nullValueToJSON(message.nullValue); } if (message.numberValue !== undefined) { obj.numberValue = message.numberValue; diff --git a/integration/grpc-js/google/protobuf/wrappers.ts b/integration/grpc-js/google/protobuf/wrappers.ts index 0f8f714df..0b584fccb 100644 --- a/integration/grpc-js/google/protobuf/wrappers.ts +++ b/integration/grpc-js/google/protobuf/wrappers.ts @@ -600,7 +600,7 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/integration/grpc-web-abort-signal/example.ts b/integration/grpc-web-abort-signal/example.ts index 9ac07e9ee..a0f08c644 100644 --- a/integration/grpc-web-abort-signal/example.ts +++ b/integration/grpc-web-abort-signal/example.ts @@ -239,10 +239,10 @@ export const DashUserSettingsState = { obj.email = message.email; } if (message.urls !== undefined) { - obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined; + obj.urls = DashUserSettingsState_URLs.toJSON(message.urls); } if (message.flashes?.length) { - obj.flashes = message.flashes.map((e) => e ? DashFlash.toJSON(e) : undefined); + obj.flashes = message.flashes.map((e) => DashFlash.toJSON(e)); } return obj; }, diff --git a/integration/grpc-web-go-server/example.ts b/integration/grpc-web-go-server/example.ts index f6eccc262..d1f2e05e3 100644 --- a/integration/grpc-web-go-server/example.ts +++ b/integration/grpc-web-go-server/example.ts @@ -237,10 +237,10 @@ export const DashUserSettingsState = { obj.email = message.email; } if (message.urls !== undefined) { - obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined; + obj.urls = DashUserSettingsState_URLs.toJSON(message.urls); } if (message.flashes?.length) { - obj.flashes = message.flashes.map((e) => e ? DashFlash.toJSON(e) : undefined); + obj.flashes = message.flashes.map((e) => DashFlash.toJSON(e)); } return obj; }, diff --git a/integration/grpc-web-no-streaming-observable/example.ts b/integration/grpc-web-no-streaming-observable/example.ts index 7940e68c7..82366a50c 100644 --- a/integration/grpc-web-no-streaming-observable/example.ts +++ b/integration/grpc-web-no-streaming-observable/example.ts @@ -215,10 +215,10 @@ export const DashUserSettingsState = { obj.email = message.email; } if (message.urls !== undefined) { - obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined; + obj.urls = DashUserSettingsState_URLs.toJSON(message.urls); } if (message.flashes?.length) { - obj.flashes = message.flashes.map((e) => e ? DashFlash.toJSON(e) : undefined); + obj.flashes = message.flashes.map((e) => DashFlash.toJSON(e)); } return obj; }, diff --git a/integration/grpc-web-no-streaming/example.ts b/integration/grpc-web-no-streaming/example.ts index 71a80f812..d055a5e0c 100644 --- a/integration/grpc-web-no-streaming/example.ts +++ b/integration/grpc-web-no-streaming/example.ts @@ -213,10 +213,10 @@ export const DashUserSettingsState = { obj.email = message.email; } if (message.urls !== undefined) { - obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined; + obj.urls = DashUserSettingsState_URLs.toJSON(message.urls); } if (message.flashes?.length) { - obj.flashes = message.flashes.map((e) => e ? DashFlash.toJSON(e) : undefined); + obj.flashes = message.flashes.map((e) => DashFlash.toJSON(e)); } return obj; }, diff --git a/integration/grpc-web/example.ts b/integration/grpc-web/example.ts index 913eb841b..49e312479 100644 --- a/integration/grpc-web/example.ts +++ b/integration/grpc-web/example.ts @@ -239,10 +239,10 @@ export const DashUserSettingsState = { obj.email = message.email; } if (message.urls !== undefined) { - obj.urls = message.urls ? DashUserSettingsState_URLs.toJSON(message.urls) : undefined; + obj.urls = DashUserSettingsState_URLs.toJSON(message.urls); } if (message.flashes?.length) { - obj.flashes = message.flashes.map((e) => e ? DashFlash.toJSON(e) : undefined); + obj.flashes = message.flashes.map((e) => DashFlash.toJSON(e)); } return obj; }, diff --git a/integration/import-mapping/mapping.ts b/integration/import-mapping/mapping.ts index 14f7e9f68..06fd3c94e 100644 --- a/integration/import-mapping/mapping.ts +++ b/integration/import-mapping/mapping.ts @@ -70,7 +70,7 @@ export const WithEmtpy = { toJSON(message: WithEmtpy): unknown { const obj: any = {}; if (message.empty !== undefined) { - obj.empty = message.empty ? Empty.toJSON(message.empty) : undefined; + obj.empty = Empty.toJSON(message.empty); } return obj; }, @@ -290,7 +290,7 @@ export const WithAll = { toJSON(message: WithAll): unknown { const obj: any = {}; if (message.empty !== undefined) { - obj.empty = message.empty ? Empty.toJSON(message.empty) : undefined; + obj.empty = Empty.toJSON(message.empty); } if (message.strut !== undefined) { obj.strut = message.strut; @@ -299,10 +299,10 @@ export const WithAll = { obj.timestamp = message.timestamp.toISOString(); } if (message.duration !== undefined) { - obj.duration = message.duration ? Duration.toJSON(message.duration) : undefined; + obj.duration = Duration.toJSON(message.duration); } if (message.veryVerySecret !== undefined) { - obj.veryVerySecret = message.veryVerySecret ? VeryVerySecret.toJSON(message.veryVerySecret) : undefined; + obj.veryVerySecret = VeryVerySecret.toJSON(message.veryVerySecret); } return obj; }, diff --git a/integration/import-suffix/parent.pb.ts b/integration/import-suffix/parent.pb.ts index b3a036d25..0cd242d71 100644 --- a/integration/import-suffix/parent.pb.ts +++ b/integration/import-suffix/parent.pb.ts @@ -77,7 +77,7 @@ export const Parent = { toJSON(message: Parent): unknown { const obj: any = {}; if (message.child !== undefined) { - obj.child = message.child ? Child.toJSON(message.child) : undefined; + obj.child = Child.toJSON(message.child); } if (message.childEnum !== 0) { obj.childEnum = childEnumToJSON(message.childEnum); diff --git a/integration/nice-grpc/google/protobuf/struct.ts b/integration/nice-grpc/google/protobuf/struct.ts index 7cf9b223f..1aa09a906 100644 --- a/integration/nice-grpc/google/protobuf/struct.ts +++ b/integration/nice-grpc/google/protobuf/struct.ts @@ -382,7 +382,7 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.nullValue !== undefined) { - obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + obj.nullValue = nullValueToJSON(message.nullValue); } if (message.numberValue !== undefined) { obj.numberValue = message.numberValue; diff --git a/integration/nice-grpc/google/protobuf/wrappers.ts b/integration/nice-grpc/google/protobuf/wrappers.ts index cf8a4920d..54591476f 100644 --- a/integration/nice-grpc/google/protobuf/wrappers.ts +++ b/integration/nice-grpc/google/protobuf/wrappers.ts @@ -600,7 +600,7 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/integration/oneof-properties/oneof.ts b/integration/oneof-properties/oneof.ts index 366d593fd..4e844786c 100644 --- a/integration/oneof-properties/oneof.ts +++ b/integration/oneof-properties/oneof.ts @@ -251,16 +251,16 @@ export const PleaseChoose = { obj.aString = message.aString; } if (message.aMessage !== undefined) { - obj.aMessage = message.aMessage ? PleaseChoose_Submessage.toJSON(message.aMessage) : undefined; + obj.aMessage = PleaseChoose_Submessage.toJSON(message.aMessage); } if (message.aBool !== undefined) { obj.aBool = message.aBool; } if (message.bunchaBytes !== undefined) { - obj.bunchaBytes = message.bunchaBytes !== undefined ? base64FromBytes(message.bunchaBytes) : undefined; + obj.bunchaBytes = base64FromBytes(message.bunchaBytes); } if (message.anEnum !== undefined) { - obj.anEnum = message.anEnum !== undefined ? pleaseChoose_StateEnumToJSON(message.anEnum) : undefined; + obj.anEnum = pleaseChoose_StateEnumToJSON(message.anEnum); } if (message.age !== 0) { obj.age = Math.round(message.age); diff --git a/integration/oneof-unions-snake/google/protobuf/struct.ts b/integration/oneof-unions-snake/google/protobuf/struct.ts index d9eebf503..f21e1fa8b 100644 --- a/integration/oneof-unions-snake/google/protobuf/struct.ts +++ b/integration/oneof-unions-snake/google/protobuf/struct.ts @@ -373,22 +373,22 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.kind?.$case === "null_value") { - obj.null_value = message.kind?.null_value !== undefined ? nullValueToJSON(message.kind?.null_value) : undefined; + obj.null_value = nullValueToJSON(message.kind.null_value); } if (message.kind?.$case === "number_value") { - obj.number_value = message.kind?.number_value; + obj.number_value = message.kind.number_value; } if (message.kind?.$case === "string_value") { - obj.string_value = message.kind?.string_value; + obj.string_value = message.kind.string_value; } if (message.kind?.$case === "bool_value") { - obj.bool_value = message.kind?.bool_value; + obj.bool_value = message.kind.bool_value; } if (message.kind?.$case === "struct_value") { - obj.struct_value = message.kind?.struct_value; + obj.struct_value = message.kind.struct_value; } if (message.kind?.$case === "list_value") { - obj.list_value = message.kind?.list_value; + obj.list_value = message.kind.list_value; } return obj; }, diff --git a/integration/oneof-unions/google/protobuf/struct.ts b/integration/oneof-unions/google/protobuf/struct.ts index a62b72bdf..5c0628529 100644 --- a/integration/oneof-unions/google/protobuf/struct.ts +++ b/integration/oneof-unions/google/protobuf/struct.ts @@ -370,22 +370,22 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.kind?.$case === "nullValue") { - obj.nullValue = message.kind?.nullValue !== undefined ? nullValueToJSON(message.kind?.nullValue) : undefined; + obj.nullValue = nullValueToJSON(message.kind.nullValue); } if (message.kind?.$case === "numberValue") { - obj.numberValue = message.kind?.numberValue; + obj.numberValue = message.kind.numberValue; } if (message.kind?.$case === "stringValue") { - obj.stringValue = message.kind?.stringValue; + obj.stringValue = message.kind.stringValue; } if (message.kind?.$case === "boolValue") { - obj.boolValue = message.kind?.boolValue; + obj.boolValue = message.kind.boolValue; } if (message.kind?.$case === "structValue") { - obj.structValue = message.kind?.structValue; + obj.structValue = message.kind.structValue; } if (message.kind?.$case === "listValue") { - obj.listValue = message.kind?.listValue; + obj.listValue = message.kind.listValue; } return obj; }, diff --git a/integration/oneof-unions/oneof.ts b/integration/oneof-unions/oneof.ts index 6b4953afd..e377b010a 100644 --- a/integration/oneof-unions/oneof.ts +++ b/integration/oneof-unions/oneof.ts @@ -266,41 +266,37 @@ export const PleaseChoose = { obj.name = message.name; } if (message.choice?.$case === "aNumber") { - obj.aNumber = message.choice?.aNumber; + obj.aNumber = message.choice.aNumber; } if (message.choice?.$case === "aString") { - obj.aString = message.choice?.aString; + obj.aString = message.choice.aString; } if (message.choice?.$case === "aMessage") { - obj.aMessage = message.choice?.aMessage ? PleaseChoose_Submessage.toJSON(message.choice?.aMessage) : undefined; + obj.aMessage = PleaseChoose_Submessage.toJSON(message.choice.aMessage); } if (message.choice?.$case === "aBool") { - obj.aBool = message.choice?.aBool; + obj.aBool = message.choice.aBool; } if (message.choice?.$case === "bunchaBytes") { - obj.bunchaBytes = message.choice?.bunchaBytes !== undefined - ? base64FromBytes(message.choice?.bunchaBytes) - : undefined; + obj.bunchaBytes = base64FromBytes(message.choice.bunchaBytes); } if (message.choice?.$case === "anEnum") { - obj.anEnum = message.choice?.anEnum !== undefined - ? pleaseChoose_StateEnumToJSON(message.choice?.anEnum) - : undefined; + obj.anEnum = pleaseChoose_StateEnumToJSON(message.choice.anEnum); } if (message.age !== 0) { obj.age = Math.round(message.age); } if (message.eitherOr?.$case === "either") { - obj.either = message.eitherOr?.either; + obj.either = message.eitherOr.either; } if (message.eitherOr?.$case === "or") { - obj.or = message.eitherOr?.or; + obj.or = message.eitherOr.or; } if (message.eitherOr?.$case === "thirdOption") { - obj.thirdOption = message.eitherOr?.thirdOption; + obj.thirdOption = message.eitherOr.thirdOption; } if (message.signature.length !== 0) { - obj.signature = base64FromBytes(message.signature !== undefined ? message.signature : new Uint8Array(0)); + obj.signature = base64FromBytes(message.signature); } if (message.value !== undefined) { obj.value = message.value; diff --git a/integration/point/point.ts b/integration/point/point.ts index 3185d1715..b98c2845d 100644 --- a/integration/point/point.ts +++ b/integration/point/point.ts @@ -140,10 +140,10 @@ export const Area = { toJSON(message: Area): unknown { const obj: any = {}; if (message.nw !== undefined) { - obj.nw = message.nw ? Point.toJSON(message.nw) : undefined; + obj.nw = Point.toJSON(message.nw); } if (message.se !== undefined) { - obj.se = message.se ? Point.toJSON(message.se) : undefined; + obj.se = Point.toJSON(message.se); } return obj; }, diff --git a/integration/simple-deprecated-fields/simple.ts b/integration/simple-deprecated-fields/simple.ts index 751baed7d..f9a7fb45b 100644 --- a/integration/simple-deprecated-fields/simple.ts +++ b/integration/simple-deprecated-fields/simple.ts @@ -127,7 +127,7 @@ export const Simple = { obj.age = Math.round(message.age); } if (message.child !== undefined) { - obj.child = message.child ? Child.toJSON(message.child) : undefined; + obj.child = Child.toJSON(message.child); } if (message.testField !== "") { obj.testField = message.testField; diff --git a/integration/simple-long-bigint/google/protobuf/wrappers.ts b/integration/simple-long-bigint/google/protobuf/wrappers.ts index cf3b7eaba..4dac2c482 100644 --- a/integration/simple-long-bigint/google/protobuf/wrappers.ts +++ b/integration/simple-long-bigint/google/protobuf/wrappers.ts @@ -600,7 +600,7 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/integration/simple-long-string/google/protobuf/wrappers.ts b/integration/simple-long-string/google/protobuf/wrappers.ts index 97c1be63c..5ade52622 100644 --- a/integration/simple-long-string/google/protobuf/wrappers.ts +++ b/integration/simple-long-string/google/protobuf/wrappers.ts @@ -600,7 +600,7 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/integration/simple-long/google/protobuf/wrappers.ts b/integration/simple-long/google/protobuf/wrappers.ts index beb5a1224..65076b2d5 100644 --- a/integration/simple-long/google/protobuf/wrappers.ts +++ b/integration/simple-long/google/protobuf/wrappers.ts @@ -600,7 +600,7 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/integration/simple-optionals/google/protobuf/wrappers.ts b/integration/simple-optionals/google/protobuf/wrappers.ts index 0f8f714df..0b584fccb 100644 --- a/integration/simple-optionals/google/protobuf/wrappers.ts +++ b/integration/simple-optionals/google/protobuf/wrappers.ts @@ -600,7 +600,7 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/integration/simple-optionals/simple.ts b/integration/simple-optionals/simple.ts index 0cfc642b5..001ce7369 100644 --- a/integration/simple-optionals/simple.ts +++ b/integration/simple-optionals/simple.ts @@ -427,13 +427,13 @@ export const Simple = { obj.createdAt = message.createdAt.toISOString(); } if (message.child !== undefined) { - obj.child = message.child ? Child.toJSON(message.child) : undefined; + obj.child = Child.toJSON(message.child); } if (message.state !== 0) { obj.state = stateEnumToJSON(message.state); } if (message.grandChildren?.length) { - obj.grandChildren = message.grandChildren.map((e) => e ? Child.toJSON(e) : undefined); + obj.grandChildren = message.grandChildren.map((e) => Child.toJSON(e)); } if (message.coins?.length) { obj.coins = message.coins.map((e) => Math.round(e)); @@ -445,7 +445,7 @@ export const Simple = { obj.oldStates = message.oldStates.map((e) => stateEnumToJSON(e)); } if (message.thing !== undefined) { - obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + obj.thing = ImportedThing.toJSON(message.thing); } return obj; }, @@ -616,7 +616,7 @@ export const Nested = { obj.name = message.name; } if (message.message !== undefined) { - obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined; + obj.message = Nested_InnerMessage.toJSON(message.message); } if (message.state !== 0) { obj.state = nested_InnerEnumToJSON(message.state); @@ -697,7 +697,7 @@ export const Nested_InnerMessage = { obj.name = message.name; } if (message.deep !== undefined) { - obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined; + obj.deep = Nested_InnerMessage_DeepMessage.toJSON(message.deep); } return obj; }, @@ -1243,7 +1243,7 @@ export const SimpleWithMap_EntitiesByIdEntry = { obj.key = Math.round(message.key); } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, @@ -1550,7 +1550,7 @@ export const SimpleWithSnakeCaseMap_EntitiesByIdEntry = { obj.key = Math.round(message.key); } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, diff --git a/integration/simple-prototype-defaults/google/protobuf/wrappers.ts b/integration/simple-prototype-defaults/google/protobuf/wrappers.ts index e7f55f3ac..4c0fea75a 100644 --- a/integration/simple-prototype-defaults/google/protobuf/wrappers.ts +++ b/integration/simple-prototype-defaults/google/protobuf/wrappers.ts @@ -600,7 +600,7 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/integration/simple-prototype-defaults/simple.ts b/integration/simple-prototype-defaults/simple.ts index 888ded2c6..31f2e5dd6 100644 --- a/integration/simple-prototype-defaults/simple.ts +++ b/integration/simple-prototype-defaults/simple.ts @@ -525,13 +525,13 @@ export const Simple = { obj.createdAt = message.createdAt.toISOString(); } if (message.child !== undefined) { - obj.child = message.child ? Child.toJSON(message.child) : undefined; + obj.child = Child.toJSON(message.child); } if (message.state !== 0) { obj.state = stateEnumToJSON(message.state); } if (message.grandChildren?.length) { - obj.grandChildren = message.grandChildren.map((e) => e ? Child.toJSON(e) : undefined); + obj.grandChildren = message.grandChildren.map((e) => Child.toJSON(e)); } if (message.coins?.length) { obj.coins = message.coins.map((e) => Math.round(e)); @@ -543,16 +543,16 @@ export const Simple = { obj.oldStates = message.oldStates.map((e) => stateEnumToJSON(e)); } if (message.thing !== undefined) { - obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + obj.thing = ImportedThing.toJSON(message.thing); } if (message.blobs?.length) { - obj.blobs = message.blobs.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array(0))); + obj.blobs = message.blobs.map((e) => base64FromBytes(e)); } if (message.birthday !== undefined) { - obj.birthday = message.birthday ? DateMessage.toJSON(message.birthday) : undefined; + obj.birthday = DateMessage.toJSON(message.birthday); } if (message.blob.length !== 0) { - obj.blob = base64FromBytes(message.blob !== undefined ? message.blob : new Uint8Array(0)); + obj.blob = base64FromBytes(message.blob); } return obj; }, @@ -728,7 +728,7 @@ export const Nested = { obj.name = message.name; } if (message.message !== undefined) { - obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined; + obj.message = Nested_InnerMessage.toJSON(message.message); } if (message.state !== 0) { obj.state = nested_InnerEnumToJSON(message.state); @@ -809,7 +809,7 @@ export const Nested_InnerMessage = { obj.name = message.name; } if (message.deep !== undefined) { - obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined; + obj.deep = Nested_InnerMessage_DeepMessage.toJSON(message.deep); } return obj; }, @@ -1530,7 +1530,7 @@ export const SimpleWithMap_EntitiesByIdEntry = { obj.key = Math.round(message.key); } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, @@ -1834,7 +1834,7 @@ export const SimpleWithMap_MapOfBytesEntry = { obj.key = message.key; } if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, @@ -2152,7 +2152,7 @@ export const SimpleWithSnakeCaseMap_EntitiesByIdEntry = { obj.key = Math.round(message.key); } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, @@ -2823,16 +2823,16 @@ export const SimpleButOptional = { obj.createdAt = message.createdAt.toISOString(); } if (message.child !== undefined) { - obj.child = message.child ? Child.toJSON(message.child) : undefined; + obj.child = Child.toJSON(message.child); } if (message.state !== undefined) { - obj.state = message.state !== undefined ? stateEnumToJSON(message.state) : undefined; + obj.state = stateEnumToJSON(message.state); } if (message.thing !== undefined) { - obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + obj.thing = ImportedThing.toJSON(message.thing); } if (message.birthday !== undefined) { - obj.birthday = message.birthday ? DateMessage.toJSON(message.birthday) : undefined; + obj.birthday = DateMessage.toJSON(message.birthday); } return obj; }, diff --git a/integration/simple-snake/google/protobuf/struct.ts b/integration/simple-snake/google/protobuf/struct.ts index b25347bd1..cf5700cc5 100644 --- a/integration/simple-snake/google/protobuf/struct.ts +++ b/integration/simple-snake/google/protobuf/struct.ts @@ -382,7 +382,7 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.null_value !== undefined) { - obj.null_value = message.null_value !== undefined ? nullValueToJSON(message.null_value) : undefined; + obj.null_value = nullValueToJSON(message.null_value); } if (message.number_value !== undefined) { obj.number_value = message.number_value; diff --git a/integration/simple-snake/google/protobuf/wrappers.ts b/integration/simple-snake/google/protobuf/wrappers.ts index 0f8f714df..0b584fccb 100644 --- a/integration/simple-snake/google/protobuf/wrappers.ts +++ b/integration/simple-snake/google/protobuf/wrappers.ts @@ -600,7 +600,7 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/integration/simple-snake/simple.ts b/integration/simple-snake/simple.ts index c5c95afdc..5730934bc 100644 --- a/integration/simple-snake/simple.ts +++ b/integration/simple-snake/simple.ts @@ -432,13 +432,13 @@ export const Simple = { obj.created_at = message.created_at.toISOString(); } if (message.child !== undefined) { - obj.child = message.child ? Child.toJSON(message.child) : undefined; + obj.child = Child.toJSON(message.child); } if (message.state !== 0) { obj.state = stateEnumToJSON(message.state); } if (message.grand_children?.length) { - obj.grand_children = message.grand_children.map((e) => e ? Child.toJSON(e) : undefined); + obj.grand_children = message.grand_children.map((e) => Child.toJSON(e)); } if (message.coins?.length) { obj.coins = message.coins.map((e) => Math.round(e)); @@ -450,7 +450,7 @@ export const Simple = { obj.old_states = message.old_states.map((e) => stateEnumToJSON(e)); } if (message.thing !== undefined) { - obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + obj.thing = ImportedThing.toJSON(message.thing); } return obj; }, @@ -621,7 +621,7 @@ export const Nested = { obj.name = message.name; } if (message.message !== undefined) { - obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined; + obj.message = Nested_InnerMessage.toJSON(message.message); } if (message.state !== 0) { obj.state = nested_InnerEnumToJSON(message.state); @@ -702,7 +702,7 @@ export const Nested_InnerMessage = { obj.name = message.name; } if (message.deep !== undefined) { - obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined; + obj.deep = Nested_InnerMessage_DeepMessage.toJSON(message.deep); } return obj; }, @@ -1248,7 +1248,7 @@ export const SimpleWithMap_EntitiesByIdEntry = { obj.key = Math.round(message.key); } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, @@ -1555,7 +1555,7 @@ export const SimpleWithSnakeCaseMap_EntitiesByIdEntry = { obj.key = Math.round(message.key); } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, diff --git a/integration/simple-string-enums/google/protobuf/struct.ts b/integration/simple-string-enums/google/protobuf/struct.ts index 0ac9518d0..c0bd44e2d 100644 --- a/integration/simple-string-enums/google/protobuf/struct.ts +++ b/integration/simple-string-enums/google/protobuf/struct.ts @@ -392,7 +392,7 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.nullValue !== undefined) { - obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + obj.nullValue = nullValueToJSON(message.nullValue); } if (message.numberValue !== undefined) { obj.numberValue = message.numberValue; diff --git a/integration/simple-unrecognized-enum/google/protobuf/wrappers.ts b/integration/simple-unrecognized-enum/google/protobuf/wrappers.ts index 0f8f714df..0b584fccb 100644 --- a/integration/simple-unrecognized-enum/google/protobuf/wrappers.ts +++ b/integration/simple-unrecognized-enum/google/protobuf/wrappers.ts @@ -600,7 +600,7 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/integration/simple-unrecognized-enum/simple.ts b/integration/simple-unrecognized-enum/simple.ts index e2cabed15..6a3370f9d 100644 --- a/integration/simple-unrecognized-enum/simple.ts +++ b/integration/simple-unrecognized-enum/simple.ts @@ -415,13 +415,13 @@ export const Simple = { obj.createdAt = message.createdAt.toISOString(); } if (message.child !== undefined) { - obj.child = message.child ? Child.toJSON(message.child) : undefined; + obj.child = Child.toJSON(message.child); } if (message.state !== 0) { obj.state = stateEnumToJSON(message.state); } if (message.grandChildren?.length) { - obj.grandChildren = message.grandChildren.map((e) => e ? Child.toJSON(e) : undefined); + obj.grandChildren = message.grandChildren.map((e) => Child.toJSON(e)); } if (message.coins?.length) { obj.coins = message.coins.map((e) => Math.round(e)); @@ -433,7 +433,7 @@ export const Simple = { obj.oldStates = message.oldStates.map((e) => stateEnumToJSON(e)); } if (message.thing !== undefined) { - obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + obj.thing = ImportedThing.toJSON(message.thing); } return obj; }, @@ -604,7 +604,7 @@ export const Nested = { obj.name = message.name; } if (message.message !== undefined) { - obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined; + obj.message = Nested_InnerMessage.toJSON(message.message); } if (message.state !== 0) { obj.state = nested_InnerEnumToJSON(message.state); @@ -685,7 +685,7 @@ export const Nested_InnerMessage = { obj.name = message.name; } if (message.deep !== undefined) { - obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined; + obj.deep = Nested_InnerMessage_DeepMessage.toJSON(message.deep); } return obj; }, @@ -1231,7 +1231,7 @@ export const SimpleWithMap_EntitiesByIdEntry = { obj.key = Math.round(message.key); } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, @@ -1538,7 +1538,7 @@ export const SimpleWithSnakeCaseMap_EntitiesByIdEntry = { obj.key = Math.round(message.key); } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, diff --git a/integration/simple/google/protobuf/wrappers.ts b/integration/simple/google/protobuf/wrappers.ts index 0f8f714df..0b584fccb 100644 --- a/integration/simple/google/protobuf/wrappers.ts +++ b/integration/simple/google/protobuf/wrappers.ts @@ -600,7 +600,7 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/integration/simple/simple.ts b/integration/simple/simple.ts index 9fb06bd40..5a21a294f 100644 --- a/integration/simple/simple.ts +++ b/integration/simple/simple.ts @@ -538,13 +538,13 @@ export const Simple = { obj.createdAt = message.createdAt.toISOString(); } if (message.child !== undefined) { - obj.child = message.child ? Child.toJSON(message.child) : undefined; + obj.child = Child.toJSON(message.child); } if (message.state !== 0) { obj.state = stateEnumToJSON(message.state); } if (message.grandChildren?.length) { - obj.grandChildren = message.grandChildren.map((e) => e ? Child.toJSON(e) : undefined); + obj.grandChildren = message.grandChildren.map((e) => Child.toJSON(e)); } if (message.coins?.length) { obj.coins = message.coins.map((e) => Math.round(e)); @@ -556,16 +556,16 @@ export const Simple = { obj.oldStates = message.oldStates.map((e) => stateEnumToJSON(e)); } if (message.thing !== undefined) { - obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + obj.thing = ImportedThing.toJSON(message.thing); } if (message.blobs?.length) { - obj.blobs = message.blobs.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array(0))); + obj.blobs = message.blobs.map((e) => base64FromBytes(e)); } if (message.birthday !== undefined) { - obj.birthday = message.birthday ? DateMessage.toJSON(message.birthday) : undefined; + obj.birthday = DateMessage.toJSON(message.birthday); } if (message.blob.length !== 0) { - obj.blob = base64FromBytes(message.blob !== undefined ? message.blob : new Uint8Array(0)); + obj.blob = base64FromBytes(message.blob); } if (message.enabled === true) { obj.enabled = message.enabled; @@ -745,7 +745,7 @@ export const Nested = { obj.name = message.name; } if (message.message !== undefined) { - obj.message = message.message ? Nested_InnerMessage.toJSON(message.message) : undefined; + obj.message = Nested_InnerMessage.toJSON(message.message); } if (message.state !== 0) { obj.state = nested_InnerEnumToJSON(message.state); @@ -826,7 +826,7 @@ export const Nested_InnerMessage = { obj.name = message.name; } if (message.deep !== undefined) { - obj.deep = message.deep ? Nested_InnerMessage_DeepMessage.toJSON(message.deep) : undefined; + obj.deep = Nested_InnerMessage_DeepMessage.toJSON(message.deep); } return obj; }, @@ -1547,7 +1547,7 @@ export const SimpleWithMap_EntitiesByIdEntry = { obj.key = Math.round(message.key); } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, @@ -1851,7 +1851,7 @@ export const SimpleWithMap_MapOfBytesEntry = { obj.key = message.key; } if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, @@ -2163,7 +2163,7 @@ export const SimpleWithSnakeCaseMap_EntitiesByIdEntry = { obj.key = Math.round(message.key); } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, @@ -2828,16 +2828,16 @@ export const SimpleButOptional = { obj.createdAt = message.createdAt.toISOString(); } if (message.child !== undefined) { - obj.child = message.child ? Child.toJSON(message.child) : undefined; + obj.child = Child.toJSON(message.child); } if (message.state !== undefined) { - obj.state = message.state !== undefined ? stateEnumToJSON(message.state) : undefined; + obj.state = stateEnumToJSON(message.state); } if (message.thing !== undefined) { - obj.thing = message.thing ? ImportedThing.toJSON(message.thing) : undefined; + obj.thing = ImportedThing.toJSON(message.thing); } if (message.birthday !== undefined) { - obj.birthday = message.birthday ? DateMessage.toJSON(message.birthday) : undefined; + obj.birthday = DateMessage.toJSON(message.birthday); } return obj; }, diff --git a/integration/static-only-type-registry/bar/bar.ts b/integration/static-only-type-registry/bar/bar.ts index b6f291854..7b1a4ac87 100644 --- a/integration/static-only-type-registry/bar/bar.ts +++ b/integration/static-only-type-registry/bar/bar.ts @@ -53,7 +53,7 @@ export const Bar = { toJSON(message: Bar): unknown { const obj: any = {}; if (message.foo !== undefined) { - obj.foo = message.foo ? Foo.toJSON(message.foo) : undefined; + obj.foo = Foo.toJSON(message.foo); } return obj; }, diff --git a/integration/static-only-type-registry/google/protobuf/struct.ts b/integration/static-only-type-registry/google/protobuf/struct.ts index 51a4b8b87..239a36208 100644 --- a/integration/static-only-type-registry/google/protobuf/struct.ts +++ b/integration/static-only-type-registry/google/protobuf/struct.ts @@ -393,7 +393,7 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.nullValue !== undefined) { - obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + obj.nullValue = nullValueToJSON(message.nullValue); } if (message.numberValue !== undefined) { obj.numberValue = message.numberValue; diff --git a/integration/static-only/bar/bar.ts b/integration/static-only/bar/bar.ts index b725ba252..43cb9de82 100644 --- a/integration/static-only/bar/bar.ts +++ b/integration/static-only/bar/bar.ts @@ -52,7 +52,7 @@ export const Bar = { toJSON(message: Bar): unknown { const obj: any = {}; if (message.foo !== undefined) { - obj.foo = message.foo ? Foo.toJSON(message.foo) : undefined; + obj.foo = Foo.toJSON(message.foo); } return obj; }, diff --git a/integration/static-only/google/protobuf/struct.ts b/integration/static-only/google/protobuf/struct.ts index 76ab89fa9..64cca73ce 100644 --- a/integration/static-only/google/protobuf/struct.ts +++ b/integration/static-only/google/protobuf/struct.ts @@ -388,7 +388,7 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.nullValue !== undefined) { - obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + obj.nullValue = nullValueToJSON(message.nullValue); } if (message.numberValue !== undefined) { obj.numberValue = message.numberValue; diff --git a/integration/struct/google/protobuf/struct.ts b/integration/struct/google/protobuf/struct.ts index 3ca7265b7..b2486a866 100644 --- a/integration/struct/google/protobuf/struct.ts +++ b/integration/struct/google/protobuf/struct.ts @@ -382,7 +382,7 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.nullValue !== undefined) { - obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + obj.nullValue = nullValueToJSON(message.nullValue); } if (message.numberValue !== undefined) { obj.numberValue = message.numberValue; diff --git a/integration/type-annotations/bar/bar.ts b/integration/type-annotations/bar/bar.ts index a87e0a857..aef3a1bfb 100644 --- a/integration/type-annotations/bar/bar.ts +++ b/integration/type-annotations/bar/bar.ts @@ -53,7 +53,7 @@ export const Bar = { toJSON(message: Bar): unknown { const obj: any = {}; if (message.foo !== undefined) { - obj.foo = message.foo ? Foo.toJSON(message.foo) : undefined; + obj.foo = Foo.toJSON(message.foo); } return obj; }, diff --git a/integration/type-annotations/google/protobuf/struct.ts b/integration/type-annotations/google/protobuf/struct.ts index dcf2210a0..6e0125ecc 100644 --- a/integration/type-annotations/google/protobuf/struct.ts +++ b/integration/type-annotations/google/protobuf/struct.ts @@ -402,7 +402,7 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.nullValue !== undefined) { - obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + obj.nullValue = nullValueToJSON(message.nullValue); } if (message.numberValue !== undefined) { obj.numberValue = message.numberValue; diff --git a/integration/type-registry/bar/bar.ts b/integration/type-registry/bar/bar.ts index 1eb37b04e..2b5060a88 100644 --- a/integration/type-registry/bar/bar.ts +++ b/integration/type-registry/bar/bar.ts @@ -54,7 +54,7 @@ export const Bar = { toJSON(message: Bar): unknown { const obj: any = {}; if (message.foo !== undefined) { - obj.foo = message.foo ? Foo.toJSON(message.foo) : undefined; + obj.foo = Foo.toJSON(message.foo); } return obj; }, diff --git a/integration/type-registry/google/protobuf/struct.ts b/integration/type-registry/google/protobuf/struct.ts index 3919be4ff..451bad188 100644 --- a/integration/type-registry/google/protobuf/struct.ts +++ b/integration/type-registry/google/protobuf/struct.ts @@ -407,7 +407,7 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.nullValue !== undefined) { - obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + obj.nullValue = nullValueToJSON(message.nullValue); } if (message.numberValue !== undefined) { obj.numberValue = message.numberValue; diff --git a/integration/types-with-underscores/file.ts b/integration/types-with-underscores/file.ts index 950992a29..6b174be1f 100644 --- a/integration/types-with-underscores/file.ts +++ b/integration/types-with-underscores/file.ts @@ -52,7 +52,7 @@ export const Baz = { toJSON(message: Baz): unknown { const obj: any = {}; if (message.foo !== undefined) { - obj.foo = message.foo ? FooBar.toJSON(message.foo) : undefined; + obj.foo = FooBar.toJSON(message.foo); } return obj; }, diff --git a/integration/use-map-type/google/protobuf/struct.ts b/integration/use-map-type/google/protobuf/struct.ts index 0ace535d5..cb6b8e13d 100644 --- a/integration/use-map-type/google/protobuf/struct.ts +++ b/integration/use-map-type/google/protobuf/struct.ts @@ -377,7 +377,7 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.nullValue !== undefined) { - obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + obj.nullValue = nullValueToJSON(message.nullValue); } if (message.numberValue !== undefined) { obj.numberValue = message.numberValue; diff --git a/integration/use-map-type/use-map-type.ts b/integration/use-map-type/use-map-type.ts index c92057509..43061dabd 100644 --- a/integration/use-map-type/use-map-type.ts +++ b/integration/use-map-type/use-map-type.ts @@ -397,7 +397,7 @@ export const Maps_StrToEntityEntry = { obj.key = message.key; } if (message.value !== undefined) { - obj.value = message.value ? Entity.toJSON(message.value) : undefined; + obj.value = Entity.toJSON(message.value); } return obj; }, @@ -546,7 +546,7 @@ export const Maps_StringToBytesEntry = { obj.key = message.key; } if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/integration/use-numeric-enum-json/google/protobuf/struct.ts b/integration/use-numeric-enum-json/google/protobuf/struct.ts index 0fe9ebd0b..41928548c 100644 --- a/integration/use-numeric-enum-json/google/protobuf/struct.ts +++ b/integration/use-numeric-enum-json/google/protobuf/struct.ts @@ -382,7 +382,7 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.nullValue !== undefined) { - obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + obj.nullValue = nullValueToJSON(message.nullValue); } if (message.numberValue !== undefined) { obj.numberValue = message.numberValue; diff --git a/integration/use-optionals-all/test.ts b/integration/use-optionals-all/test.ts index 049ec0b19..8151ab3c6 100644 --- a/integration/use-optionals-all/test.ts +++ b/integration/use-optionals-all/test.ts @@ -461,7 +461,7 @@ export const OptionalsTest = { obj.id = Math.round(message.id); } if (message.child !== undefined) { - obj.child = message.child ? Child.toJSON(message.child) : undefined; + obj.child = Child.toJSON(message.child); } if (message.state !== undefined && message.state !== 0) { obj.state = stateEnumToJSON(message.state); @@ -476,13 +476,13 @@ export const OptionalsTest = { obj.description = message.description; } if (message.data !== undefined && message.data.length !== 0) { - obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array(0)); + obj.data = base64FromBytes(message.data); } if (message.repId?.length) { obj.repId = message.repId.map((e) => Math.round(e)); } if (message.repChild?.length) { - obj.repChild = message.repChild.map((e) => e ? Child.toJSON(e) : undefined); + obj.repChild = message.repChild.map((e) => Child.toJSON(e)); } if (message.repState?.length) { obj.repState = message.repState.map((e) => stateEnumToJSON(e)); @@ -497,16 +497,16 @@ export const OptionalsTest = { obj.repDescription = message.repDescription; } if (message.repData?.length) { - obj.repData = message.repData.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array(0))); + obj.repData = message.repData.map((e) => base64FromBytes(e)); } if (message.optId !== undefined) { obj.optId = Math.round(message.optId); } if (message.optChild !== undefined) { - obj.optChild = message.optChild ? Child.toJSON(message.optChild) : undefined; + obj.optChild = Child.toJSON(message.optChild); } if (message.optState !== undefined) { - obj.optState = message.optState !== undefined ? stateEnumToJSON(message.optState) : undefined; + obj.optState = stateEnumToJSON(message.optState); } if (message.optLong !== undefined) { obj.optLong = Math.round(message.optLong); @@ -518,7 +518,7 @@ export const OptionalsTest = { obj.optDescription = message.optDescription; } if (message.optData !== undefined) { - obj.optData = message.optData !== undefined ? base64FromBytes(message.optData) : undefined; + obj.optData = base64FromBytes(message.optData); } if (message.translations) { const entries = Object.entries(message.translations); diff --git a/integration/use-optionals-no-undefined/test.ts b/integration/use-optionals-no-undefined/test.ts index ad6450be5..b7b01ae67 100644 --- a/integration/use-optionals-no-undefined/test.ts +++ b/integration/use-optionals-no-undefined/test.ts @@ -462,7 +462,7 @@ export const OptionalsTest = { obj.id = Math.round(message.id); } if (message.child !== undefined) { - obj.child = message.child ? Child.toJSON(message.child) : undefined; + obj.child = Child.toJSON(message.child); } if (message.state !== undefined && message.state !== 0) { obj.state = stateEnumToJSON(message.state); @@ -477,13 +477,13 @@ export const OptionalsTest = { obj.description = message.description; } if (message.data !== undefined && message.data.length !== 0) { - obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array(0)); + obj.data = base64FromBytes(message.data); } if (message.repId?.length) { obj.repId = message.repId.map((e) => Math.round(e)); } if (message.repChild?.length) { - obj.repChild = message.repChild.map((e) => e ? Child.toJSON(e) : undefined); + obj.repChild = message.repChild.map((e) => Child.toJSON(e)); } if (message.repState?.length) { obj.repState = message.repState.map((e) => stateEnumToJSON(e)); @@ -498,16 +498,16 @@ export const OptionalsTest = { obj.repDescription = message.repDescription; } if (message.repData?.length) { - obj.repData = message.repData.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array(0))); + obj.repData = message.repData.map((e) => base64FromBytes(e)); } if (message.optId !== undefined) { obj.optId = Math.round(message.optId); } if (message.optChild !== undefined) { - obj.optChild = message.optChild ? Child.toJSON(message.optChild) : undefined; + obj.optChild = Child.toJSON(message.optChild); } if (message.optState !== undefined) { - obj.optState = message.optState !== undefined ? stateEnumToJSON(message.optState) : undefined; + obj.optState = stateEnumToJSON(message.optState); } if (message.optLong !== undefined) { obj.optLong = Math.round(message.optLong); @@ -519,7 +519,7 @@ export const OptionalsTest = { obj.optDescription = message.optDescription; } if (message.optData !== undefined) { - obj.optData = message.optData !== undefined ? base64FromBytes(message.optData) : undefined; + obj.optData = base64FromBytes(message.optData); } if (message.translations) { const entries = Object.entries(message.translations); diff --git a/integration/use-readonly-types/google/protobuf/struct.ts b/integration/use-readonly-types/google/protobuf/struct.ts index 0e294e2bd..9cf68f024 100644 --- a/integration/use-readonly-types/google/protobuf/struct.ts +++ b/integration/use-readonly-types/google/protobuf/struct.ts @@ -370,22 +370,22 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.kind?.$case === "nullValue") { - obj.nullValue = message.kind?.nullValue !== undefined ? nullValueToJSON(message.kind?.nullValue) : undefined; + obj.nullValue = nullValueToJSON(message.kind.nullValue); } if (message.kind?.$case === "numberValue") { - obj.numberValue = message.kind?.numberValue; + obj.numberValue = message.kind.numberValue; } if (message.kind?.$case === "stringValue") { - obj.stringValue = message.kind?.stringValue; + obj.stringValue = message.kind.stringValue; } if (message.kind?.$case === "boolValue") { - obj.boolValue = message.kind?.boolValue; + obj.boolValue = message.kind.boolValue; } if (message.kind?.$case === "structValue") { - obj.structValue = message.kind?.structValue; + obj.structValue = message.kind.structValue; } if (message.kind?.$case === "listValue") { - obj.listValue = message.kind?.listValue; + obj.listValue = message.kind.listValue; } return obj; }, diff --git a/integration/use-readonly-types/use-readonly-types.ts b/integration/use-readonly-types/use-readonly-types.ts index 8b44c2045..c706088eb 100644 --- a/integration/use-readonly-types/use-readonly-types.ts +++ b/integration/use-readonly-types/use-readonly-types.ts @@ -234,10 +234,10 @@ export const Entity = { obj.stringArray = message.stringArray; } if (message.subEntity !== undefined) { - obj.subEntity = message.subEntity ? SubEntity.toJSON(message.subEntity) : undefined; + obj.subEntity = SubEntity.toJSON(message.subEntity); } if (message.subEntityArray?.length) { - obj.subEntityArray = message.subEntityArray.map((e) => e ? SubEntity.toJSON(e) : undefined); + obj.subEntityArray = message.subEntityArray.map((e) => SubEntity.toJSON(e)); } if (message.optionalIntVal !== undefined) { obj.optionalIntVal = Math.round(message.optionalIntVal); @@ -252,10 +252,10 @@ export const Entity = { obj.structValue = message.structValue; } if (message.oneOfValue?.$case === "theStringValue") { - obj.theStringValue = message.oneOfValue?.theStringValue; + obj.theStringValue = message.oneOfValue.theStringValue; } if (message.oneOfValue?.$case === "theIntValue") { - obj.theIntValue = Math.round(message.oneOfValue?.theIntValue); + obj.theIntValue = Math.round(message.oneOfValue.theIntValue); } return obj; }, diff --git a/integration/value/google/protobuf/struct.ts b/integration/value/google/protobuf/struct.ts index 3ca7265b7..b2486a866 100644 --- a/integration/value/google/protobuf/struct.ts +++ b/integration/value/google/protobuf/struct.ts @@ -382,7 +382,7 @@ export const Value = { toJSON(message: Value): unknown { const obj: any = {}; if (message.nullValue !== undefined) { - obj.nullValue = message.nullValue !== undefined ? nullValueToJSON(message.nullValue) : undefined; + obj.nullValue = nullValueToJSON(message.nullValue); } if (message.numberValue !== undefined) { obj.numberValue = message.numberValue; diff --git a/integration/value/google/protobuf/wrappers.ts b/integration/value/google/protobuf/wrappers.ts index 0f8f714df..0b584fccb 100644 --- a/integration/value/google/protobuf/wrappers.ts +++ b/integration/value/google/protobuf/wrappers.ts @@ -600,7 +600,7 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/integration/vector-tile/vector_tile.ts b/integration/vector-tile/vector_tile.ts index ffbe764bd..2083c6576 100644 --- a/integration/vector-tile/vector_tile.ts +++ b/integration/vector-tile/vector_tile.ts @@ -121,7 +121,7 @@ export const Tile = { toJSON(message: Tile): unknown { const obj: any = {}; if (message.layers?.length) { - obj.layers = message.layers.map((e) => e ? Tile_Layer.toJSON(e) : undefined); + obj.layers = message.layers.map((e) => Tile_Layer.toJSON(e)); } return obj; }, @@ -521,13 +521,13 @@ export const Tile_Layer = { obj.name = message.name; } if (message.features?.length) { - obj.features = message.features.map((e) => e ? Tile_Feature.toJSON(e) : undefined); + obj.features = message.features.map((e) => Tile_Feature.toJSON(e)); } if (message.keys?.length) { obj.keys = message.keys; } if (message.values?.length) { - obj.values = message.values.map((e) => e ? Tile_Value.toJSON(e) : undefined); + obj.values = message.values.map((e) => Tile_Value.toJSON(e)); } if (message.extent !== 0) { obj.extent = Math.round(message.extent); diff --git a/integration/wrappers-regression/google/protobuf/wrappers.ts b/integration/wrappers-regression/google/protobuf/wrappers.ts index 0f8f714df..0b584fccb 100644 --- a/integration/wrappers-regression/google/protobuf/wrappers.ts +++ b/integration/wrappers-regression/google/protobuf/wrappers.ts @@ -600,7 +600,7 @@ export const BytesValue = { toJSON(message: BytesValue): unknown { const obj: any = {}; if (message.value.length !== 0) { - obj.value = base64FromBytes(message.value !== undefined ? message.value : new Uint8Array(0)); + obj.value = base64FromBytes(message.value); } return obj; }, diff --git a/src/main.ts b/src/main.ts index 2d9843dab..e01ae4e73 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1976,9 +1976,7 @@ function generateToJson( const readSnippet = (from: string): Code => { if (isEnum(field)) { const toJson = getEnumMethod(ctx, field.typeName, "ToJSON"); - return isWithinOneOf(field) - ? code`${from} !== undefined ? ${toJson}(${from}) : undefined` - : code`${toJson}(${from})`; + return code`${toJson}(${from})`; } else if (isObjectId(field) && options.useMongoObjectId) { return code`${from}.toString()`; } else if (isTimestamp(field) && options.useDate === DateOption.DATE) { @@ -2024,16 +2022,11 @@ function generateToJson( return code`${type}.toJSON(${type}.wrap(${from}))`; } else if (isMessage(field) && !isValueType(ctx, field) && !isMapType(ctx, messageDesc, field)) { const type = basicTypeName(ctx, field, { keepValueType: true }); - return code`${from} ? ${type}.toJSON(${from}) : ${defaultValue(ctx, field)}`; + return code`${type}.toJSON(${from})`; } else if (isBytes(field)) { - if (isWithinOneOf(field)) { - return code`${from} !== undefined ? ${utils.base64FromBytes}(${from}) : undefined`; - } else { - return code`${utils.base64FromBytes}(${from} !== undefined ? ${from} : ${defaultValue(ctx, field)})`; - } + return code`${utils.base64FromBytes}(${from})`; } else if (isLong(field) && options.forceLong === LongOption.LONG) { - const v = isWithinOneOf(field) ? "undefined" : defaultValue(ctx, field); - return code`(${from} || ${v}).toString()`; + return code`(${from} || ${defaultValue(ctx, field)}).toString()`; } else if (isLong(field) && options.forceLong === LongOption.BIGINT) { return code`${from}.toString()`; } else if (isWholeNumber(field) && !(isLong(field) && options.forceLong === LongOption.STRING)) { @@ -2083,7 +2076,7 @@ function generateToJson( const oneofName = maybeSnakeToCamel(messageDesc.oneofDecl[field.oneofIndex].name, options); chunks.push(code` if (message.${oneofName}?.$case === '${fieldName}') { - ${jsonProperty} = ${readSnippet(`message.${oneofName}?.${fieldName}`)}; + ${jsonProperty} = ${readSnippet(`message.${oneofName}.${fieldName}`)}; } `); } else { From 6f95fd20aba8e74eed9cfeb2c354e207645f3714 Mon Sep 17 00:00:00 2001 From: Andrew Haines Date: Thu, 13 Jul 2023 16:34:00 +0100 Subject: [PATCH 4/4] Fix tests --- integration/simple-long/simple-test.ts | 1 - integration/simple/simple-json-test.ts | 37 +------------------ .../use-numeric-enum-json/simple-test.ts | 2 +- 3 files changed, 3 insertions(+), 37 deletions(-) diff --git a/integration/simple-long/simple-test.ts b/integration/simple-long/simple-test.ts index e3bb31bb2..5842c90af 100644 --- a/integration/simple-long/simple-test.ts +++ b/integration/simple-long/simple-test.ts @@ -73,7 +73,6 @@ describe("simple", () => { "1": "2", "2": "1", }, - "nameLookup": {}, } `); diff --git a/integration/simple/simple-json-test.ts b/integration/simple/simple-json-test.ts index c15e8d10e..f7a114591 100644 --- a/integration/simple/simple-json-test.ts +++ b/integration/simple/simple-json-test.ts @@ -247,16 +247,10 @@ describe("simple json", () => { const json = SimpleWithMap.toJSON(s1); expect(json).toMatchInlineSnapshot(` { - "entitiesById": {}, - "intLookup": {}, - "longLookup": {}, "mapOfBytes": { "a": "AQI=", "b": "AQID", }, - "mapOfStringValues": {}, - "mapOfTimestamps": {}, - "nameLookup": {}, } `); }); @@ -315,11 +309,8 @@ describe("simple json", () => { expect(Simple.toJSON(s1)).toMatchInlineSnapshot(` { "age": 1, - "blob": "", - "blobs": [], "child": { "name": "foo", - "type": "UNKNOWN", }, "coins": [ 2, @@ -331,11 +322,9 @@ describe("simple json", () => { "grandChildren": [ { "name": "grand1", - "type": "UNKNOWN", }, { "name": "grand2", - "type": "UNKNOWN", }, ], "name": "asdf", @@ -352,32 +341,15 @@ describe("simple json", () => { `); }); - it("can encode empty objects", () => { - expect(Simple.toJSON({} as Simple)).toMatchInlineSnapshot(` - { - "blobs": [], - "coins": [], - "grandChildren": [], - "oldStates": [], - "snacks": [], - } - `); - }); - it("can encode nested enums", () => { - const s1 = { child: { name: "a", type: Child_Type.GOOD } } as Simple; + const s1 = Simple.fromPartial({ child: { name: "a", type: Child_Type.GOOD } }); const s2 = Simple.toJSON(s1); expect(s2).toMatchInlineSnapshot(` { - "blobs": [], "child": { "name": "a", "type": "GOOD", }, - "coins": [], - "grandChildren": [], - "oldStates": [], - "snacks": [], } `); }); @@ -425,12 +397,7 @@ describe("simple json", () => { id: undefined, }; const s2 = SimpleWithWrappers.toJSON(s1); - expect(s2).toMatchInlineSnapshot(` - { - "coins": [], - "snacks": [], - } - `); + expect(s2).toMatchInlineSnapshot(`{}`); }); it("can decode enum falsey values", () => { diff --git a/integration/use-numeric-enum-json/simple-test.ts b/integration/use-numeric-enum-json/simple-test.ts index a5a0dbf74..92edb7b3f 100644 --- a/integration/use-numeric-enum-json/simple-test.ts +++ b/integration/use-numeric-enum-json/simple-test.ts @@ -14,7 +14,7 @@ describe('use-numeric-enum-json', () => { const json = Simple.toJSON(s); // Make sure that enum values are encoded as integers. - expect(json).toEqual({ name: 'a', nullValue: 0, state: 2, stateMap: { on: 2 }, states: [2, 3] }); + expect(json).toEqual({ name: 'a', state: 2, stateMap: { on: 2 }, states: [2, 3] }); // Original object can be recovered from the json. expect(Simple.fromJSON(json)).toEqual(s);