MCPcopy Index your code
hub / github.com/nodejs/node / readableStreamPipeTo

Function readableStreamPipeTo

lib/internal/webstreams/readablestream.js:1457–1719  ·  view source on GitHub ↗
(
  source,
  dest,
  preventClose,
  preventAbort,
  preventCancel,
  signal)

Source from the content-addressed store, hash-verified

1455}
1456
1457function readableStreamPipeTo(
1458 source,
1459 dest,
1460 preventClose,
1461 preventAbort,
1462 preventCancel,
1463 signal) {
1464
1465 let reader;
1466 let writer;
1467 let disposable;
1468 // Both of these can throw synchronously. We want to capture
1469 // the error and return a rejected promise instead.
1470 try {
1471 reader = new ReadableStreamDefaultReader(source);
1472 writer = new WritableStreamDefaultWriter(dest);
1473 } catch (error) {
1474 return PromiseReject(error);
1475 }
1476
1477 source[kState].disturbed = true;
1478
1479 let shuttingDown = false;
1480
1481 if (signal !== undefined) {
1482 try {
1483 validateAbortSignal(signal, 'options.signal');
1484 } catch (error) {
1485 return PromiseReject(error);
1486 }
1487 }
1488
1489 const promise = PromiseWithResolvers();
1490
1491 const state = {
1492 currentWrite: PromiseResolve(),
1493 };
1494
1495 // The error here can be undefined. The rejected arg
1496 // tells us that the promise must be rejected even
1497 // when error is undefine.
1498 function finalize(rejected, error) {
1499 writableStreamDefaultWriterRelease(writer);
1500 readableStreamReaderGenericRelease(reader);
1501 if (signal !== undefined)
1502 disposable?.[SymbolDispose]();
1503 if (rejected)
1504 promise.reject(error);
1505 else
1506 promise.resolve();
1507 }
1508
1509 async function waitForCurrentWrite() {
1510 const write = state.currentWrite;
1511 await write;
1512 if (write !== state.currentWrite)
1513 await waitForCurrentWrite();
1514 }

Callers 5

pipeThroughMethod · 0.85
pipeToMethod · 0.85

Calls 15

validateAbortSignalFunction · 0.85
abortAlgorithmFunction · 0.85
setPromiseHandledFunction · 0.85
watchErroredFunction · 0.85
readerClosedPromiseFunction · 0.85
shutdownWithAnActionFunction · 0.85
writableStreamAbortFunction · 0.85
writerClosedPromiseFunction · 0.85
readableStreamCancelFunction · 0.85
watchClosedFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…