Skip to content

Commit fe93d43

Browse files
committed
New: Added oneofs: true to ConversionOptions, see #710
1 parent 228c882 commit fe93d43

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

src/converter.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ function genValuePartial_toObject(gen, field, fieldIndex, prop) {
193193
*/
194194
converter.toObject = function toObject(mtype) {
195195
/* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */
196-
var fields = mtype.fieldsArray;
196+
var fields = mtype.fieldsArray.sort(util.compareFieldsById);
197197
if (!fields.length)
198198
return util.codegen()("return {}");
199199
var gen = util.codegen("m", "o")
@@ -265,6 +265,9 @@ converter.toObject = function toObject(mtype) {
265265
("}");
266266
} else
267267
genValuePartial_toObject(gen, field, i, prop);
268+
if (field.partOf) gen
269+
("if(o.oneofs)")
270+
("d%s=%j", util.safeProp(field.partOf.name), field.name);
268271
gen
269272
("}");
270273
}

src/type.js

+1
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,7 @@ Type.prototype.from = Type.prototype.fromObject;
484484
* @property {boolean} [defaults=false] Also sets default values on the resulting object
485485
* @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`
486486
* @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`
487+
* @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any
487488
*/
488489

489490
/**

0 commit comments

Comments
 (0)