/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v26.5.0
lib/stream/promises.js
44 строки
917 B
Debadree Chatterjee
stream: add pipeline() for webstreams
02 фев 2023, 22:45
Не верифицирован
02 фев 2023, 22:45
23effb2
Код
Авторство
О чём код?
'use strict'; const { ArrayPrototypePop, Promise, } = primordials; const { isIterable, isNodeStream, isWebStream, } = require('internal/streams/utils'); const { pipelineImpl: pl } = require('internal/streams/pipeline'); const { finished } = require('internal/streams/end-of-stream'); require('stream'); function pipeline(...streams) { return new Promise((resolve, reject) => { let signal; let end; const lastArg = streams[streams.length - 1]; if (lastArg && typeof lastArg === 'object' && !isNodeStream(lastArg) && !isIterable(lastArg) && !isWebStream(lastArg)) { const options = ArrayPrototypePop(streams); signal = options.signal; end = options.end; } pl(streams, (err, value) => { if (err) { reject(err); } else { resolve(value); } }, { signal, end }); }); } module.exports = { finished, pipeline, };