strtok3 9.1.1 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -293,7 +293,6 @@ Each attribute is optional:
293
293
 
294
294
  | Attribute | Type | Description |
295
295
  |-----------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
296
- | offset | number | The offset in the buffer to start writing at; if not provided, start at 0 |
297
296
  | length | number | Requested number of bytes to read. |
298
297
  | position | number | Position where to peek from the file. If position is null, data will be read from the [current file position](#attribute-tokenizerposition). Position may not be less then [tokenizer.position](#attribute-tokenizerposition) |
299
298
  | mayBeLess | boolean | If and only if set, will not throw an EOF error if less then the requested *mayBeLess* could be read. |
@@ -1,7 +1,6 @@
1
1
  import type { ITokenizer, IFileInfo, IReadChunkOptions, ITokenizerOptions } from './types.js';
2
2
  import type { IGetToken, IToken } from '@tokenizer/token';
3
3
  interface INormalizedReadChunkOptions extends IReadChunkOptions {
4
- offset: number;
5
4
  length: number;
6
5
  position: number;
7
6
  mayBeLess?: boolean;
@@ -90,22 +90,16 @@ export class AbstractTokenizer {
90
90
  await this.onClose?.();
91
91
  }
92
92
  normalizeOptions(uint8Array, options) {
93
- if (options && options.position !== undefined && options.position < this.position) {
93
+ if (!this.supportsRandomAccess() && options && options.position !== undefined && options.position < this.position) {
94
94
  throw new Error('`options.position` must be equal or greater than `tokenizer.position`');
95
95
  }
96
- if (options) {
97
- return {
98
- mayBeLess: options.mayBeLess === true,
99
- offset: options.offset ? options.offset : 0,
100
- length: options.length ? options.length : (uint8Array.length - (options.offset ? options.offset : 0)),
101
- position: options.position ? options.position : this.position
102
- };
103
- }
104
96
  return {
105
- mayBeLess: false,
106
- offset: 0,
107
- length: uint8Array.length,
108
- position: this.position
97
+ ...{
98
+ mayBeLess: false,
99
+ offset: 0,
100
+ length: uint8Array.length,
101
+ position: this.position
102
+ }, ...options
109
103
  };
110
104
  }
111
105
  abort() {
@@ -40,7 +40,7 @@ export class BufferTokenizer extends AbstractTokenizer {
40
40
  if ((!normOptions.mayBeLess) && bytes2read < normOptions.length) {
41
41
  throw new EndOfStreamError();
42
42
  }
43
- uint8Array.set(this.uint8Array.subarray(normOptions.position, normOptions.position + bytes2read), normOptions.offset);
43
+ uint8Array.set(this.uint8Array.subarray(normOptions.position, normOptions.position + bytes2read));
44
44
  return bytes2read;
45
45
  }
46
46
  close() {
@@ -27,7 +27,7 @@ export class FileTokenizer extends AbstractTokenizer {
27
27
  this.position = normOptions.position;
28
28
  if (normOptions.length === 0)
29
29
  return 0;
30
- const res = await this.fileHandle.read(uint8Array, normOptions.offset, normOptions.length, normOptions.position);
30
+ const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);
31
31
  this.position += res.bytesRead;
32
32
  if (res.bytesRead < normOptions.length && (!options || !options.mayBeLess)) {
33
33
  throw new EndOfStreamError();
@@ -42,7 +42,7 @@ export class FileTokenizer extends AbstractTokenizer {
42
42
  */
43
43
  async peekBuffer(uint8Array, options) {
44
44
  const normOptions = this.normalizeOptions(uint8Array, options);
45
- const res = await this.fileHandle.read(uint8Array, normOptions.offset, normOptions.length, normOptions.position);
45
+ const res = await this.fileHandle.read(uint8Array, 0, normOptions.length, normOptions.position);
46
46
  if ((!normOptions.mayBeLess) && res.bytesRead < normOptions.length) {
47
47
  throw new EndOfStreamError();
48
48
  }
@@ -31,7 +31,7 @@ export class ReadStreamTokenizer extends AbstractTokenizer {
31
31
  if (normOptions.length === 0) {
32
32
  return 0;
33
33
  }
34
- const bytesRead = await this.streamReader.read(uint8Array, normOptions.offset, normOptions.length);
34
+ const bytesRead = await this.streamReader.read(uint8Array, 0, normOptions.length);
35
35
  this.position += bytesRead;
36
36
  if ((!options || !options.mayBeLess) && bytesRead < normOptions.length) {
37
37
  throw new EndOfStreamError();
@@ -52,7 +52,7 @@ export class ReadStreamTokenizer extends AbstractTokenizer {
52
52
  if (skipBytes > 0) {
53
53
  const skipBuffer = new Uint8Array(normOptions.length + skipBytes);
54
54
  bytesRead = await this.peekBuffer(skipBuffer, { mayBeLess: normOptions.mayBeLess });
55
- uint8Array.set(skipBuffer.subarray(skipBytes), normOptions.offset);
55
+ uint8Array.set(skipBuffer.subarray(skipBytes));
56
56
  return bytesRead - skipBytes;
57
57
  }
58
58
  if (skipBytes < 0) {
@@ -61,7 +61,7 @@ export class ReadStreamTokenizer extends AbstractTokenizer {
61
61
  }
62
62
  if (normOptions.length > 0) {
63
63
  try {
64
- bytesRead = await this.streamReader.peek(uint8Array, normOptions.offset, normOptions.length);
64
+ bytesRead = await this.streamReader.peek(uint8Array, 0, normOptions.length);
65
65
  }
66
66
  catch (err) {
67
67
  if (options?.mayBeLess && err instanceof EndOfStreamError) {
package/lib/types.d.ts CHANGED
@@ -24,10 +24,6 @@ export interface IRandomAccessFileInfo extends IFileInfo {
24
24
  size: number;
25
25
  }
26
26
  export interface IReadChunkOptions {
27
- /**
28
- * The offset in the buffer to start writing at; default is 0
29
- */
30
- offset?: number;
31
27
  /**
32
28
  * Number of bytes to read.
33
29
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "strtok3",
3
- "version": "9.1.1",
3
+ "version": "10.0.0",
4
4
  "description": "A promise based streaming tokenizer",
5
5
  "author": {
6
6
  "name": "Borewit",