@@ -3,7 +3,8 @@ use std::{cell::Cell, rc::Rc};
33use llrt_utils:: module:: { export_default, ModuleInfo } ;
44use queueing_strategy:: { ByteLengthQueuingStrategy , CountQueuingStrategy } ;
55use readable:: {
6- ReadableByteStreamController , ReadableStream , ReadableStreamBYOBRequest , ReadableStreamClass ,
6+ ReadableByteStreamController , ReadableStream , ReadableStreamBYOBReader ,
7+ ReadableStreamBYOBRequest , ReadableStreamClass , ReadableStreamDefaultController ,
78 ReadableStreamDefaultReader ,
89} ;
910use rquickjs:: {
@@ -46,36 +47,43 @@ impl<'js> FromJs<'js> for ReadableWritablePair<'js> {
4647
4748pub struct StreamWebModule ;
4849
50+ // https://nodejs.org/api/webstreams.html
4951impl ModuleDef for StreamWebModule {
5052 fn declare ( declare : & Declarations ) -> Result < ( ) > {
5153 declare. declare ( stringify ! ( ReadableStream ) ) ?;
52- declare. declare ( stringify ! ( ByteLengthQueuingStrategy ) ) ?;
53- declare. declare ( stringify ! ( CountQueuingStrategy ) ) ?;
5454 declare. declare ( stringify ! ( ReadableStreamDefaultReader ) ) ?;
55+ declare. declare ( stringify ! ( ReadableStreamBYOBReader ) ) ?;
56+ declare. declare ( stringify ! ( ReadableStreamDefaultController ) ) ?;
5557 declare. declare ( stringify ! ( ReadableByteStreamController ) ) ?;
5658 declare. declare ( stringify ! ( ReadableStreamBYOBRequest ) ) ?;
5759
5860 declare. declare ( stringify ! ( WritableStream ) ) ?;
5961 declare. declare ( stringify ! ( WritableStreamDefaultWriter ) ) ?;
6062 declare. declare ( stringify ! ( WritableStreamDefaultController ) ) ?;
6163
64+ declare. declare ( stringify ! ( ByteLengthQueuingStrategy ) ) ?;
65+ declare. declare ( stringify ! ( CountQueuingStrategy ) ) ?;
66+
6267 declare. declare ( "default" ) ?;
6368 Ok ( ( ) )
6469 }
6570
6671 fn evaluate < ' js > ( ctx : & Ctx < ' js > , exports : & Exports < ' js > ) -> Result < ( ) > {
6772 export_default ( ctx, exports, |default| {
6873 Class :: < ReadableStream > :: define ( default) ?;
69- Class :: < ByteLengthQueuingStrategy > :: define ( default) ?;
70- Class :: < CountQueuingStrategy > :: define ( default) ?;
7174 Class :: < ReadableStreamDefaultReader > :: define ( default) ?;
75+ Class :: < ReadableStreamBYOBReader > :: define ( default) ?;
76+ Class :: < ReadableStreamDefaultController > :: define ( default) ?;
7277 Class :: < ReadableByteStreamController > :: define ( default) ?;
7378 Class :: < ReadableStreamBYOBRequest > :: define ( default) ?;
7479
7580 Class :: < WritableStream > :: define ( default) ?;
7681 Class :: < WritableStreamDefaultWriter > :: define ( default) ?;
7782 Class :: < WritableStreamDefaultController > :: define ( default) ?;
7883
84+ Class :: < ByteLengthQueuingStrategy > :: define ( default) ?;
85+ Class :: < CountQueuingStrategy > :: define ( default) ?;
86+
7987 Ok ( ( ) )
8088 } ) ?;
8189
@@ -92,6 +100,25 @@ impl From<StreamWebModule> for ModuleInfo<StreamWebModule> {
92100 }
93101}
94102
103+ pub fn init ( ctx : & Ctx ) -> Result < ( ) > {
104+ let globals = & ctx. globals ( ) ;
105+
106+ // https://min-common-api.proposal.wintercg.org/#api-index
107+ Class :: < ByteLengthQueuingStrategy > :: define ( globals) ?;
108+ Class :: < CountQueuingStrategy > :: define ( globals) ?;
109+
110+ Class :: < ReadableByteStreamController > :: define ( globals) ?;
111+ Class :: < ReadableStream > :: define ( globals) ?;
112+ Class :: < ReadableStreamBYOBReader > :: define ( globals) ?;
113+ Class :: < ReadableStreamBYOBRequest > :: define ( globals) ?;
114+ Class :: < ReadableStreamDefaultReader > :: define ( globals) ?;
115+
116+ Class :: < WritableStream > :: define ( globals) ?;
117+ Class :: < WritableStreamDefaultController > :: define ( globals) ?;
118+
119+ Ok ( ( ) )
120+ }
121+
95122/// Helper type for treating an undefined value as None, but not null
96123#[ derive( Clone ) ]
97124struct Undefined < T > ( pub Option < T > ) ;
0 commit comments