@@ -31,6 +31,7 @@ export class MultipartBody implements Parsable {
31
31
partName : string ,
32
32
partContentType : string ,
33
33
content : T ,
34
+ additionalKV : { [ key : string ] : string } | undefined ,
34
35
serializationCallback ?: ModelSerializerFunction < Parsable > ,
35
36
) : void {
36
37
if ( ! partName ) throw new Error ( "partName cannot be undefined" ) ;
@@ -43,6 +44,7 @@ export class MultipartBody implements Parsable {
43
44
contentType : partContentType ,
44
45
content,
45
46
originalName : partName ,
47
+ additionalKV : additionalKV ,
46
48
serializationCallback,
47
49
} ;
48
50
}
@@ -94,6 +96,7 @@ interface MultipartEntry {
94
96
contentType : string ;
95
97
content : any ;
96
98
originalName : string ;
99
+ additionalKV : { [ key : string ] : string } | undefined ;
97
100
serializationCallback ?: ModelSerializerFunction < Parsable > ;
98
101
}
99
102
@@ -128,13 +131,18 @@ export function serializeMultipartBody(
128
131
writer . writeStringValue ( undefined , "--" + boundary ) ;
129
132
const part = parts [ partName ] ;
130
133
writer . writeStringValue ( "Content-Type" , part . contentType ) ;
134
+ let dispositionValue = 'form-data; name="' + part . originalName + '"' ;
135
+ if ( part . additionalKV && Object . keys ( part . additionalKV ) . length ) {
136
+ const additionalString = Object . entries ( part . additionalKV ) . map ( ( [ k , v ] ) => `${ k } ="${ v } "` ) . join ( "; " ) ;
137
+ dispositionValue += "; " + additionalString ;
138
+ }
131
139
writer . writeStringValue (
132
140
"Content-Disposition" ,
133
- 'form-data; name="' + part . originalName + '"' ,
141
+ dispositionValue ,
134
142
) ;
135
143
writer . writeStringValue ( undefined , "" ) ;
136
144
if ( typeof part . content === "string" ) {
137
- writer . writeStringValue ( undefined , part . content ) ;
145
+ writer . writeStringValue ( undefined , part . content , false ) ;
138
146
} else if ( part . content instanceof ArrayBuffer ) {
139
147
writer . writeByteArrayValue ( undefined , new Uint8Array ( part . content ) ) ;
140
148
} else if ( part . content instanceof Uint8Array ) {
0 commit comments