diff --git a/src/lib/core/upload/uploadV2.ts b/src/lib/core/upload/uploadV2.ts index 959de1a..2c85e3c 100644 --- a/src/lib/core/upload/uploadV2.ts +++ b/src/lib/core/upload/uploadV2.ts @@ -1,6 +1,5 @@ import { Cipher, createCipheriv, randomBytes } from 'crypto'; -import { Readable, Writable } from 'stream'; -import { pipeline } from 'stream/promises'; +import { addAbortSignal, Readable, Writable } from 'stream'; import { request as httpRequest } from 'http'; import { request as httpsRequest } from 'https'; import { validateMnemonic } from 'bip39'; @@ -96,8 +95,12 @@ export function uploadFileV2( const hasher = new HashStream(); - await pipeline(source, cipher, hasher, progress, putStream(url), { - signal: abortController.signal + await new Promise((resolve, reject) => { + addAbortSignal(abortController.signal, source).pipe(cipher).pipe(hasher).pipe(progress).pipe(putStream(url)) + .once('error', reject) + .once('finish', () => { + resolve(null); + }); }); const fileHash = hasher.getHash().toString('hex');