@trayio/commons 4.62.0 → 4.63.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.
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { Readable } from 'stream';
|
|
3
3
|
import * as TE from 'fp-ts/TaskEither';
|
|
4
4
|
export interface BufferExtensionsInterface {
|
|
5
|
-
readableToArrayBuffer: (stream: Readable) => TE.TaskEither<Error, ArrayBuffer>;
|
|
5
|
+
readableToArrayBuffer: (stream: Readable, size?: number) => TE.TaskEither<Error, ArrayBuffer>;
|
|
6
6
|
arrayBufferToReadable: (arrayBuffer: ArrayBuffer) => Readable;
|
|
7
7
|
}
|
|
8
8
|
export declare const BufferExtensions: BufferExtensionsInterface;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BufferExtensions.d.ts","sourceRoot":"","sources":["../../src/buffer/BufferExtensions.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,WAAW,yBAAyB;IACzC,qBAAqB,EAAE,CACtB,MAAM,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"BufferExtensions.d.ts","sourceRoot":"","sources":["../../src/buffer/BufferExtensions.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,WAAW,yBAAyB;IACzC,qBAAqB,EAAE,CACtB,MAAM,EAAE,QAAQ,EAChB,IAAI,CAAC,EAAE,MAAM,KACT,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvC,qBAAqB,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,QAAQ,CAAC;CAC9D;AAED,eAAO,MAAM,gBAAgB,EAAE,yBAsB9B,CAAC"}
|
|
@@ -27,12 +27,17 @@ exports.BufferExtensions = void 0;
|
|
|
27
27
|
const stream_1 = require("stream");
|
|
28
28
|
const TE = __importStar(require("fp-ts/TaskEither"));
|
|
29
29
|
exports.BufferExtensions = {
|
|
30
|
-
readableToArrayBuffer: (stream) => TE.tryCatch(async () => {
|
|
30
|
+
readableToArrayBuffer: (stream, size) => TE.tryCatch(async () => {
|
|
31
31
|
const chunks = [];
|
|
32
32
|
for await (const chunk of stream) {
|
|
33
33
|
chunks.push(chunk);
|
|
34
|
+
if (size && chunks.length > size)
|
|
35
|
+
break;
|
|
34
36
|
}
|
|
35
37
|
const buffer = Buffer.concat(chunks);
|
|
38
|
+
if (size) {
|
|
39
|
+
return Uint8Array.from(buffer).buffer.slice(0, size);
|
|
40
|
+
}
|
|
36
41
|
return Uint8Array.from(buffer).buffer;
|
|
37
42
|
}, (error) => error),
|
|
38
43
|
arrayBufferToReadable: (arrayBuffer) => stream_1.Readable.from(Buffer.from(arrayBuffer)),
|
|
@@ -35,4 +35,28 @@ describe('Buffer Tests', () => {
|
|
|
35
35
|
})(bufferResult);
|
|
36
36
|
expect(buffer).toEqual(new util_1.TextEncoder().encode('test').buffer);
|
|
37
37
|
});
|
|
38
|
+
it('should collect the initial bytes of the stream if size is passed', async () => {
|
|
39
|
+
const readableStream = BufferExtensions_1.BufferExtensions.arrayBufferToReadable(new util_1.TextEncoder().encode('test').buffer);
|
|
40
|
+
const bufferResult = await BufferExtensions_1.BufferExtensions.readableToArrayBuffer(readableStream, 2)();
|
|
41
|
+
const buffer = E.getOrElse((error) => {
|
|
42
|
+
throw new Error(error.message);
|
|
43
|
+
})(bufferResult);
|
|
44
|
+
expect(buffer).toEqual(new util_1.TextEncoder().encode('te').buffer);
|
|
45
|
+
});
|
|
46
|
+
it('should collect the entire bytes of the stream if size is smaller than buffer', async () => {
|
|
47
|
+
const readableStream = BufferExtensions_1.BufferExtensions.arrayBufferToReadable(new util_1.TextEncoder().encode('test').buffer);
|
|
48
|
+
const bufferResult = await BufferExtensions_1.BufferExtensions.readableToArrayBuffer(readableStream, 100000)();
|
|
49
|
+
const buffer = E.getOrElse((error) => {
|
|
50
|
+
throw new Error(error.message);
|
|
51
|
+
})(bufferResult);
|
|
52
|
+
expect(buffer).toEqual(new util_1.TextEncoder().encode('test').buffer);
|
|
53
|
+
});
|
|
54
|
+
it('should return 0 bytes of the stream if size is 0', async () => {
|
|
55
|
+
const readableStream = BufferExtensions_1.BufferExtensions.arrayBufferToReadable(new util_1.TextEncoder().encode('test').buffer);
|
|
56
|
+
const bufferResult = await BufferExtensions_1.BufferExtensions.readableToArrayBuffer(readableStream, 0)();
|
|
57
|
+
const buffer = E.getOrElse((error) => {
|
|
58
|
+
throw new Error(error.message);
|
|
59
|
+
})(bufferResult);
|
|
60
|
+
expect(buffer).toEqual(new util_1.TextEncoder().encode('').buffer);
|
|
61
|
+
});
|
|
38
62
|
});
|