@@ -51,7 +51,7 @@ export function form_data_to_fetch_request(request) {
51
51
52
52
export function bitarray_request_to_fetch_request ( request ) {
53
53
let [ url , options ] = request_common ( request )
54
- if ( options . method !== "GET" && options . method !== "HEAD" ) options . body = request . body . buffer ;
54
+ if ( options . method !== "GET" && options . method !== "HEAD" ) options . body = readBitArrayBuffer ( request . body ) ;
55
55
return new globalThis . Request ( url , options ) ;
56
56
}
57
57
@@ -116,13 +116,13 @@ export function setFormData(formData, key, value) {
116
116
117
117
export function appendBitsFormData ( formData , key , value ) {
118
118
const f = cloneFormData ( formData )
119
- f . append ( key , new Blob ( [ value . buffer ] ) )
119
+ f . append ( key , new Blob ( [ readBitArrayBuffer ( value ) ] ) )
120
120
return f
121
121
}
122
122
123
123
export function setBitsFormData ( formData , key , value ) {
124
124
const f = cloneFormData ( formData )
125
- f . set ( key , new Blob ( [ value . buffer ] ) )
125
+ f . set ( key , new Blob ( [ readBitArrayBuffer ( value ) ] ) )
126
126
return f
127
127
}
128
128
@@ -165,3 +165,10 @@ export function keysFormData(formData) {
165
165
}
166
166
return toList ( [ ...result ] )
167
167
}
168
+
169
+ function readBitArrayBuffer ( bitArray ) {
170
+ // Gleam version >= 1.9, with new handling of buffers.
171
+ if ( "rawBuffer" in bitArray ) return bitArray . rawBuffer
172
+ // Gleam version < 1.9, where `rawBuffer` does not exists on BitArray.
173
+ return bitArray . buffer
174
+ }
0 commit comments