strtok3 6.0.8 → 6.1.3

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.
@@ -1,112 +1,112 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fromFile = exports.FileTokenizer = void 0;
4
- const AbstractTokenizer_1 = require("./AbstractTokenizer");
5
- const peek_readable_1 = require("peek-readable");
6
- const fs = require("./FsPromise");
7
- class FileTokenizer extends AbstractTokenizer_1.AbstractTokenizer {
8
- constructor(fd, fileInfo) {
9
- super(fileInfo);
10
- this.fd = fd;
11
- }
12
- /**
13
- * Read buffer from file
14
- * @param buffer
15
- * @param options - Read behaviour options
16
- * @returns Promise number of bytes read
17
- */
18
- async readBuffer(buffer, options) {
19
- let offset = 0;
20
- let length = buffer.length;
21
- if (options) {
22
- if (options.position) {
23
- if (options.position < this.position) {
24
- throw new Error('`options.position` must be equal or greater than `tokenizer.position`');
25
- }
26
- this.position = options.position;
27
- }
28
- if (Number.isInteger(options.length)) {
29
- length = options.length;
30
- }
31
- else {
32
- length -= options.offset || 0;
33
- }
34
- if (options.offset) {
35
- offset = options.offset;
36
- }
37
- }
38
- if (length === 0) {
39
- return Promise.resolve(0);
40
- }
41
- const res = await fs.read(this.fd, buffer, offset, length, this.position);
42
- this.position += res.bytesRead;
43
- if (res.bytesRead < length && (!options || !options.mayBeLess)) {
44
- throw new peek_readable_1.EndOfStreamError();
45
- }
46
- return res.bytesRead;
47
- }
48
- /**
49
- * Peek buffer from file
50
- * @param buffer
51
- * @param options - Read behaviour options
52
- * @returns Promise number of bytes read
53
- */
54
- async peekBuffer(buffer, options) {
55
- let offset = 0;
56
- let length = buffer.length;
57
- let position = this.position;
58
- if (options) {
59
- if (options.position) {
60
- if (options.position < this.position) {
61
- throw new Error('`options.position` must be equal or greater than `tokenizer.position`');
62
- }
63
- position = options.position;
64
- }
65
- if (Number.isInteger(options.length)) {
66
- length = options.length;
67
- }
68
- else {
69
- length -= options.offset || 0;
70
- }
71
- if (options.offset) {
72
- offset = options.offset;
73
- }
74
- }
75
- if (length === 0) {
76
- return Promise.resolve(0);
77
- }
78
- const res = await fs.read(this.fd, buffer, offset, length, position);
79
- if ((!options || !options.mayBeLess) && res.bytesRead < length) {
80
- throw new peek_readable_1.EndOfStreamError();
81
- }
82
- return res.bytesRead;
83
- }
84
- /**
85
- * @param length - Number of bytes to ignore
86
- * @return resolves the number of bytes ignored, equals length if this available, otherwise the number of bytes available
87
- */
88
- async ignore(length) {
89
- const bytesLeft = this.fileInfo.size - this.position;
90
- if (length <= bytesLeft) {
91
- this.position += length;
92
- return length;
93
- }
94
- else {
95
- this.position += bytesLeft;
96
- return bytesLeft;
97
- }
98
- }
99
- async close() {
100
- return fs.close(this.fd);
101
- }
102
- }
103
- exports.FileTokenizer = FileTokenizer;
104
- async function fromFile(sourceFilePath) {
105
- const stat = await fs.stat(sourceFilePath);
106
- if (!stat.isFile) {
107
- throw new Error(`File not a file: ${sourceFilePath}`);
108
- }
109
- const fd = await fs.open(sourceFilePath, 'r');
110
- return new FileTokenizer(fd, { path: sourceFilePath, size: stat.size });
111
- }
112
- exports.fromFile = fromFile;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fromFile = exports.FileTokenizer = void 0;
4
+ const AbstractTokenizer_1 = require("./AbstractTokenizer");
5
+ const peek_readable_1 = require("peek-readable");
6
+ const fs = require("./FsPromise");
7
+ class FileTokenizer extends AbstractTokenizer_1.AbstractTokenizer {
8
+ constructor(fd, fileInfo) {
9
+ super(fileInfo);
10
+ this.fd = fd;
11
+ }
12
+ /**
13
+ * Read buffer from file
14
+ * @param buffer
15
+ * @param options - Read behaviour options
16
+ * @returns Promise number of bytes read
17
+ */
18
+ async readBuffer(buffer, options) {
19
+ let offset = 0;
20
+ let length = buffer.length;
21
+ if (options) {
22
+ if (options.position) {
23
+ if (options.position < this.position) {
24
+ throw new Error('`options.position` must be equal or greater than `tokenizer.position`');
25
+ }
26
+ this.position = options.position;
27
+ }
28
+ if (Number.isInteger(options.length)) {
29
+ length = options.length;
30
+ }
31
+ else {
32
+ length -= options.offset || 0;
33
+ }
34
+ if (options.offset) {
35
+ offset = options.offset;
36
+ }
37
+ }
38
+ if (length === 0) {
39
+ return Promise.resolve(0);
40
+ }
41
+ const res = await fs.read(this.fd, buffer, offset, length, this.position);
42
+ this.position += res.bytesRead;
43
+ if (res.bytesRead < length && (!options || !options.mayBeLess)) {
44
+ throw new peek_readable_1.EndOfStreamError();
45
+ }
46
+ return res.bytesRead;
47
+ }
48
+ /**
49
+ * Peek buffer from file
50
+ * @param buffer
51
+ * @param options - Read behaviour options
52
+ * @returns Promise number of bytes read
53
+ */
54
+ async peekBuffer(buffer, options) {
55
+ let offset = 0;
56
+ let length = buffer.length;
57
+ let position = this.position;
58
+ if (options) {
59
+ if (options.position) {
60
+ if (options.position < this.position) {
61
+ throw new Error('`options.position` must be equal or greater than `tokenizer.position`');
62
+ }
63
+ position = options.position;
64
+ }
65
+ if (Number.isInteger(options.length)) {
66
+ length = options.length;
67
+ }
68
+ else {
69
+ length -= options.offset || 0;
70
+ }
71
+ if (options.offset) {
72
+ offset = options.offset;
73
+ }
74
+ }
75
+ if (length === 0) {
76
+ return Promise.resolve(0);
77
+ }
78
+ const res = await fs.read(this.fd, buffer, offset, length, position);
79
+ if ((!options || !options.mayBeLess) && res.bytesRead < length) {
80
+ throw new peek_readable_1.EndOfStreamError();
81
+ }
82
+ return res.bytesRead;
83
+ }
84
+ /**
85
+ * @param length - Number of bytes to ignore
86
+ * @return resolves the number of bytes ignored, equals length if this available, otherwise the number of bytes available
87
+ */
88
+ async ignore(length) {
89
+ const bytesLeft = this.fileInfo.size - this.position;
90
+ if (length <= bytesLeft) {
91
+ this.position += length;
92
+ return length;
93
+ }
94
+ else {
95
+ this.position += bytesLeft;
96
+ return bytesLeft;
97
+ }
98
+ }
99
+ async close() {
100
+ return fs.close(this.fd);
101
+ }
102
+ }
103
+ exports.FileTokenizer = FileTokenizer;
104
+ async function fromFile(sourceFilePath) {
105
+ const stat = await fs.stat(sourceFilePath);
106
+ if (!stat.isFile) {
107
+ throw new Error(`File not a file: ${sourceFilePath}`);
108
+ }
109
+ const fd = await fs.open(sourceFilePath, 'r');
110
+ return new FileTokenizer(fd, { path: sourceFilePath, size: stat.size });
111
+ }
112
+ exports.fromFile = fromFile;
@@ -1,18 +1,18 @@
1
- /**
2
- * Module convert fs functions to promise based functions
3
- */
4
- /// <reference types="node" />
5
- import * as fs from 'fs';
6
- export interface IReadResult {
7
- bytesRead: number;
8
- buffer: Buffer;
9
- }
10
- export declare const pathExists: typeof fs.existsSync;
11
- export declare const createReadStream: typeof fs.createReadStream;
12
- export declare function stat(path: fs.PathLike): Promise<fs.Stats>;
13
- export declare function close(fd: number): Promise<void>;
14
- export declare function open(path: fs.PathLike, mode?: string): Promise<number>;
15
- export declare function read(fd: number, buffer: Buffer, offset: number, length: number, position: number): Promise<IReadResult>;
16
- export declare function writeFile(path: fs.PathLike, data: Buffer | string): Promise<void>;
17
- export declare function writeFileSync(path: fs.PathLike, data: Buffer | string): void;
18
- export declare function readFile(path: fs.PathLike): Promise<Buffer>;
1
+ /**
2
+ * Module convert fs functions to promise based functions
3
+ */
4
+ /// <reference types="node" />
5
+ import * as fs from 'fs';
6
+ export interface IReadResult {
7
+ bytesRead: number;
8
+ buffer: Buffer;
9
+ }
10
+ export declare const pathExists: typeof fs.existsSync;
11
+ export declare const createReadStream: typeof fs.createReadStream;
12
+ export declare function stat(path: fs.PathLike): Promise<fs.Stats>;
13
+ export declare function close(fd: number): Promise<void>;
14
+ export declare function open(path: fs.PathLike, mode?: string): Promise<number>;
15
+ export declare function read(fd: number, buffer: Buffer, offset: number, length: number, position: number): Promise<IReadResult>;
16
+ export declare function writeFile(path: fs.PathLike, data: Buffer | string): Promise<void>;
17
+ export declare function writeFileSync(path: fs.PathLike, data: Buffer | string): void;
18
+ export declare function readFile(path: fs.PathLike): Promise<Buffer>;
package/lib/FsPromise.js CHANGED
@@ -1,79 +1,79 @@
1
- "use strict";
2
- /**
3
- * Module convert fs functions to promise based functions
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.readFile = exports.writeFileSync = exports.writeFile = exports.read = exports.open = exports.close = exports.stat = exports.createReadStream = exports.pathExists = void 0;
7
- const fs = require("fs");
8
- exports.pathExists = fs.existsSync;
9
- exports.createReadStream = fs.createReadStream;
10
- async function stat(path) {
11
- return new Promise((resolve, reject) => {
12
- fs.stat(path, (err, stats) => {
13
- if (err)
14
- reject(err);
15
- else
16
- resolve(stats);
17
- });
18
- });
19
- }
20
- exports.stat = stat;
21
- async function close(fd) {
22
- return new Promise((resolve, reject) => {
23
- fs.close(fd, err => {
24
- if (err)
25
- reject(err);
26
- else
27
- resolve();
28
- });
29
- });
30
- }
31
- exports.close = close;
32
- async function open(path, mode) {
33
- return new Promise((resolve, reject) => {
34
- fs.open(path, mode, (err, fd) => {
35
- if (err)
36
- reject(err);
37
- else
38
- resolve(fd);
39
- });
40
- });
41
- }
42
- exports.open = open;
43
- async function read(fd, buffer, offset, length, position) {
44
- return new Promise((resolve, reject) => {
45
- fs.read(fd, buffer, offset, length, position, (err, bytesRead, _buffer) => {
46
- if (err)
47
- reject(err);
48
- else
49
- resolve({ bytesRead, buffer: _buffer });
50
- });
51
- });
52
- }
53
- exports.read = read;
54
- async function writeFile(path, data) {
55
- return new Promise((resolve, reject) => {
56
- fs.writeFile(path, data, err => {
57
- if (err)
58
- reject(err);
59
- else
60
- resolve();
61
- });
62
- });
63
- }
64
- exports.writeFile = writeFile;
65
- function writeFileSync(path, data) {
66
- fs.writeFileSync(path, data);
67
- }
68
- exports.writeFileSync = writeFileSync;
69
- async function readFile(path) {
70
- return new Promise((resolve, reject) => {
71
- fs.readFile(path, (err, buffer) => {
72
- if (err)
73
- reject(err);
74
- else
75
- resolve(buffer);
76
- });
77
- });
78
- }
79
- exports.readFile = readFile;
1
+ "use strict";
2
+ /**
3
+ * Module convert fs functions to promise based functions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.readFile = exports.writeFileSync = exports.writeFile = exports.read = exports.open = exports.close = exports.stat = exports.createReadStream = exports.pathExists = void 0;
7
+ const fs = require("fs");
8
+ exports.pathExists = fs.existsSync;
9
+ exports.createReadStream = fs.createReadStream;
10
+ async function stat(path) {
11
+ return new Promise((resolve, reject) => {
12
+ fs.stat(path, (err, stats) => {
13
+ if (err)
14
+ reject(err);
15
+ else
16
+ resolve(stats);
17
+ });
18
+ });
19
+ }
20
+ exports.stat = stat;
21
+ async function close(fd) {
22
+ return new Promise((resolve, reject) => {
23
+ fs.close(fd, err => {
24
+ if (err)
25
+ reject(err);
26
+ else
27
+ resolve();
28
+ });
29
+ });
30
+ }
31
+ exports.close = close;
32
+ async function open(path, mode) {
33
+ return new Promise((resolve, reject) => {
34
+ fs.open(path, mode, (err, fd) => {
35
+ if (err)
36
+ reject(err);
37
+ else
38
+ resolve(fd);
39
+ });
40
+ });
41
+ }
42
+ exports.open = open;
43
+ async function read(fd, buffer, offset, length, position) {
44
+ return new Promise((resolve, reject) => {
45
+ fs.read(fd, buffer, offset, length, position, (err, bytesRead, _buffer) => {
46
+ if (err)
47
+ reject(err);
48
+ else
49
+ resolve({ bytesRead, buffer: _buffer });
50
+ });
51
+ });
52
+ }
53
+ exports.read = read;
54
+ async function writeFile(path, data) {
55
+ return new Promise((resolve, reject) => {
56
+ fs.writeFile(path, data, err => {
57
+ if (err)
58
+ reject(err);
59
+ else
60
+ resolve();
61
+ });
62
+ });
63
+ }
64
+ exports.writeFile = writeFile;
65
+ function writeFileSync(path, data) {
66
+ fs.writeFileSync(path, data);
67
+ }
68
+ exports.writeFileSync = writeFileSync;
69
+ async function readFile(path) {
70
+ return new Promise((resolve, reject) => {
71
+ fs.readFile(path, (err, buffer) => {
72
+ if (err)
73
+ reject(err);
74
+ else
75
+ resolve(buffer);
76
+ });
77
+ });
78
+ }
79
+ exports.readFile = readFile;
@@ -1,28 +1,28 @@
1
- /// <reference types="node" />
2
- import { AbstractTokenizer } from './AbstractTokenizer';
3
- import * as Stream from 'stream';
4
- import { IFileInfo, IReadChunkOptions } from './types';
5
- export declare class ReadStreamTokenizer extends AbstractTokenizer {
6
- private streamReader;
7
- constructor(stream: Stream.Readable, fileInfo?: IFileInfo);
8
- /**
9
- * Get file information, an HTTP-client may implement this doing a HEAD request
10
- * @return Promise with file information
11
- */
12
- getFileInfo(): Promise<IFileInfo>;
13
- /**
14
- * Read buffer from tokenizer
15
- * @param buffer - Target buffer to fill with data read from the tokenizer-stream
16
- * @param options - Read behaviour options
17
- * @returns Promise with number of bytes read
18
- */
19
- readBuffer(buffer: Buffer | Uint8Array, options?: IReadChunkOptions): Promise<number>;
20
- /**
21
- * Peek (read ahead) buffer from tokenizer
22
- * @param buffer - Target buffer to write the data read to
23
- * @param options - Read behaviour options
24
- * @returns Promise with number of bytes peeked
25
- */
26
- peekBuffer(buffer: Buffer | Uint8Array, options?: IReadChunkOptions): Promise<number>;
27
- ignore(length: number): Promise<number>;
28
- }
1
+ /// <reference types="node" />
2
+ import { AbstractTokenizer } from './AbstractTokenizer';
3
+ import * as Stream from 'stream';
4
+ import { IFileInfo, IReadChunkOptions } from './types';
5
+ export declare class ReadStreamTokenizer extends AbstractTokenizer {
6
+ private streamReader;
7
+ constructor(stream: Stream.Readable, fileInfo?: IFileInfo);
8
+ /**
9
+ * Get file information, an HTTP-client may implement this doing a HEAD request
10
+ * @return Promise with file information
11
+ */
12
+ getFileInfo(): Promise<IFileInfo>;
13
+ /**
14
+ * Read buffer from tokenizer
15
+ * @param buffer - Target buffer to fill with data read from the tokenizer-stream
16
+ * @param options - Read behaviour options
17
+ * @returns Promise with number of bytes read
18
+ */
19
+ readBuffer(buffer: Buffer | Uint8Array, options?: IReadChunkOptions): Promise<number>;
20
+ /**
21
+ * Peek (read ahead) buffer from tokenizer
22
+ * @param buffer - Target buffer to write the data read to
23
+ * @param options - Read behaviour options
24
+ * @returns Promise with number of bytes peeked
25
+ */
26
+ peekBuffer(buffer: Buffer | Uint8Array, options?: IReadChunkOptions): Promise<number>;
27
+ ignore(length: number): Promise<number>;
28
+ }