Comparing version 7.1.1 to 8.0.0
@@ -1,3 +0,3 @@ | ||
import { ITokenizer, IFileInfo, IReadChunkOptions } from './types.js'; | ||
import { IGetToken, IToken } from '@tokenizer/token'; | ||
import type { ITokenizer, IFileInfo, IReadChunkOptions, ITokenizerOptions } from './types.js'; | ||
import type { IGetToken, IToken } from '@tokenizer/token'; | ||
interface INormalizedReadChunkOptions extends IReadChunkOptions { | ||
@@ -14,4 +14,10 @@ offset: number; | ||
fileInfo: IFileInfo; | ||
protected constructor(fileInfo?: IFileInfo); | ||
private onClose?; | ||
/** | ||
* Constructor | ||
* @param options Tokenizer options | ||
* @protected | ||
*/ | ||
protected constructor(options?: ITokenizerOptions); | ||
/** | ||
* Tokenizer-stream position | ||
@@ -30,3 +36,3 @@ */ | ||
* Peek (read ahead) buffer from tokenizer | ||
* @param uint8Array- Target buffer to fill with data peek from the tokenizer-stream | ||
* @param uint8Array - Target buffer to fill with data peeked from the tokenizer-stream | ||
* @param options - Peek behaviour options | ||
@@ -33,0 +39,0 @@ * @returns Promise with number of bytes read |
@@ -6,3 +6,9 @@ import { EndOfStreamError } from 'peek-readable'; | ||
export class AbstractTokenizer { | ||
constructor(fileInfo) { | ||
/** | ||
* Constructor | ||
* @param options Tokenizer options | ||
* @protected | ||
*/ | ||
constructor(options) { | ||
var _a; | ||
/** | ||
@@ -13,3 +19,4 @@ * Tokenizer-stream position | ||
this.numBuffer = new Uint8Array(8); | ||
this.fileInfo = fileInfo ? fileInfo : {}; | ||
this.fileInfo = (_a = options === null || options === void 0 ? void 0 : options.fileInfo) !== null && _a !== void 0 ? _a : {}; | ||
this.onClose = options === null || options === void 0 ? void 0 : options.onClose; | ||
} | ||
@@ -81,3 +88,4 @@ /** | ||
async close() { | ||
// empty | ||
var _a; | ||
await ((_a = this.onClose) === null || _a === void 0 ? void 0 : _a.call(this)); | ||
} | ||
@@ -84,0 +92,0 @@ normalizeOptions(uint8Array, options) { |
@@ -1,2 +0,2 @@ | ||
import { IFileInfo, IReadChunkOptions } from './types.js'; | ||
import { ITokenizerOptions, IReadChunkOptions } from './types.js'; | ||
import { AbstractTokenizer } from './AbstractTokenizer.js'; | ||
@@ -8,5 +8,5 @@ export declare class BufferTokenizer extends AbstractTokenizer { | ||
* @param uint8Array - Uint8Array to tokenize | ||
* @param fileInfo - Pass additional file information to the tokenizer | ||
* @param options Tokenizer options | ||
*/ | ||
constructor(uint8Array: Uint8Array, fileInfo?: IFileInfo); | ||
constructor(uint8Array: Uint8Array, options?: ITokenizerOptions); | ||
/** | ||
@@ -13,0 +13,0 @@ * Read buffer from tokenizer |
@@ -7,6 +7,6 @@ import { EndOfStreamError } from 'peek-readable'; | ||
* @param uint8Array - Uint8Array to tokenize | ||
* @param fileInfo - Pass additional file information to the tokenizer | ||
* @param options Tokenizer options | ||
*/ | ||
constructor(uint8Array, fileInfo) { | ||
super(fileInfo); | ||
constructor(uint8Array, options) { | ||
super(options); | ||
this.uint8Array = uint8Array; | ||
@@ -49,5 +49,5 @@ this.fileInfo.size = this.fileInfo.size ? this.fileInfo.size : uint8Array.length; | ||
} | ||
async close() { | ||
// empty | ||
close() { | ||
return super.close(); | ||
} | ||
} |
import { ReadStreamTokenizer } from './ReadStreamTokenizer.js'; | ||
import { BufferTokenizer } from './BufferTokenizer.js'; | ||
import { IFileInfo } from './types.js'; | ||
import type { ITokenizerOptions } from './types.js'; | ||
import type { ReadableStream } from 'node:stream/web'; | ||
import type { Readable } from 'node:stream'; | ||
export { EndOfStreamError } from 'peek-readable'; | ||
export { ITokenizer, IFileInfo } from './types.js'; | ||
export { IToken, IGetToken } from '@tokenizer/token'; | ||
export type { ITokenizer, IFileInfo, ITokenizerOptions, OnClose } from './types.js'; | ||
export type { IToken, IGetToken } from '@tokenizer/token'; | ||
/** | ||
@@ -13,6 +13,6 @@ * Construct ReadStreamTokenizer from given Stream. | ||
* @param stream - Read from Node.js Stream.Readable | ||
* @param fileInfo - Pass the file information, like size and MIME-type of the corresponding stream. | ||
* @param options - Tokenizer options | ||
* @returns ReadStreamTokenizer | ||
*/ | ||
export declare function fromStream(stream: Readable, fileInfo?: IFileInfo): ReadStreamTokenizer; | ||
export declare function fromStream(stream: Readable, options?: ITokenizerOptions): ReadStreamTokenizer; | ||
/** | ||
@@ -22,12 +22,12 @@ * Construct ReadStreamTokenizer from given ReadableStream (WebStream API). | ||
* @param webStream - Read from Node.js Stream.Readable | ||
* @param fileInfo - Pass the file information, like size and MIME-type of the corresponding stream. | ||
* @param options - Tokenizer options | ||
* @returns ReadStreamTokenizer | ||
*/ | ||
export declare function fromWebStream(webStream: ReadableStream<Uint8Array>, fileInfo?: IFileInfo): ReadStreamTokenizer; | ||
export declare function fromWebStream(webStream: ReadableStream<Uint8Array>, options?: ITokenizerOptions): ReadStreamTokenizer; | ||
/** | ||
* Construct ReadStreamTokenizer from given Buffer. | ||
* @param uint8Array - Uint8Array to tokenize | ||
* @param fileInfo - Pass additional file information to the tokenizer | ||
* @param options - Tokenizer options | ||
* @returns BufferTokenizer | ||
*/ | ||
export declare function fromBuffer(uint8Array: Uint8Array, fileInfo?: IFileInfo): BufferTokenizer; | ||
export declare function fromBuffer(uint8Array: Uint8Array, options?: ITokenizerOptions): BufferTokenizer; |
@@ -9,8 +9,7 @@ import { ReadStreamTokenizer } from './ReadStreamTokenizer.js'; | ||
* @param stream - Read from Node.js Stream.Readable | ||
* @param fileInfo - Pass the file information, like size and MIME-type of the corresponding stream. | ||
* @param options - Tokenizer options | ||
* @returns ReadStreamTokenizer | ||
*/ | ||
export function fromStream(stream, fileInfo) { | ||
fileInfo = fileInfo ? fileInfo : {}; | ||
return new ReadStreamTokenizer(new StreamReader(stream), fileInfo); | ||
export function fromStream(stream, options) { | ||
return new ReadStreamTokenizer(new StreamReader(stream), options); | ||
} | ||
@@ -21,8 +20,7 @@ /** | ||
* @param webStream - Read from Node.js Stream.Readable | ||
* @param fileInfo - Pass the file information, like size and MIME-type of the corresponding stream. | ||
* @param options - Tokenizer options | ||
* @returns ReadStreamTokenizer | ||
*/ | ||
export function fromWebStream(webStream, fileInfo) { | ||
fileInfo = fileInfo ? fileInfo : {}; | ||
return new ReadStreamTokenizer(new WebStreamReader(webStream), fileInfo); | ||
export function fromWebStream(webStream, options) { | ||
return new ReadStreamTokenizer(new WebStreamReader(webStream), options); | ||
} | ||
@@ -32,7 +30,7 @@ /** | ||
* @param uint8Array - Uint8Array to tokenize | ||
* @param fileInfo - Pass additional file information to the tokenizer | ||
* @param options - Tokenizer options | ||
* @returns BufferTokenizer | ||
*/ | ||
export function fromBuffer(uint8Array, fileInfo) { | ||
return new BufferTokenizer(uint8Array, fileInfo); | ||
export function fromBuffer(uint8Array, options) { | ||
return new BufferTokenizer(uint8Array, options); | ||
} |
import { AbstractTokenizer } from './AbstractTokenizer.js'; | ||
import { IFileInfo, IReadChunkOptions } from './types.js'; | ||
import type { IReadChunkOptions, ITokenizerOptions } from './types.js'; | ||
import { FileHandle } from 'node:fs/promises'; | ||
export declare class FileTokenizer extends AbstractTokenizer { | ||
private fileHandle; | ||
constructor(fileHandle: FileHandle, fileInfo: IFileInfo); | ||
constructor(fileHandle: FileHandle, options: ITokenizerOptions); | ||
/** | ||
@@ -8,0 +8,0 @@ * Read buffer from file |
@@ -5,4 +5,4 @@ import { AbstractTokenizer } from './AbstractTokenizer.js'; | ||
export class FileTokenizer extends AbstractTokenizer { | ||
constructor(fileHandle, fileInfo) { | ||
super(fileInfo); | ||
constructor(fileHandle, options) { | ||
super(options); | ||
this.fileHandle = fileHandle; | ||
@@ -41,3 +41,4 @@ } | ||
async close() { | ||
return this.fileHandle.close(); | ||
await this.fileHandle.close(); | ||
return super.close(); | ||
} | ||
@@ -48,3 +49,3 @@ } | ||
const stat = await fileHandle.stat(); | ||
return new FileTokenizer(fileHandle, { path: sourceFilePath, size: stat.size }); | ||
return new FileTokenizer(fileHandle, { fileInfo: { path: sourceFilePath, size: stat.size } }); | ||
} |
import { Readable } from 'node:stream'; | ||
import { ReadStreamTokenizer } from './ReadStreamTokenizer.js'; | ||
import * as core from './core.js'; | ||
import { type ITokenizerOptions } from './core.js'; | ||
export { fromFile } from './FileTokenizer.js'; | ||
export { ITokenizer, EndOfStreamError, fromBuffer, fromWebStream, IFileInfo } from './core.js'; | ||
export { ITokenizer, EndOfStreamError, fromBuffer, fromWebStream, IFileInfo, ITokenizerOptions, OnClose } from './core.js'; | ||
export { IToken, IGetToken } from '@tokenizer/token'; | ||
@@ -11,5 +11,5 @@ /** | ||
* @param stream - Node.js Stream.Readable | ||
* @param fileInfo - Pass additional file information to the tokenizer | ||
* @param options - Pass additional file information to the tokenizer | ||
* @returns Tokenizer | ||
*/ | ||
export declare function fromStream(stream: Readable, fileInfo?: core.IFileInfo): Promise<ReadStreamTokenizer>; | ||
export declare function fromStream(stream: Readable, options?: ITokenizerOptions): Promise<ReadStreamTokenizer>; |
import { stat as fsStat } from 'node:fs/promises'; | ||
import * as core from './core.js'; | ||
import { fromStream as coreFromStream } from './core.js'; | ||
export { fromFile } from './FileTokenizer.js'; | ||
@@ -9,13 +9,15 @@ export { EndOfStreamError, fromBuffer, fromWebStream } from './core.js'; | ||
* @param stream - Node.js Stream.Readable | ||
* @param fileInfo - Pass additional file information to the tokenizer | ||
* @param options - Pass additional file information to the tokenizer | ||
* @returns Tokenizer | ||
*/ | ||
export async function fromStream(stream, fileInfo) { | ||
fileInfo = fileInfo ? fileInfo : {}; | ||
export async function fromStream(stream, options) { | ||
var _a; | ||
const augmentedOptions = options !== null && options !== void 0 ? options : {}; | ||
augmentedOptions.fileInfo = (_a = augmentedOptions.fileInfo) !== null && _a !== void 0 ? _a : {}; | ||
if (stream.path) { | ||
const stat = await fsStat(stream.path); | ||
fileInfo.path = stream.path; | ||
fileInfo.size = stat.size; | ||
augmentedOptions.fileInfo.path = stream.path; | ||
augmentedOptions.fileInfo.size = stat.size; | ||
} | ||
return core.fromStream(stream, fileInfo); | ||
return coreFromStream(stream, augmentedOptions); | ||
} |
import { AbstractTokenizer } from './AbstractTokenizer.js'; | ||
import { IStreamReader } from 'peek-readable'; | ||
import { IFileInfo, IReadChunkOptions } from './types.js'; | ||
import { type IStreamReader } from 'peek-readable'; | ||
import type { IReadChunkOptions, ITokenizerOptions } from './types.js'; | ||
export declare class ReadStreamTokenizer extends AbstractTokenizer { | ||
private streamReader; | ||
constructor(streamReader: IStreamReader, fileInfo?: IFileInfo); | ||
/** | ||
* Get file information, an HTTP-client may implement this doing a HEAD request | ||
* @return Promise with file information | ||
* Constructor | ||
* @param streamReader stream-reader to read from | ||
* @param options Tokenizer options | ||
*/ | ||
getFileInfo(): Promise<IFileInfo>; | ||
constructor(streamReader: IStreamReader, options?: ITokenizerOptions); | ||
/** | ||
@@ -13,0 +13,0 @@ * Read buffer from tokenizer |
@@ -5,12 +5,10 @@ import { AbstractTokenizer } from './AbstractTokenizer.js'; | ||
export class ReadStreamTokenizer extends AbstractTokenizer { | ||
constructor(streamReader, fileInfo) { | ||
super(fileInfo); | ||
this.streamReader = streamReader; | ||
} | ||
/** | ||
* Get file information, an HTTP-client may implement this doing a HEAD request | ||
* @return Promise with file information | ||
* Constructor | ||
* @param streamReader stream-reader to read from | ||
* @param options Tokenizer options | ||
*/ | ||
async getFileInfo() { | ||
return this.fileInfo; | ||
constructor(streamReader, options) { | ||
super(options); | ||
this.streamReader = streamReader; | ||
} | ||
@@ -17,0 +15,0 @@ /** |
@@ -103,1 +103,12 @@ import { IGetToken } from '@tokenizer/token'; | ||
} | ||
export type OnClose = () => Promise<void>; | ||
export interface ITokenizerOptions { | ||
/** | ||
* Pass additional file information to the tokenizer | ||
*/ | ||
fileInfo?: IFileInfo; | ||
/** | ||
* On tokenizer close handler | ||
*/ | ||
onClose?: OnClose; | ||
} |
{ | ||
"name": "strtok3", | ||
"version": "7.1.1", | ||
"version": "8.0.0", | ||
"description": "A promise based streaming tokenizer", | ||
@@ -14,3 +14,3 @@ "author": { | ||
"scripts": { | ||
"clean": "del-cli lib/**/*.js lib/**/*.js.map lib/**/*.d.ts test/**/*.js test/**/*.js.map", | ||
"clean": "del-cli 'lib/**/*.js' 'lib/**/*.js.map' 'lib/**/*.d.ts' 'test/**/*.js' 'test/**/*.js.map'", | ||
"compile-src": "tsc -p lib", | ||
@@ -17,0 +17,0 @@ "compile-test": "tsc -p test", |
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
49059
664