@@ -67,19 +67,21 @@ func mergeTargetFile(targets []*wrapper, mergeFileName string) *wrapper {
6767}
6868
6969// convert swagger file obj to plugin.CodeGeneratorResponse_File
70- func encodeSwagger (file * wrapper ) * plugin.CodeGeneratorResponse_File {
70+ func encodeSwagger (file * wrapper ) ( * plugin.CodeGeneratorResponse_File , error ) {
7171 var formatted bytes.Buffer
7272 enc := json .NewEncoder (& formatted )
7373 enc .SetIndent ("" , " " )
74- enc .Encode (* file .swagger )
74+ if err := enc .Encode (* file .swagger ); err != nil {
75+ return nil , err
76+ }
7577 name := file .fileName
7678 ext := filepath .Ext (name )
7779 base := strings .TrimSuffix (name , ext )
7880 output := fmt .Sprintf ("%s.swagger.json" , base )
7981 return & plugin.CodeGeneratorResponse_File {
8082 Name : proto .String (output ),
8183 Content : proto .String (formatted .String ()),
82- }
84+ }, nil
8385}
8486
8587func (g * generator ) Generate (targets []* descriptor.File ) ([]* plugin.CodeGeneratorResponse_File , error ) {
@@ -127,11 +129,19 @@ func (g *generator) Generate(targets []*descriptor.File) ([]*plugin.CodeGenerato
127129
128130 if g .reg .IsAllowMerge () {
129131 targetSwagger := mergeTargetFile (swaggers , g .reg .GetMergeFileName ())
130- files = append (files , encodeSwagger (targetSwagger ))
132+ f , err := encodeSwagger (targetSwagger )
133+ if err != nil {
134+ return nil , fmt .Errorf ("failed to encode swagger for %s: %s" , g .reg .GetMergeFileName (), err )
135+ }
136+ files = append (files , f )
131137 glog .V (1 ).Infof ("New swagger file will emit" )
132138 } else {
133139 for _ , file := range swaggers {
134- files = append (files , encodeSwagger (file ))
140+ f , err := encodeSwagger (file )
141+ if err != nil {
142+ return nil , fmt .Errorf ("failed to encode swagger for %s: %s" , file .fileName , err )
143+ }
144+ files = append (files , f )
135145 glog .V (1 ).Infof ("New swagger file will emit" )
136146 }
137147 }
0 commit comments