@aws-sdk/chunked-stream-reader-node 3.34.0 → 3.46.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/CHANGELOG.md +38 -0
- package/dist-cjs/index.js +40 -0
- package/dist-cjs/readable.fixture.js +23 -0
- package/dist-es/index.js +37 -0
- package/dist-es/readable.fixture.js +24 -0
- package/{dist/types → dist-types}/index.d.ts +0 -0
- package/dist-types/readable.fixture.d.ts +13 -0
- package/{dist/types → dist-types}/ts3.4/index.d.ts +1 -1
- package/dist-types/ts3.4/readable.fixture.d.ts +13 -0
- package/package.json +12 -12
- package/dist/cjs/index.js +0 -41
- package/dist/es/index.js +0 -41
- package/src/index.ts +0 -46
- package/src/readable.fixture.ts +0 -29
- package/tsconfig.cjs.json +0 -9
- package/tsconfig.es.json +0 -9
- package/tsconfig.types.json +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,44 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.46.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.45.0...v3.46.0) (2022-01-07)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **packages:** end support for Node.js 10.x ([#3141](https://github.com/aws/aws-sdk-js-v3/issues/3141)) ([1a62865](https://github.com/aws/aws-sdk-js-v3/commit/1a6286513f7cdb556708845c512861c5f92eb883))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [3.37.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.36.1...v3.37.0) (2021-10-15)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @aws-sdk/chunked-stream-reader-node
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# [3.36.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.35.0...v3.36.0) (2021-10-08)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
* publish files in dist-* only ([#2873](https://github.com/aws/aws-sdk-js-v3/issues/2873)) ([53b4243](https://github.com/aws/aws-sdk-js-v3/commit/53b4243b066f25ff2412d5f0dea1036054b2df32))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# [3.35.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.34.0...v3.35.0) (2021-10-04)
|
|
37
|
+
|
|
38
|
+
**Note:** Version bump only for package @aws-sdk/chunked-stream-reader-node
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
6
44
|
# [3.34.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.33.0...v3.34.0) (2021-09-24)
|
|
7
45
|
|
|
8
46
|
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.streamReader = void 0;
|
|
4
|
+
function streamReader(stream, onChunk, chunkSize = 1048576) {
|
|
5
|
+
return new Promise((resolve, reject) => {
|
|
6
|
+
let temporaryBuffer;
|
|
7
|
+
stream.on("error", reject);
|
|
8
|
+
stream.on("end", () => {
|
|
9
|
+
if (temporaryBuffer === null || temporaryBuffer === void 0 ? void 0 : temporaryBuffer.byteLength) {
|
|
10
|
+
for (let i = 0; i < temporaryBuffer.byteLength; i += chunkSize) {
|
|
11
|
+
onChunk(temporaryBuffer.subarray(i, Math.min(i + chunkSize, temporaryBuffer.byteLength)));
|
|
12
|
+
}
|
|
13
|
+
temporaryBuffer = void 0;
|
|
14
|
+
}
|
|
15
|
+
resolve();
|
|
16
|
+
});
|
|
17
|
+
stream.on("data", (chunk) => {
|
|
18
|
+
if (!temporaryBuffer) {
|
|
19
|
+
temporaryBuffer = chunk;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
temporaryBuffer = mergeUint8Arrays(temporaryBuffer, chunk);
|
|
23
|
+
}
|
|
24
|
+
let pointer = 0;
|
|
25
|
+
while (temporaryBuffer.byteLength - pointer >= chunkSize) {
|
|
26
|
+
onChunk(temporaryBuffer.subarray(pointer, pointer + chunkSize));
|
|
27
|
+
pointer += chunkSize;
|
|
28
|
+
}
|
|
29
|
+
temporaryBuffer = temporaryBuffer.subarray(pointer);
|
|
30
|
+
});
|
|
31
|
+
stream.resume();
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
exports.streamReader = streamReader;
|
|
35
|
+
function mergeUint8Arrays(a, b) {
|
|
36
|
+
const result = new Uint8Array(a.byteLength + b.byteLength);
|
|
37
|
+
result.set(a);
|
|
38
|
+
result.set(b, a.byteLength);
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReadFromBuffers = void 0;
|
|
4
|
+
const stream_1 = require("stream");
|
|
5
|
+
class ReadFromBuffers extends stream_1.Readable {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
super(options);
|
|
8
|
+
this.numBuffersRead = 0;
|
|
9
|
+
this.buffersToRead = options.buffers;
|
|
10
|
+
this.errorAfter = typeof options.errorAfter === "number" ? options.errorAfter : -1;
|
|
11
|
+
}
|
|
12
|
+
_read() {
|
|
13
|
+
if (this.errorAfter !== -1 && this.errorAfter === this.numBuffersRead) {
|
|
14
|
+
this.emit("error", new Error("Mock Error"));
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (this.numBuffersRead >= this.buffersToRead.length) {
|
|
18
|
+
return this.push(null);
|
|
19
|
+
}
|
|
20
|
+
return this.push(this.buffersToRead[this.numBuffersRead++]);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.ReadFromBuffers = ReadFromBuffers;
|
package/dist-es/index.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export function streamReader(stream, onChunk, chunkSize) {
|
|
2
|
+
if (chunkSize === void 0) { chunkSize = 1048576; }
|
|
3
|
+
return new Promise(function (resolve, reject) {
|
|
4
|
+
var temporaryBuffer;
|
|
5
|
+
stream.on("error", reject);
|
|
6
|
+
stream.on("end", function () {
|
|
7
|
+
if (temporaryBuffer === null || temporaryBuffer === void 0 ? void 0 : temporaryBuffer.byteLength) {
|
|
8
|
+
for (var i = 0; i < temporaryBuffer.byteLength; i += chunkSize) {
|
|
9
|
+
onChunk(temporaryBuffer.subarray(i, Math.min(i + chunkSize, temporaryBuffer.byteLength)));
|
|
10
|
+
}
|
|
11
|
+
temporaryBuffer = void 0;
|
|
12
|
+
}
|
|
13
|
+
resolve();
|
|
14
|
+
});
|
|
15
|
+
stream.on("data", function (chunk) {
|
|
16
|
+
if (!temporaryBuffer) {
|
|
17
|
+
temporaryBuffer = chunk;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
temporaryBuffer = mergeUint8Arrays(temporaryBuffer, chunk);
|
|
21
|
+
}
|
|
22
|
+
var pointer = 0;
|
|
23
|
+
while (temporaryBuffer.byteLength - pointer >= chunkSize) {
|
|
24
|
+
onChunk(temporaryBuffer.subarray(pointer, pointer + chunkSize));
|
|
25
|
+
pointer += chunkSize;
|
|
26
|
+
}
|
|
27
|
+
temporaryBuffer = temporaryBuffer.subarray(pointer);
|
|
28
|
+
});
|
|
29
|
+
stream.resume();
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function mergeUint8Arrays(a, b) {
|
|
33
|
+
var result = new Uint8Array(a.byteLength + b.byteLength);
|
|
34
|
+
result.set(a);
|
|
35
|
+
result.set(b, a.byteLength);
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { __extends } from "tslib";
|
|
2
|
+
import { Readable } from "stream";
|
|
3
|
+
var ReadFromBuffers = (function (_super) {
|
|
4
|
+
__extends(ReadFromBuffers, _super);
|
|
5
|
+
function ReadFromBuffers(options) {
|
|
6
|
+
var _this = _super.call(this, options) || this;
|
|
7
|
+
_this.numBuffersRead = 0;
|
|
8
|
+
_this.buffersToRead = options.buffers;
|
|
9
|
+
_this.errorAfter = typeof options.errorAfter === "number" ? options.errorAfter : -1;
|
|
10
|
+
return _this;
|
|
11
|
+
}
|
|
12
|
+
ReadFromBuffers.prototype._read = function () {
|
|
13
|
+
if (this.errorAfter !== -1 && this.errorAfter === this.numBuffersRead) {
|
|
14
|
+
this.emit("error", new Error("Mock Error"));
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (this.numBuffersRead >= this.buffersToRead.length) {
|
|
18
|
+
return this.push(null);
|
|
19
|
+
}
|
|
20
|
+
return this.push(this.buffersToRead[this.numBuffersRead++]);
|
|
21
|
+
};
|
|
22
|
+
return ReadFromBuffers;
|
|
23
|
+
}(Readable));
|
|
24
|
+
export { ReadFromBuffers };
|
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Readable, ReadableOptions } from "stream";
|
|
3
|
+
export interface ReadFromBuffersOptions extends ReadableOptions {
|
|
4
|
+
buffers: Buffer[];
|
|
5
|
+
errorAfter?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class ReadFromBuffers extends Readable {
|
|
8
|
+
private buffersToRead;
|
|
9
|
+
private numBuffersRead;
|
|
10
|
+
private errorAfter;
|
|
11
|
+
constructor(options: ReadFromBuffersOptions);
|
|
12
|
+
_read(): boolean | undefined;
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
import { Readable, ReadableOptions } from "stream";
|
|
3
|
+
export interface ReadFromBuffersOptions extends ReadableOptions {
|
|
4
|
+
buffers: Buffer[];
|
|
5
|
+
errorAfter?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class ReadFromBuffers extends Readable {
|
|
8
|
+
private buffersToRead;
|
|
9
|
+
private numBuffersRead;
|
|
10
|
+
private errorAfter;
|
|
11
|
+
constructor(options: ReadFromBuffersOptions);
|
|
12
|
+
_read(): boolean | undefined;
|
|
13
|
+
}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/chunked-stream-reader-node",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.46.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build": "yarn build:cjs && yarn build:es && yarn build:types",
|
|
6
6
|
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
7
7
|
"build:es": "tsc -p tsconfig.es.json",
|
|
8
8
|
"build:types": "tsc -p tsconfig.types.json",
|
|
9
|
-
"downlevel
|
|
9
|
+
"build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4",
|
|
10
10
|
"test": "jest"
|
|
11
11
|
},
|
|
12
|
-
"main": "./dist
|
|
13
|
-
"module": "./dist
|
|
14
|
-
"types": "./dist
|
|
12
|
+
"main": "./dist-cjs/index.js",
|
|
13
|
+
"module": "./dist-es/index.js",
|
|
14
|
+
"types": "./dist-types/index.d.ts",
|
|
15
15
|
"author": {
|
|
16
16
|
"name": "AWS SDK for JavaScript Team",
|
|
17
17
|
"url": "https://aws.amazon.com/javascript/"
|
|
@@ -21,21 +21,21 @@
|
|
|
21
21
|
"tslib": "^2.3.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@types/
|
|
25
|
-
"@types/node": "^10.0.0",
|
|
26
|
-
"jest": "^26.1.0",
|
|
27
|
-
"typescript": "~4.3.5"
|
|
24
|
+
"@types/node": "^10.0.0"
|
|
28
25
|
},
|
|
29
26
|
"engines": {
|
|
30
|
-
"node": ">=
|
|
27
|
+
"node": ">= 12.0.0"
|
|
31
28
|
},
|
|
32
29
|
"typesVersions": {
|
|
33
30
|
"<4.0": {
|
|
34
|
-
"dist
|
|
35
|
-
"dist
|
|
31
|
+
"dist-types/*": [
|
|
32
|
+
"dist-types/ts3.4/*"
|
|
36
33
|
]
|
|
37
34
|
}
|
|
38
35
|
},
|
|
36
|
+
"files": [
|
|
37
|
+
"dist-*"
|
|
38
|
+
],
|
|
39
39
|
"homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages/chunked-stream-reader-node",
|
|
40
40
|
"repository": {
|
|
41
41
|
"type": "git",
|
package/dist/cjs/index.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.streamReader = void 0;
|
|
4
|
-
function streamReader(stream, onChunk, chunkSize = 1048576) {
|
|
5
|
-
return new Promise((resolve, reject) => {
|
|
6
|
-
let temporaryBuffer;
|
|
7
|
-
stream.on("error", reject);
|
|
8
|
-
stream.on("end", () => {
|
|
9
|
-
if (temporaryBuffer === null || temporaryBuffer === void 0 ? void 0 : temporaryBuffer.byteLength) {
|
|
10
|
-
for (let i = 0; i < temporaryBuffer.byteLength; i += chunkSize) {
|
|
11
|
-
onChunk(temporaryBuffer.subarray(i, Math.min(i + chunkSize, temporaryBuffer.byteLength)));
|
|
12
|
-
}
|
|
13
|
-
temporaryBuffer = void 0;
|
|
14
|
-
}
|
|
15
|
-
resolve();
|
|
16
|
-
});
|
|
17
|
-
stream.on("data", (chunk) => {
|
|
18
|
-
if (!temporaryBuffer) {
|
|
19
|
-
temporaryBuffer = chunk;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
temporaryBuffer = mergeUint8Arrays(temporaryBuffer, chunk);
|
|
23
|
-
}
|
|
24
|
-
let pointer = 0;
|
|
25
|
-
while (temporaryBuffer.byteLength - pointer >= chunkSize) {
|
|
26
|
-
onChunk(temporaryBuffer.subarray(pointer, pointer + chunkSize));
|
|
27
|
-
pointer += chunkSize;
|
|
28
|
-
}
|
|
29
|
-
temporaryBuffer = temporaryBuffer.subarray(pointer);
|
|
30
|
-
});
|
|
31
|
-
stream.resume();
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
exports.streamReader = streamReader;
|
|
35
|
-
function mergeUint8Arrays(a, b) {
|
|
36
|
-
const result = new Uint8Array(a.byteLength + b.byteLength);
|
|
37
|
-
result.set(a);
|
|
38
|
-
result.set(b, a.byteLength);
|
|
39
|
-
return result;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsU0FBZ0IsWUFBWSxDQUMxQixNQUFnQixFQUNoQixPQUFvQyxFQUNwQyxTQUFTLEdBQUcsT0FBTztJQUVuQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLElBQUksZUFBdUMsQ0FBQztRQUU1QyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMzQixNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDcEIsSUFBSSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUUsVUFBVSxFQUFFO2dCQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksU0FBUyxFQUFFO29CQUM5RCxPQUFPLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsU0FBUyxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzNGO2dCQUVELGVBQWUsR0FBRyxLQUFLLENBQUMsQ0FBQzthQUMxQjtZQUNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3BCLGVBQWUsR0FBRyxLQUFLLENBQUM7YUFDekI7aUJBQU07Z0JBQ0wsZUFBZSxHQUFHLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUM1RDtZQUVELElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztZQUNoQixPQUFPLGVBQWUsQ0FBQyxVQUFVLEdBQUcsT0FBTyxJQUFJLFNBQVMsRUFBRTtnQkFDeEQsT0FBTyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNoRSxPQUFPLElBQUksU0FBUyxDQUFDO2FBQ3RCO1lBQ0QsZUFBZSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFHSCxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBckNELG9DQXFDQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsQ0FBYSxFQUFFLENBQWE7SUFDcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNkLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhZGFibGUgfSBmcm9tIFwic3RyZWFtXCI7XG5leHBvcnQgZnVuY3Rpb24gc3RyZWFtUmVhZGVyKFxuICBzdHJlYW06IFJlYWRhYmxlLFxuICBvbkNodW5rOiAoY2h1bms6IFVpbnQ4QXJyYXkpID0+IHZvaWQsXG4gIGNodW5rU2l6ZSA9IDEwNDg1NzYgLy8gMSBNaUJcbik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGxldCB0ZW1wb3JhcnlCdWZmZXI6IFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQ7XG5cbiAgICBzdHJlYW0ub24oXCJlcnJvclwiLCByZWplY3QpO1xuICAgIHN0cmVhbS5vbihcImVuZFwiLCAoKSA9PiB7XG4gICAgICBpZiAodGVtcG9yYXJ5QnVmZmVyPy5ieXRlTGVuZ3RoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGVtcG9yYXJ5QnVmZmVyLmJ5dGVMZW5ndGg7IGkgKz0gY2h1bmtTaXplKSB7XG4gICAgICAgICAgb25DaHVuayh0ZW1wb3JhcnlCdWZmZXIuc3ViYXJyYXkoaSwgTWF0aC5taW4oaSArIGNodW5rU2l6ZSwgdGVtcG9yYXJ5QnVmZmVyLmJ5dGVMZW5ndGgpKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY2xlYXIgdGhlIHRlbXBvcmFyeUJ1ZmZlclxuICAgICAgICB0ZW1wb3JhcnlCdWZmZXIgPSB2b2lkIDA7XG4gICAgICB9XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSk7XG4gICAgc3RyZWFtLm9uKFwiZGF0YVwiLCAoY2h1bms6IEJ1ZmZlcikgPT4ge1xuICAgICAgaWYgKCF0ZW1wb3JhcnlCdWZmZXIpIHtcbiAgICAgICAgdGVtcG9yYXJ5QnVmZmVyID0gY2h1bms7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0ZW1wb3JhcnlCdWZmZXIgPSBtZXJnZVVpbnQ4QXJyYXlzKHRlbXBvcmFyeUJ1ZmZlciwgY2h1bmspO1xuICAgICAgfVxuXG4gICAgICBsZXQgcG9pbnRlciA9IDA7XG4gICAgICB3aGlsZSAodGVtcG9yYXJ5QnVmZmVyLmJ5dGVMZW5ndGggLSBwb2ludGVyID49IGNodW5rU2l6ZSkge1xuICAgICAgICBvbkNodW5rKHRlbXBvcmFyeUJ1ZmZlci5zdWJhcnJheShwb2ludGVyLCBwb2ludGVyICsgY2h1bmtTaXplKSk7XG4gICAgICAgIHBvaW50ZXIgKz0gY2h1bmtTaXplO1xuICAgICAgfVxuICAgICAgdGVtcG9yYXJ5QnVmZmVyID0gdGVtcG9yYXJ5QnVmZmVyLnN1YmFycmF5KHBvaW50ZXIpO1xuICAgIH0pO1xuXG4gICAgLy8gZW5zdXJlIHRoZSBzdHJlYW0gaXNuJ3QgcGF1c2VkXG4gICAgc3RyZWFtLnJlc3VtZSgpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbWVyZ2VVaW50OEFycmF5cyhhOiBVaW50OEFycmF5LCBiOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBVaW50OEFycmF5KGEuYnl0ZUxlbmd0aCArIGIuYnl0ZUxlbmd0aCk7XG4gIHJlc3VsdC5zZXQoYSk7XG4gIHJlc3VsdC5zZXQoYiwgYS5ieXRlTGVuZ3RoKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
|
package/dist/es/index.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
export function streamReader(stream, onChunk, chunkSize // 1 MiB
|
|
2
|
-
) {
|
|
3
|
-
if (chunkSize === void 0) { chunkSize = 1048576; }
|
|
4
|
-
return new Promise(function (resolve, reject) {
|
|
5
|
-
var temporaryBuffer;
|
|
6
|
-
stream.on("error", reject);
|
|
7
|
-
stream.on("end", function () {
|
|
8
|
-
if (temporaryBuffer === null || temporaryBuffer === void 0 ? void 0 : temporaryBuffer.byteLength) {
|
|
9
|
-
for (var i = 0; i < temporaryBuffer.byteLength; i += chunkSize) {
|
|
10
|
-
onChunk(temporaryBuffer.subarray(i, Math.min(i + chunkSize, temporaryBuffer.byteLength)));
|
|
11
|
-
}
|
|
12
|
-
// clear the temporaryBuffer
|
|
13
|
-
temporaryBuffer = void 0;
|
|
14
|
-
}
|
|
15
|
-
resolve();
|
|
16
|
-
});
|
|
17
|
-
stream.on("data", function (chunk) {
|
|
18
|
-
if (!temporaryBuffer) {
|
|
19
|
-
temporaryBuffer = chunk;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
temporaryBuffer = mergeUint8Arrays(temporaryBuffer, chunk);
|
|
23
|
-
}
|
|
24
|
-
var pointer = 0;
|
|
25
|
-
while (temporaryBuffer.byteLength - pointer >= chunkSize) {
|
|
26
|
-
onChunk(temporaryBuffer.subarray(pointer, pointer + chunkSize));
|
|
27
|
-
pointer += chunkSize;
|
|
28
|
-
}
|
|
29
|
-
temporaryBuffer = temporaryBuffer.subarray(pointer);
|
|
30
|
-
});
|
|
31
|
-
// ensure the stream isn't paused
|
|
32
|
-
stream.resume();
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
function mergeUint8Arrays(a, b) {
|
|
36
|
-
var result = new Uint8Array(a.byteLength + b.byteLength);
|
|
37
|
-
result.set(a);
|
|
38
|
-
result.set(b, a.byteLength);
|
|
39
|
-
return result;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxVQUFVLFlBQVksQ0FDMUIsTUFBZ0IsRUFDaEIsT0FBb0MsRUFDcEMsU0FBbUIsQ0FBQyxRQUFROztJQUE1QiwwQkFBQSxFQUFBLG1CQUFtQjtJQUVuQixPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07UUFDakMsSUFBSSxlQUF1QyxDQUFDO1FBRTVDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUUsVUFBVSxFQUFFO2dCQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksU0FBUyxFQUFFO29CQUM5RCxPQUFPLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsU0FBUyxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzNGO2dCQUNELDRCQUE0QjtnQkFDNUIsZUFBZSxHQUFHLEtBQUssQ0FBQyxDQUFDO2FBQzFCO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQUMsS0FBYTtZQUM5QixJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUNwQixlQUFlLEdBQUcsS0FBSyxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNMLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDNUQ7WUFFRCxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDaEIsT0FBTyxlQUFlLENBQUMsVUFBVSxHQUFHLE9BQU8sSUFBSSxTQUFTLEVBQUU7Z0JBQ3hELE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDaEUsT0FBTyxJQUFJLFNBQVMsQ0FBQzthQUN0QjtZQUNELGVBQWUsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO1FBRUgsaUNBQWlDO1FBQ2pDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLENBQWEsRUFBRSxDQUFhO0lBQ3BELElBQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDZCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWRhYmxlIH0gZnJvbSBcInN0cmVhbVwiO1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmVhbVJlYWRlcihcbiAgc3RyZWFtOiBSZWFkYWJsZSxcbiAgb25DaHVuazogKGNodW5rOiBVaW50OEFycmF5KSA9PiB2b2lkLFxuICBjaHVua1NpemUgPSAxMDQ4NTc2IC8vIDEgTWlCXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBsZXQgdGVtcG9yYXJ5QnVmZmVyOiBVaW50OEFycmF5IHwgdW5kZWZpbmVkO1xuXG4gICAgc3RyZWFtLm9uKFwiZXJyb3JcIiwgcmVqZWN0KTtcbiAgICBzdHJlYW0ub24oXCJlbmRcIiwgKCkgPT4ge1xuICAgICAgaWYgKHRlbXBvcmFyeUJ1ZmZlcj8uYnl0ZUxlbmd0aCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRlbXBvcmFyeUJ1ZmZlci5ieXRlTGVuZ3RoOyBpICs9IGNodW5rU2l6ZSkge1xuICAgICAgICAgIG9uQ2h1bmsodGVtcG9yYXJ5QnVmZmVyLnN1YmFycmF5KGksIE1hdGgubWluKGkgKyBjaHVua1NpemUsIHRlbXBvcmFyeUJ1ZmZlci5ieXRlTGVuZ3RoKSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNsZWFyIHRoZSB0ZW1wb3JhcnlCdWZmZXJcbiAgICAgICAgdGVtcG9yYXJ5QnVmZmVyID0gdm9pZCAwO1xuICAgICAgfVxuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0pO1xuICAgIHN0cmVhbS5vbihcImRhdGFcIiwgKGNodW5rOiBCdWZmZXIpID0+IHtcbiAgICAgIGlmICghdGVtcG9yYXJ5QnVmZmVyKSB7XG4gICAgICAgIHRlbXBvcmFyeUJ1ZmZlciA9IGNodW5rO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGVtcG9yYXJ5QnVmZmVyID0gbWVyZ2VVaW50OEFycmF5cyh0ZW1wb3JhcnlCdWZmZXIsIGNodW5rKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHBvaW50ZXIgPSAwO1xuICAgICAgd2hpbGUgKHRlbXBvcmFyeUJ1ZmZlci5ieXRlTGVuZ3RoIC0gcG9pbnRlciA+PSBjaHVua1NpemUpIHtcbiAgICAgICAgb25DaHVuayh0ZW1wb3JhcnlCdWZmZXIuc3ViYXJyYXkocG9pbnRlciwgcG9pbnRlciArIGNodW5rU2l6ZSkpO1xuICAgICAgICBwb2ludGVyICs9IGNodW5rU2l6ZTtcbiAgICAgIH1cbiAgICAgIHRlbXBvcmFyeUJ1ZmZlciA9IHRlbXBvcmFyeUJ1ZmZlci5zdWJhcnJheShwb2ludGVyKTtcbiAgICB9KTtcblxuICAgIC8vIGVuc3VyZSB0aGUgc3RyZWFtIGlzbid0IHBhdXNlZFxuICAgIHN0cmVhbS5yZXN1bWUoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1lcmdlVWludDhBcnJheXMoYTogVWludDhBcnJheSwgYjogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkge1xuICBjb25zdCByZXN1bHQgPSBuZXcgVWludDhBcnJheShhLmJ5dGVMZW5ndGggKyBiLmJ5dGVMZW5ndGgpO1xuICByZXN1bHQuc2V0KGEpO1xuICByZXN1bHQuc2V0KGIsIGEuYnl0ZUxlbmd0aCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
|
package/src/index.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Readable } from "stream";
|
|
2
|
-
export function streamReader(
|
|
3
|
-
stream: Readable,
|
|
4
|
-
onChunk: (chunk: Uint8Array) => void,
|
|
5
|
-
chunkSize = 1048576 // 1 MiB
|
|
6
|
-
): Promise<void> {
|
|
7
|
-
return new Promise((resolve, reject) => {
|
|
8
|
-
let temporaryBuffer: Uint8Array | undefined;
|
|
9
|
-
|
|
10
|
-
stream.on("error", reject);
|
|
11
|
-
stream.on("end", () => {
|
|
12
|
-
if (temporaryBuffer?.byteLength) {
|
|
13
|
-
for (let i = 0; i < temporaryBuffer.byteLength; i += chunkSize) {
|
|
14
|
-
onChunk(temporaryBuffer.subarray(i, Math.min(i + chunkSize, temporaryBuffer.byteLength)));
|
|
15
|
-
}
|
|
16
|
-
// clear the temporaryBuffer
|
|
17
|
-
temporaryBuffer = void 0;
|
|
18
|
-
}
|
|
19
|
-
resolve();
|
|
20
|
-
});
|
|
21
|
-
stream.on("data", (chunk: Buffer) => {
|
|
22
|
-
if (!temporaryBuffer) {
|
|
23
|
-
temporaryBuffer = chunk;
|
|
24
|
-
} else {
|
|
25
|
-
temporaryBuffer = mergeUint8Arrays(temporaryBuffer, chunk);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
let pointer = 0;
|
|
29
|
-
while (temporaryBuffer.byteLength - pointer >= chunkSize) {
|
|
30
|
-
onChunk(temporaryBuffer.subarray(pointer, pointer + chunkSize));
|
|
31
|
-
pointer += chunkSize;
|
|
32
|
-
}
|
|
33
|
-
temporaryBuffer = temporaryBuffer.subarray(pointer);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
// ensure the stream isn't paused
|
|
37
|
-
stream.resume();
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function mergeUint8Arrays(a: Uint8Array, b: Uint8Array): Uint8Array {
|
|
42
|
-
const result = new Uint8Array(a.byteLength + b.byteLength);
|
|
43
|
-
result.set(a);
|
|
44
|
-
result.set(b, a.byteLength);
|
|
45
|
-
return result;
|
|
46
|
-
}
|
package/src/readable.fixture.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Readable, ReadableOptions } from "stream";
|
|
2
|
-
|
|
3
|
-
export interface ReadFromBuffersOptions extends ReadableOptions {
|
|
4
|
-
buffers: Buffer[];
|
|
5
|
-
errorAfter?: number;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export class ReadFromBuffers extends Readable {
|
|
9
|
-
private buffersToRead: Buffer[];
|
|
10
|
-
private numBuffersRead = 0;
|
|
11
|
-
|
|
12
|
-
private errorAfter: number;
|
|
13
|
-
constructor(options: ReadFromBuffersOptions) {
|
|
14
|
-
super(options);
|
|
15
|
-
this.buffersToRead = options.buffers;
|
|
16
|
-
this.errorAfter = typeof options.errorAfter === "number" ? options.errorAfter : -1;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
_read() {
|
|
20
|
-
if (this.errorAfter !== -1 && this.errorAfter === this.numBuffersRead) {
|
|
21
|
-
this.emit("error", new Error("Mock Error"));
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
if (this.numBuffersRead >= this.buffersToRead.length) {
|
|
25
|
-
return this.push(null);
|
|
26
|
-
}
|
|
27
|
-
return this.push(this.buffersToRead[this.numBuffersRead++]);
|
|
28
|
-
}
|
|
29
|
-
}
|
package/tsconfig.cjs.json
DELETED
package/tsconfig.es.json
DELETED