@@ -38,22 +38,22 @@ const types: Record<string, string> = {
38
38
uint64 : 'bigint'
39
39
}
40
40
41
- const encoderGenerators : Record < string , ( val : string , includeDefault : boolean ) => string > = {
42
- bool : ( val , includeDefault ) => `w.bool(${ val } ${ includeDefault ? ' ?? false' : '' } )` ,
43
- bytes : ( val , includeDefault ) => `w.bytes(${ val } ${ includeDefault ? ' ?? new Uint8Array(0)' : '' } )` ,
44
- double : ( val , includeDefault ) => `w.double(${ val } ${ includeDefault ? ' ?? 0' : '' } )` ,
45
- fixed32 : ( val , includeDefault ) => `w.fixed32(${ val } ${ includeDefault ? ' ?? 0' : '' } )` ,
46
- fixed64 : ( val , includeDefault ) => `w.fixed64(${ val } ${ includeDefault ? ' ?? 0n' : '' } )` ,
47
- float : ( val , includeDefault ) => `w.float(${ val } ${ includeDefault ? ' ?? 0' : '' } )` ,
48
- int32 : ( val , includeDefault ) => `w.int32(${ val } ${ includeDefault ? ' ?? 0' : '' } )` ,
49
- int64 : ( val , includeDefault ) => `w.int64(${ val } ${ includeDefault ? ' ?? 0n' : '' } )` ,
50
- sfixed32 : ( val , includeDefault ) => `w.sfixed32(${ val } ${ includeDefault ? ' ?? 0' : '' } )` ,
51
- sfixed64 : ( val , includeDefault ) => `w.sfixed64(${ val } ${ includeDefault ? ' ?? 0n' : '' } )` ,
52
- sint32 : ( val , includeDefault ) => `w.sint32(${ val } ${ includeDefault ? ' ?? 0' : '' } )` ,
53
- sint64 : ( val , includeDefault ) => `w.sint64(${ val } ${ includeDefault ? ' ?? 0n' : '' } )` ,
54
- string : ( val , includeDefault ) => `w.string(${ val } ${ includeDefault ? ' ?? \'\'' : '' } )` ,
55
- uint32 : ( val , includeDefault ) => `w.uint32(${ val } ${ includeDefault ? ' ?? 0' : '' } )` ,
56
- uint64 : ( val , includeDefault ) => `w.uint64(${ val } ${ includeDefault ? ' ?? 0n' : '' } )`
41
+ const encoderGenerators : Record < string , ( val : string ) => string > = {
42
+ bool : ( val ) => `w.bool(${ val } )` ,
43
+ bytes : ( val ) => `w.bytes(${ val } )` ,
44
+ double : ( val ) => `w.double(${ val } )` ,
45
+ fixed32 : ( val ) => `w.fixed32(${ val } )` ,
46
+ fixed64 : ( val ) => `w.fixed64(${ val } )` ,
47
+ float : ( val ) => `w.float(${ val } )` ,
48
+ int32 : ( val ) => `w.int32(${ val } )` ,
49
+ int64 : ( val ) => `w.int64(${ val } )` ,
50
+ sfixed32 : ( val ) => `w.sfixed32(${ val } )` ,
51
+ sfixed64 : ( val ) => `w.sfixed64(${ val } )` ,
52
+ sint32 : ( val ) => `w.sint32(${ val } )` ,
53
+ sint64 : ( val ) => `w.sint64(${ val } )` ,
54
+ string : ( val ) => `w.string(${ val } )` ,
55
+ uint32 : ( val ) => `w.uint32(${ val } )` ,
56
+ uint64 : ( val ) => `w.uint64(${ val } )`
57
57
}
58
58
59
59
const decoderGenerators : Record < string , ( ) => string > = {
@@ -395,29 +395,26 @@ export interface ${messageDef.name} {
395
395
} else if ( ! fieldDef . optional && ! fieldDef . repeated ) {
396
396
// proto3 singular fields should only be written out if they are not the default value
397
397
if ( defaultValueTestGenerators [ type ] != null ) {
398
- valueTest = `opts.writeDefaults === true || ${ defaultValueTestGenerators [ type ] ( `obj.${ name } ` ) } `
398
+ valueTest = `${ defaultValueTestGenerators [ type ] ( `obj.${ name } ` ) } `
399
399
} else if ( type === 'enum' ) {
400
400
// handle enums
401
- valueTest = `opts.writeDefaults === true || ( obj.${ name } != null && __${ fieldDef . type } Values[obj.${ name } ] !== 0) `
401
+ valueTest = `obj.${ name } != null && __${ fieldDef . type } Values[obj.${ name } ] !== 0`
402
402
}
403
403
}
404
404
405
- function createWriteField ( valueVar : string ) : ( includeDefault : boolean ) => string {
405
+ function createWriteField ( valueVar : string ) : ( ) => string {
406
406
const id = ( fieldDef . id << 3 ) | codecTypes [ type ]
407
- let defaultValue = ''
408
407
409
408
if ( fieldDef . enum ) {
410
409
const def = findDef ( fieldDef . type , messageDef , moduleDef )
411
410
412
411
if ( ! isEnumDef ( def ) ) {
413
412
throw new Error ( `${ fieldDef . type } was not enum def` )
414
413
}
415
-
416
- defaultValue = Object . keys ( def . values ) [ 0 ]
417
414
}
418
415
419
- let writeField = ( includeDefault : boolean ) : string => `w.uint32(${ id } )
420
- ${ encoderGenerators [ type ] == null ? `${ codec } .encode(${ valueVar } ${ includeDefault ? ` ?? ${ typeName } . ${ defaultValue } ` : '' } , w)` : encoderGenerators [ type ] ( valueVar , includeDefault ) } `
416
+ let writeField = ( ) : string => `w.uint32(${ id } )
417
+ ${ encoderGenerators [ type ] == null ? `${ codec } .encode(${ valueVar } , w)` : encoderGenerators [ type ] ( valueVar ) } `
421
418
422
419
if ( type === 'message' ) {
423
420
// message fields are only written if they have values. But if a message
@@ -437,7 +434,7 @@ export interface ${messageDef.name} {
437
434
writeField = ( ) => `
438
435
for (const [key, value] of obj.${ name } .entries()) {
439
436
${
440
- createWriteField ( '{ key, value }' ) ( false )
437
+ createWriteField ( '{ key, value }' ) ( )
441
438
. split ( '\n' )
442
439
. map ( s => {
443
440
const trimmed = s . trim ( )
@@ -452,7 +449,7 @@ export interface ${messageDef.name} {
452
449
writeField = ( ) => `
453
450
for (const value of obj.${ name } ) {
454
451
${
455
- createWriteField ( 'value' ) ( false )
452
+ createWriteField ( 'value' ) ( )
456
453
. split ( '\n' )
457
454
. map ( s => {
458
455
const trimmed = s . trim ( )
@@ -468,7 +465,7 @@ export interface ${messageDef.name} {
468
465
469
466
return `
470
467
if (${ valueTest } ) {
471
- ${ writeField ( valueTest . includes ( 'opts.writeDefaults === true' ) ) }
468
+ ${ writeField ( ) }
472
469
}`
473
470
} ) . join ( '\n' )
474
471
0 commit comments