@trayio/commons 4.62.0 → 4.64.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,KACZ,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,yBAiB9B,CAAC"}
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
  });
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClient.abstract.test.d.ts","sourceRoot":"","sources":["../../src/http/HttpClient.abstract.test.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO1C,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,QA2sBpD"}
1
+ {"version":3,"file":"HttpClient.abstract.test.d.ts","sourceRoot":"","sources":["../../src/http/HttpClient.abstract.test.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO1C,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,QA8tBpD"}
@@ -265,6 +265,18 @@ function httpClientTest(httpClient) {
265
265
  const resultE = await result();
266
266
  expect(resultE).toStrictEqual(E.right(testValue));
267
267
  });
268
+ test('should send a GET request with an empty header', async () => {
269
+ const response = await httpClient.execute(Http_1.HttpMethod.Get, baseUrl, Http_1.HttpRequest.create({
270
+ headers: { '': '' },
271
+ pathParams: {},
272
+ queryString: {},
273
+ body: BufferExtensions_1.BufferExtensions.arrayBufferToReadable(new ArrayBuffer(0)),
274
+ }))();
275
+ if (E.isLeft(response)) {
276
+ throw new Error('Got left expected right');
277
+ }
278
+ expect(response.right.statusCode).toEqual(200);
279
+ });
268
280
  test('should send a GET request with a certificate', async () => {
269
281
  const response = await httpClient.execute(Http_1.HttpMethod.Get, httpsServerUrl, Http_1.HttpRequest.create({
270
282
  headers: { 'x-custom-header': 'customVal' },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trayio/commons",
3
- "version": "4.62.0",
3
+ "version": "4.64.0",
4
4
  "description": "Extensions to the standard/core libraries and basic features",
5
5
  "exports": {
6
6
  "./*": "./dist/*.js"