Skip to content

Commit 67262e7

Browse files
MattiasBuelenscaptainbrossetddbeck
authored
Split streams into more features (#2491)
* Move ReadableStream.values from streams to async-iterable-streams * Add transferable-streams feature * Add readablestream-from feature * Add readablestreambyobreader-read-min feature * Add transformstream-transformer-cancel feature * Update to BCD 5.6.27 * Assign transformer_cancel BCD feature to transformstream-transformer-cancel * Update feature descriptions Co-authored-by: Patrick Brosset <[email protected]> * Update dist * Revert changes in package-lock.json * Run Prettier * Add readable-byte-streams feature * Update dist * Update note about status change * Apply suggestions from code review Co-authored-by: Daniel D. Beck <[email protected]> * Escape quotes * Merge min option into readable-byte-streams * Run Prettier --------- Co-authored-by: Patrick Brosset <[email protected]> Co-authored-by: Patrick Brosset <[email protected]> Co-authored-by: Daniel D. Beck <[email protected]>
1 parent e1fd59d commit 67262e7

12 files changed

+147
-96
lines changed

features/async-iterable-streams.yml

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ spec: https://streams.spec.whatwg.org/#rs-asynciterator
44
group: streams
55
compat_features:
66
- api.ReadableStream.@@asyncIterator
7+
- api.ReadableStream.values

features/async-iterable-streams.yml.dist

+1
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ status:
1111
firefox_android: "110"
1212
compat_features:
1313
- api.ReadableStream.@@asyncIterator
14+
- api.ReadableStream.values

features/readable-byte-streams.yml

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Readable byte streams
2+
description: 'A `ReadableStream` constructed with `{ type: "bytes" }` reads bytes from a stream without making extra copies, improving efficiency for streams of large chunks. Also known as BYOB or bring your own buffer.'
3+
spec: https://streams.spec.whatwg.org/
4+
caniuse: streams
5+
group: streams
6+
status:
7+
compute_from:
8+
- api.ReadableStreamBYOBReader
9+
compat_features:
10+
- api.ReadableByteStreamController
11+
- api.ReadableByteStreamController.byobRequest
12+
- api.ReadableByteStreamController.close
13+
- api.ReadableByteStreamController.desiredSize
14+
- api.ReadableByteStreamController.enqueue
15+
- api.ReadableByteStreamController.error
16+
- api.ReadableStreamBYOBReader
17+
- api.ReadableStreamBYOBReader.ReadableStreamBYOBReader
18+
- api.ReadableStreamBYOBReader.cancel
19+
- api.ReadableStreamBYOBReader.closed
20+
- api.ReadableStreamBYOBReader.read
21+
- api.ReadableStreamBYOBReader.releaseLock
22+
- api.ReadableStreamBYOBReader.releaseLock.reject_pending_read_request
23+
- api.ReadableStreamBYOBRequest
24+
- api.ReadableStreamBYOBRequest.respond
25+
- api.ReadableStreamBYOBRequest.respondWithNewView
26+
- api.ReadableStreamBYOBRequest.view
27+
- api.ReadableStreamBYOBReader.read.options_min_parameter
+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Generated from: readable-byte-streams.yml
2+
# Do not edit this file by hand. Edit the source file instead!
3+
4+
status:
5+
baseline: false
6+
support:
7+
chrome: "89"
8+
chrome_android: "89"
9+
edge: "89"
10+
firefox: "102"
11+
firefox_android: "102"
12+
compat_features:
13+
# ⬇️ Same status as overall feature ⬇️
14+
# baseline: false
15+
# support:
16+
# chrome: "89"
17+
# chrome_android: "89"
18+
# edge: "89"
19+
# firefox: "102"
20+
# firefox_android: "102"
21+
- api.ReadableByteStreamController
22+
- api.ReadableByteStreamController.byobRequest
23+
- api.ReadableByteStreamController.close
24+
- api.ReadableByteStreamController.desiredSize
25+
- api.ReadableByteStreamController.enqueue
26+
- api.ReadableByteStreamController.error
27+
- api.ReadableStreamBYOBReader
28+
- api.ReadableStreamBYOBReader.ReadableStreamBYOBReader
29+
- api.ReadableStreamBYOBReader.cancel
30+
- api.ReadableStreamBYOBReader.closed
31+
- api.ReadableStreamBYOBReader.read
32+
- api.ReadableStreamBYOBReader.releaseLock
33+
- api.ReadableStreamBYOBRequest
34+
- api.ReadableStreamBYOBRequest.respond
35+
- api.ReadableStreamBYOBRequest.respondWithNewView
36+
- api.ReadableStreamBYOBRequest.view
37+
38+
# baseline: false
39+
# support:
40+
# chrome: "105"
41+
# chrome_android: "105"
42+
# edge: "105"
43+
# firefox: "102"
44+
# firefox_android: "102"
45+
- api.ReadableStreamBYOBReader.releaseLock.reject_pending_read_request
46+
47+
# baseline: false
48+
# support:
49+
# firefox: "134"
50+
# firefox_android: "134"
51+
- api.ReadableStreamBYOBReader.read.options_min_parameter

features/readablestream-from.yml

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
name: ReadableStream.from()
2+
description: The `ReadableStream.from()` static method converts an iterable or async iterable object, such as an array or async generator function, into a readable stream.
3+
spec: https://streams.spec.whatwg.org/#rs-from
4+
group: streams
5+
compat_features:
6+
- api.ReadableStream.from_static

features/readablestream-from.yml.dist

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Generated from: readablestream-from.yml
2+
# Do not edit this file by hand. Edit the source file instead!
3+
4+
status:
5+
baseline: false
6+
support:
7+
firefox: "117"
8+
firefox_android: "117"
9+
compat_features:
10+
- api.ReadableStream.from_static

features/streams.yml

+5-26
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,19 @@
11
name: Streams
22
description: The streams API creates, composes, and consumes continuously generated data.
33
spec: https://streams.spec.whatwg.org/
4-
caniuse: streams
54
group: streams
65
# TODO: https://github.com/web-platform-dx/web-features/issues/1971
7-
# Status changed: https://github.com/web-platform-dx/web-features/pull/2358
6+
# Status changed: https://github.com/web-platform-dx/web-features/pull/2358, https://github.com/web-platform-dx/web-features/pull/2491
87
# 2024-12-19 — low → false — Regressed status to match Caniuse, which considers support beginning at BYOB shipping.
8+
# 2025-01-30 — false → high — Split BYOB into a separate "readable-byte-streams" feature. Linked that one to Caniuse.
99
# References:
1010
# - https://caniuse.com/streams
1111
status:
1212
compute_from:
13-
- api.ReadableStreamBYOBReader
13+
- api.ReadableStream
14+
- api.TransformStream
15+
- api.WritableStream
1416
compat_features:
15-
- api.ReadableByteStreamController
16-
- api.ReadableByteStreamController.byobRequest
17-
- api.ReadableByteStreamController.close
18-
- api.ReadableByteStreamController.desiredSize
19-
- api.ReadableByteStreamController.enqueue
20-
- api.ReadableByteStreamController.error
21-
- api.ReadableStream.from_static
22-
- api.ReadableStream.transferable
23-
- api.ReadableStream.values
24-
- api.ReadableStreamBYOBReader
25-
- api.ReadableStreamBYOBReader.ReadableStreamBYOBReader
26-
- api.ReadableStreamBYOBReader.cancel
27-
- api.ReadableStreamBYOBReader.closed
28-
- api.ReadableStreamBYOBReader.read
29-
- api.ReadableStreamBYOBReader.read.options_min_parameter
30-
- api.ReadableStreamBYOBReader.releaseLock
31-
- api.ReadableStreamBYOBReader.releaseLock.reject_pending_read_request
32-
- api.ReadableStreamBYOBRequest
33-
- api.ReadableStreamBYOBRequest.respond
34-
- api.ReadableStreamBYOBRequest.respondWithNewView
35-
- api.ReadableStreamBYOBRequest.view
3617
- api.ReadableStreamDefaultController
3718
- api.ReadableStreamDefaultController.close
3819
- api.ReadableStreamDefaultController.desiredSize
@@ -52,15 +33,13 @@ compat_features:
5233
- api.TransformStream
5334
- api.TransformStream.TransformStream
5435
- api.TransformStream.readable
55-
- api.TransformStream.transferable
5636
- api.TransformStream.writable
5737
- api.TransformStreamDefaultController
5838
- api.TransformStreamDefaultController.desiredSize
5939
- api.TransformStreamDefaultController.enqueue
6040
- api.TransformStreamDefaultController.error
6141
- api.TransformStreamDefaultController.terminate
6242
- api.WritableStream.close
63-
- api.WritableStream.transferable
6443
- api.WritableStreamDefaultController.signal
6544
- api.WritableStreamDefaultWriter.WritableStreamDefaultWriter
6645
- api.ByteLengthQueuingStrategy

features/streams.yml.dist

+9-70
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,17 @@
22
# Do not edit this file by hand. Edit the source file instead!
33

44
status:
5-
baseline: false
5+
baseline: high
6+
baseline_low_date: 2022-06-28
7+
baseline_high_date: 2024-12-28
68
support:
7-
chrome: "89"
8-
chrome_android: "89"
9-
edge: "89"
9+
chrome: "67"
10+
chrome_android: "67"
11+
edge: "79"
1012
firefox: "102"
1113
firefox_android: "102"
14+
safari: "14.1"
15+
safari_ios: "14.5"
1216
compat_features:
1317
# baseline: high
1418
# baseline_low_date: 2019-01-29
@@ -198,6 +202,7 @@ compat_features:
198202
# safari_ios: "10.3"
199203
- api.ReadableStream.pipeThrough
200204

205+
# ⬇️ Same status as overall feature ⬇️
201206
# baseline: high
202207
# baseline_low_date: 2022-06-28
203208
# baseline_high_date: 2024-12-28
@@ -257,69 +262,3 @@ compat_features:
257262
# safari: "17"
258263
# safari_ios: "17"
259264
- api.ReadableStreamDefaultReader.releaseLock.reject_pending_read_request
260-
261-
# baseline: false
262-
# support:
263-
# chrome: "87"
264-
# chrome_android: "87"
265-
# edge: "87"
266-
# firefox: "103"
267-
# firefox_android: "103"
268-
- api.ReadableStream.transferable
269-
- api.TransformStream.transferable
270-
- api.WritableStream.transferable
271-
272-
# ⬇️ Same status as overall feature ⬇️
273-
# baseline: false
274-
# support:
275-
# chrome: "89"
276-
# chrome_android: "89"
277-
# edge: "89"
278-
# firefox: "102"
279-
# firefox_android: "102"
280-
- api.ReadableByteStreamController
281-
- api.ReadableByteStreamController.byobRequest
282-
- api.ReadableByteStreamController.close
283-
- api.ReadableByteStreamController.desiredSize
284-
- api.ReadableByteStreamController.enqueue
285-
- api.ReadableByteStreamController.error
286-
- api.ReadableStreamBYOBReader
287-
- api.ReadableStreamBYOBReader.ReadableStreamBYOBReader
288-
- api.ReadableStreamBYOBReader.cancel
289-
- api.ReadableStreamBYOBReader.closed
290-
- api.ReadableStreamBYOBReader.read
291-
- api.ReadableStreamBYOBReader.releaseLock
292-
- api.ReadableStreamBYOBRequest
293-
- api.ReadableStreamBYOBRequest.respond
294-
- api.ReadableStreamBYOBRequest.respondWithNewView
295-
- api.ReadableStreamBYOBRequest.view
296-
297-
# baseline: false
298-
# support:
299-
# chrome: "105"
300-
# chrome_android: "105"
301-
# edge: "105"
302-
# firefox: "102"
303-
# firefox_android: "102"
304-
- api.ReadableStreamBYOBReader.releaseLock.reject_pending_read_request
305-
306-
# baseline: false
307-
# support:
308-
# chrome: "124"
309-
# chrome_android: "124"
310-
# edge: "124"
311-
# firefox: "110"
312-
# firefox_android: "110"
313-
- api.ReadableStream.values
314-
315-
# baseline: false
316-
# support:
317-
# firefox: "117"
318-
# firefox_android: "117"
319-
- api.ReadableStream.from_static
320-
321-
# baseline: false
322-
# support:
323-
# firefox: "134"
324-
# firefox_android: "134"
325-
- api.ReadableStreamBYOBReader.read.options_min_parameter

features/transferable-streams.yml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
name: Transferable streams
2+
description: Streams are transferable objects, which can be moved between contexts such as windows and workers.
3+
spec: https://streams.spec.whatwg.org/#rs-transfer
4+
group: streams
5+
compat_features:
6+
- api.ReadableStream.transferable
7+
- api.TransformStream.transferable
8+
- api.WritableStream.transferable
+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Generated from: transferable-streams.yml
2+
# Do not edit this file by hand. Edit the source file instead!
3+
4+
status:
5+
baseline: false
6+
support:
7+
chrome: "87"
8+
chrome_android: "87"
9+
edge: "87"
10+
firefox: "103"
11+
firefox_android: "103"
12+
compat_features:
13+
- api.ReadableStream.transferable
14+
- api.TransformStream.transferable
15+
- api.WritableStream.transferable
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
name: TransformStream transformer cancel() method
2+
description: The `cancel()` method of a `TransformStream` transformer cleans up resources when the readable side cancels or the writable side aborts.
3+
spec: https://streams.spec.whatwg.org/#dom-transformer-cancel
4+
group: streams
5+
compat_features:
6+
- api.TransformStream.TransformStream.transformer_cancel
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Generated from: transformstream-transformer-cancel.yml
2+
# Do not edit this file by hand. Edit the source file instead!
3+
4+
status:
5+
baseline: false
6+
support: {}
7+
compat_features:
8+
- api.TransformStream.TransformStream.transformer_cancel

0 commit comments

Comments
 (0)