peek-readable
Advanced tools
Comparing version 5.1.2 to 5.1.3
@@ -5,3 +5,2 @@ export interface IStreamReader { | ||
} | ||
type isEndOfStream = () => boolean; | ||
export declare abstract class AbstractStreamReader implements IStreamReader { | ||
@@ -35,5 +34,4 @@ /** | ||
protected readFromPeekBuffer(buffer: Uint8Array, offset: number, length: number): number; | ||
readRemainderFromStream(buffer: Uint8Array, offset: number, remaining: number, isEndOfStream: isEndOfStream): Promise<number>; | ||
readRemainderFromStream(buffer: Uint8Array, offset: number, remaining: number): Promise<number>; | ||
protected abstract readFromStream(buffer: Uint8Array, offset: number, length: number): Promise<number>; | ||
} | ||
export {}; |
@@ -32,3 +32,3 @@ import { EndOfStreamError } from "./EndOfStreamError.js"; | ||
let bytesRead = this.readFromPeekBuffer(buffer, offset, length); | ||
bytesRead += await this.readRemainderFromStream(buffer, offset + bytesRead, length - bytesRead, () => false); | ||
bytesRead += await this.readRemainderFromStream(buffer, offset + bytesRead, length - bytesRead); | ||
if (bytesRead === 0) { | ||
@@ -65,11 +65,11 @@ throw new EndOfStreamError(); | ||
} | ||
async readRemainderFromStream(buffer, offset, remaining, isEndOfStream) { | ||
async readRemainderFromStream(buffer, offset, remaining) { | ||
let bytesRead = 0; | ||
// Continue reading from stream if required | ||
while (remaining > 0 && !isEndOfStream()) { | ||
while (remaining > 0 && !this.endOfStream) { | ||
const reqLen = Math.min(remaining, this.maxStreamReadSize); | ||
const chunkLen = await this.readFromStream(buffer, offset + bytesRead, reqLen); | ||
if (chunkLen === 0) | ||
break; | ||
bytesRead += chunkLen; | ||
if (chunkLen < reqLen) | ||
break; | ||
remaining -= chunkLen; | ||
@@ -76,0 +76,0 @@ } |
@@ -10,5 +10,4 @@ import { ReadableStream } from 'node:stream/web'; | ||
private reader; | ||
private eofStream; | ||
constructor(stream: ReadableStream<Uint8Array>); | ||
protected readFromStream(buffer: Uint8Array, offset: number, length: number): Promise<number>; | ||
} |
@@ -11,7 +11,6 @@ import { EndOfStreamError } from './EndOfStreamError.js'; | ||
super(); | ||
this.eofStream = false; | ||
this.reader = stream.getReader({ mode: 'byob' }); | ||
} | ||
async readFromStream(buffer, offset, length) { | ||
if (this.eofStream) { | ||
if (this.endOfStream) { | ||
throw new EndOfStreamError(); | ||
@@ -21,3 +20,3 @@ } | ||
if (result.done) { | ||
this.eofStream = result.done; | ||
this.endOfStream = result.done; | ||
} | ||
@@ -24,0 +23,0 @@ if (result.value) { |
{ | ||
"name": "peek-readable", | ||
"version": "5.1.2", | ||
"version": "5.1.3", | ||
"description": "Read and peek from a readable stream", | ||
@@ -49,5 +49,5 @@ "author": { | ||
"@types/mocha": "^10.0.7", | ||
"@types/node": "^20.14.9", | ||
"@typescript-eslint/eslint-plugin": "^7.14.1", | ||
"@typescript-eslint/parser": "^7.14.1", | ||
"@types/node": "^20.14.10", | ||
"@typescript-eslint/eslint-plugin": "^7.16.0", | ||
"@typescript-eslint/parser": "^7.16.0", | ||
"c8": "^10.1.2", | ||
@@ -64,8 +64,8 @@ "chai": "^5.1.1", | ||
"globals": "^15.8.0", | ||
"mocha": "^10.5.2", | ||
"mocha": "^10.6.0", | ||
"remark-cli": "^12.0.1", | ||
"remark-preset-lint-recommended": "^7.0.0", | ||
"source-map-support": "^0.5.21", | ||
"ts-node": "^10.9.1", | ||
"typescript": "^5.5.2" | ||
"ts-node": "^10.9.2", | ||
"typescript": "^5.5.3" | ||
}, | ||
@@ -72,0 +72,0 @@ "keywords": [ |
[![Node.js CI](https://github.com/Borewit/peek-readable/actions/workflows/nodejs-ci.yml/badge.svg)](https://github.com/Borewit/peek-readable/actions/workflows/nodejs-ci.yml) | ||
[![CodeQL](https://github.com/Borewit/peek-readable/actions/workflows/codeql.yml/badge.svg)](https://github.com/Borewit/peek-readable/actions/workflows/codeql.yml) | ||
[![NPM version](https://badge.fury.io/js/peek-readable.svg)](https://npmjs.org/package/peek-readable) | ||
@@ -7,3 +8,2 @@ [![npm downloads](http://img.shields.io/npm/dm/peek-readable.svg)](https://npmcharts.com/compare/peek-readable?start=600&interval=30) | ||
[![Known Vulnerabilities](https://snyk.io/test/github/Borewit/peek-readable/badge.svg?targetFile=package.json)](https://snyk.io/test/github/Borewit/peek-readable?targetFile=package.json) | ||
[![CodeQL](https://github.com/Borewit/peek-readable/actions/workflows/codeql.yml/badge.svg)](https://github.com/Borewit/peek-readable/actions/workflows/codeql.yml) | ||
@@ -10,0 +10,0 @@ # peek-readable |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
18180
297