Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update peek-readable to 6.0.1
Browse files Browse the repository at this point in the history
Borewit committed Jan 29, 2025
1 parent e0ef67e commit 2ebc528
Showing 4 changed files with 41 additions and 21 deletions.
24 changes: 21 additions & 3 deletions lib/core.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { Readable } from 'node:stream';
import { StreamReader, WebStreamReader, type AnyWebByteStream } from 'peek-readable';
import { StreamReader, makeWebStreamReader, type AnyWebByteStream } from 'peek-readable';

import { ReadStreamTokenizer } from './ReadStreamTokenizer.js';
import { BufferTokenizer } from './BufferTokenizer.js';
@@ -18,7 +18,16 @@ export { AbstractTokenizer } from './AbstractTokenizer.js';
* @returns ReadStreamTokenizer
*/
export function fromStream(stream: Readable, options?: ITokenizerOptions): ReadStreamTokenizer {
return new ReadStreamTokenizer(new StreamReader(stream), options);
const streamReader= new StreamReader(stream);
const _options: ITokenizerOptions = options ?? {};
const chainedClose = _options.onClose;
_options.onClose = async () => {
await streamReader.close();
if(chainedClose) {
return chainedClose();
}
};
return new ReadStreamTokenizer(streamReader, _options);
}

/**
@@ -29,7 +38,16 @@ export function fromStream(stream: Readable, options?: ITokenizerOptions): ReadS
* @returns ReadStreamTokenizer
*/
export function fromWebStream(webStream: AnyWebByteStream, options?: ITokenizerOptions): ReadStreamTokenizer {
return new ReadStreamTokenizer(new WebStreamReader(webStream), options);
const webStreamReader= makeWebStreamReader(webStream);
const _options: ITokenizerOptions = options ?? {};
const chainedClose = _options.onClose;
_options.onClose = async () => {
await webStreamReader.close();
if(chainedClose) {
return chainedClose();
}
};
return new ReadStreamTokenizer(webStreamReader, _options);
}

/**
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "strtok3",
"version": "10.0.1",
"version": "10.1.0-beta.1",
"description": "A promise based streaming tokenizer",
"author": {
"name": "Borewit",
@@ -71,7 +71,7 @@
},
"dependencies": {
"@tokenizer/token": "^0.3.0",
"peek-readable": "^5.3.1"
"peek-readable": "^6.0.1"
},
"keywords": [
"tokenizer",
24 changes: 13 additions & 11 deletions test/test.ts
Original file line number Diff line number Diff line change
@@ -829,18 +829,17 @@ describe('Matrix tests', () => {
});

it('should throw an EOF if we read to buffer', async () => {

const buffer = new Uint8Array(4);

return getTokenizerWithData('\x89\x54\x40', tokenizerType).then(rst => {
return rst.readBuffer(buffer).then(() => {
assert.fail('It should throw EndOfFile Error');
}).catch(err => {
assert.instanceOf(err, EndOfStreamError);
}).finally(() => {
return rst.close();
});
});
const rst = await getTokenizerWithData('\x89\x54\x40', tokenizerType);
try {
await rst.readBuffer(buffer);
assert.fail('It should throw EndOfFile Error');
} catch (err) {
assert.instanceOf(err, EndOfStreamError);
} finally {
await rst.close();
}
});

it('should throw an EOF if we peek to buffer', async () => {
@@ -1032,7 +1031,10 @@ it('should release stream after close', async () => {
const fileStream = await makeReadableByteFileStream(Path.join(__dirname, 'resources', 'test1.dat'), 0);
const stream = fileStream.stream;
assert.isFalse(stream.locked, 'stream is unlocked before initializing tokenizer');
const webStreamTokenizer = fromWebStream(fileStream.stream, {onClose: () => fileStream.closeFile()});
const webStreamTokenizer = fromWebStream(fileStream.stream, {onClose: () => {
return fileStream.closeFile();
}
});
assert.isTrue(stream.locked, 'stream is locked after initializing tokenizer');
await webStreamTokenizer.close();
assert.isFalse(stream.locked, 'stream is unlocked after closing tokenizer');
10 changes: 5 additions & 5 deletions yarn.lock
Original file line number Diff line number Diff line change
@@ -2503,10 +2503,10 @@ __metadata:
languageName: node
linkType: hard

"peek-readable@npm:^5.3.1":
version: 5.3.1
resolution: "peek-readable@npm:5.3.1"
checksum: 10c0/49f628e4728887230c158699e422ebb10747f5e02aee930ec10634fa7142e74e67d3fb3a780e7a9b9f092c61bf185f07d167c099b2359b22a58cee3dbfe0e43b
"peek-readable@npm:^6.0.1":
version: 6.0.1
resolution: "peek-readable@npm:6.0.1"
checksum: 10c0/8db0a5daf41935e8717d2b327d8ce62f1b63e71dfed70243e80360f5ae86297b8d42251b5ebacfb893b29dc41224b82ecff5bc7b0ea85417f015814fa5ab5d15
languageName: node
linkType: hard

@@ -3147,7 +3147,7 @@ __metadata:
chai-as-promised: "npm:^8.0.1"
del-cli: "npm:^6.0.0"
mocha: "npm:^11.0.1"
peek-readable: "npm:^5.3.1"
peek-readable: "npm:^6.0.1"
remark-cli: "npm:^12.0.1"
remark-preset-lint-recommended: "npm:^7.0.0"
token-types: "npm:^6.0.0"

0 comments on commit 2ebc528

Please sign in to comment.