PHP 8.2.30
Preview: trackStream.js Size: 1.65 KB
/proc/thread-self/root/home/byroehnu/.trash/node_modules11/axios/lib/helpers/trackStream.js

export const streamChunk = function* (chunk, chunkSize) {
  let len = chunk.byteLength;

  if (!chunkSize || len < chunkSize) {
    yield chunk;
    return;
  }

  let pos = 0;
  let end;

  while (pos < len) {
    end = pos + chunkSize;
    yield chunk.slice(pos, end);
    pos = end;
  }
}

export const readBytes = async function* (iterable, chunkSize) {
  for await (const chunk of readStream(iterable)) {
    yield* streamChunk(chunk, chunkSize);
  }
}

const readStream = async function* (stream) {
  if (stream[Symbol.asyncIterator]) {
    yield* stream;
    return;
  }

  const reader = stream.getReader();
  try {
    for (;;) {
      const {done, value} = await reader.read();
      if (done) {
        break;
      }
      yield value;
    }
  } finally {
    await reader.cancel();
  }
}

export const trackStream = (stream, chunkSize, onProgress, onFinish) => {
  const iterator = readBytes(stream, chunkSize);

  let bytes = 0;
  let done;
  let _onFinish = (e) => {
    if (!done) {
      done = true;
      onFinish && onFinish(e);
    }
  }

  return new ReadableStream({
    async pull(controller) {
      try {
        const {done, value} = await iterator.next();

        if (done) {
         _onFinish();
          controller.close();
          return;
        }

        let len = value.byteLength;
        if (onProgress) {
          let loadedBytes = bytes += len;
          onProgress(loadedBytes);
        }
        controller.enqueue(new Uint8Array(value));
      } catch (err) {
        _onFinish(err);
        throw err;
      }
    },
    cancel(reason) {
      _onFinish(reason);
      return iterator.return();
    }
  }, {
    highWaterMark: 2
  })
}

Directory Contents

Dirs: 0 × Files: 32

Name Size Perms Modified Actions
3.59 KB lrw-r--r-- 2026-02-20 03:53:04
Edit Download
1.41 KB lrw-r--r-- 2026-02-20 03:53:06
Edit Download
444 B lrw-r--r-- 2026-02-20 03:53:06
Edit Download
1.54 KB lrw-r--r-- 2026-02-20 03:53:06
Edit Download
372 B lrw-r--r-- 2026-02-20 03:53:06
Edit Download
382 B lrw-r--r-- 2026-02-20 03:53:06
Edit Download
1.33 KB lrw-r--r-- 2026-02-20 03:53:06
Edit Download
1.30 KB lrw-r--r-- 2026-02-20 03:53:06
Edit Download
746 B lrw-r--r-- 2026-02-20 03:53:06
Edit Download
2.01 KB lrw-r--r-- 2026-02-20 03:53:06
Edit Download
2.11 KB lrw-r--r-- 2026-02-20 03:53:06
Edit Download
2.90 KB lrw-r--r-- 2026-02-20 03:53:06
Edit Download
1.33 KB lrw-r--r-- 2026-02-20 03:53:06
Edit Download
1.72 KB lrw-r--r-- 2026-02-20 03:53:06
Edit Download
618 B lrw-r--r-- 2026-02-20 03:53:06
Edit Download
371 B lrw-r--r-- 2026-02-20 03:53:06
Edit Download
420 B lrw-r--r-- 2026-02-20 03:53:08
Edit Download
56 B lrw-r--r-- 2026-02-20 03:53:08
Edit Download
1.35 KB lrw-r--r-- 2026-02-20 03:53:08
Edit Download
151 B lrw-r--r-- 2026-02-20 03:53:08
Edit Download
1.21 KB lrw-r--r-- 2026-02-20 03:53:08
Edit Download
318 B lrw-r--r-- 2026-02-20 03:53:08
Edit Download
351 B lrw-r--r-- 2026-02-20 03:53:18
Edit Download
2.15 KB lrw-r--r-- 2026-02-20 03:53:08
Edit Download
1.07 KB lrw-r--r-- 2026-02-20 03:53:08
Edit Download
566 B lrw-r--r-- 2026-02-20 03:53:08
Edit Download
852 B lrw-r--r-- 2026-02-20 03:53:10
Edit Download
5.97 KB lrw-r--r-- 2026-02-20 03:53:10
Edit Download
540 B lrw-r--r-- 2026-02-20 03:53:10
Edit Download
1.65 KB lrw-r--r-- 2026-02-20 03:53:10
Edit Download
2.72 KB lrw-r--r-- 2026-02-20 03:53:12
Edit Download
681 B lrw-r--r-- 2026-02-20 03:53:12
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).