File tree Expand file tree Collapse file tree 1 file changed +35
-1
lines changed Expand file tree Collapse file tree 1 file changed +35
-1
lines changed Original file line number Diff line number Diff line change @@ -14,6 +14,40 @@ function findSourceMapURL(fileName) {
1414 ) ;
1515}
1616
17+ function createDelayedStream (
18+ stream : ReadableStream < Uint8Array >
19+ ) : ReadableStream < Uint8Array > {
20+ return new ReadableStream ( {
21+ async start ( controller ) {
22+ const reader = stream . getReader ( ) ;
23+
24+ try {
25+ while ( true ) {
26+ const { done, value} = await reader . read ( ) ;
27+ if ( done ) {
28+ if ( ! controller . desiredSize === null ) {
29+ controller . close ( ) ;
30+ }
31+ break ;
32+ } else {
33+ // Artificially delay between enqueuing chunks.
34+ await new Promise ( resolve => setTimeout ( resolve , 10 ) ) ;
35+ if ( controller . desiredSize !== null ) {
36+ controller . enqueue ( value ) ;
37+ }
38+ }
39+ }
40+ } catch ( error ) {
41+ if ( controller . desiredSize !== null ) {
42+ controller . error ( error ) ;
43+ }
44+ } finally {
45+ reader . releaseLock ( ) ;
46+ }
47+ } ,
48+ } ) ;
49+ }
50+
1751async function createWebSocketStream ( url ) {
1852 const ws = new WebSocket ( url ) ;
1953 ws . binaryType = 'arraybuffer' ;
@@ -49,7 +83,7 @@ async function createWebSocketStream(url) {
4983 } ,
5084 } ) ;
5185
52- return { readable, writable} ;
86+ return { readable : createDelayedStream ( readable ) , writable } ;
5387}
5488
5589let updateRoot ;
You can’t perform that action at this time.
0 commit comments