Skip to content

Commit d12a255

Browse files
NicoNico
Nico
authored and
Nico
committed
implements io.Closer for readablestream.Reader
1 parent a16a847 commit d12a255

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

internal/readablestream/reader.go

+12-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ type Reader struct {
1414
off int
1515
}
1616

17-
var _ io.Reader = (*Reader)(nil)
17+
var _ io.ReadCloser = (*Reader)(nil)
1818

1919
func NewReader(r safejs.Value) *Reader {
2020
return &Reader{
@@ -83,3 +83,14 @@ func (r *Reader) Read(p []byte) (int, error) {
8383

8484
return n, nil
8585
}
86+
87+
func (r *Reader) Close() error {
88+
p, err := r.value.Call("cancel")
89+
if err != nil {
90+
return err
91+
}
92+
93+
_, err = promise.Await(safejs.Unsafe(p))
94+
95+
return err
96+
}

request.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func Request(uvalue js.Value) (*http.Request, error) {
3434
return nil, err
3535
}
3636

37-
var bodyReader io.Reader
37+
var bodyReader io.ReadCloser
3838

3939
if !body.IsNull() {
4040
// WORKAROUND: Firefox does not have request.body ReadableStream
@@ -66,7 +66,7 @@ func Request(uvalue js.Value) (*http.Request, error) {
6666
req := &http.Request{
6767
Method: method,
6868
URL: u,
69-
Body: io.NopCloser(bodyReader),
69+
Body: bodyReader,
7070
Header: make(http.Header),
7171
}
7272

0 commit comments

Comments
 (0)