@trayio/commons 4.65.0 → 4.66.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/dist/http/Http.d.ts
CHANGED
|
@@ -10,18 +10,19 @@ export type HttpHeaders = Record<string, HttpHeaderValue | HttpContentType>;
|
|
|
10
10
|
export type HttpQueryStringSingleValue = number | string | boolean;
|
|
11
11
|
export type HttpQueryStringValue = HttpQueryStringSingleValue | HttpQueryStringSingleValue[];
|
|
12
12
|
export type HttpQueryString = Record<string, HttpQueryStringValue>;
|
|
13
|
-
export type RegularHttpRequestBody =
|
|
13
|
+
export type RegularHttpRequestBody = ArrayBuffer;
|
|
14
14
|
export type MultipartHttpRequestBody = {
|
|
15
15
|
fields: Record<string, string>;
|
|
16
16
|
files: Record<string, File>;
|
|
17
17
|
};
|
|
18
|
+
export type StreamHttpRequestBody = Readable;
|
|
18
19
|
export interface MultipartHttpRequestBodyInterface {
|
|
19
20
|
create: (value: unknown, fileStorage: FileStorage) => TE.TaskEither<Error, MultipartHttpRequestBody>;
|
|
20
21
|
}
|
|
21
22
|
export declare const MultipartHttpRequestBody: {
|
|
22
23
|
create: (value: unknown, fileStorage: FileStorage) => TE.TaskEither<Error, MultipartHttpRequestBody>;
|
|
23
24
|
};
|
|
24
|
-
export type HttpRequestBody = RegularHttpRequestBody | MultipartHttpRequestBody;
|
|
25
|
+
export type HttpRequestBody = RegularHttpRequestBody | MultipartHttpRequestBody | StreamHttpRequestBody;
|
|
25
26
|
export type HttpCertificate = {
|
|
26
27
|
cert: string;
|
|
27
28
|
key: string;
|
|
@@ -29,8 +30,12 @@ export type HttpCertificate = {
|
|
|
29
30
|
export type HttpAgent = {
|
|
30
31
|
certificate: O.Option<HttpCertificate>;
|
|
31
32
|
};
|
|
33
|
+
export type HeaderOptions = {
|
|
34
|
+
preserveHeaderCasing: O.Option<boolean>;
|
|
35
|
+
};
|
|
32
36
|
export type HttpRequest = {
|
|
33
37
|
headers: HttpHeaders;
|
|
38
|
+
headerOptions: O.Option<HeaderOptions>;
|
|
34
39
|
pathParams: Record<string, string>;
|
|
35
40
|
queryString: HttpQueryString;
|
|
36
41
|
body: HttpRequestBody;
|
package/dist/http/Http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Http.d.ts","sourceRoot":"","sources":["../../src/http/Http.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,IAAI,EAAkB,WAAW,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAgB3D,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAAC,CAAC;AAE5E,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAC7B,0BAA0B,GAC1B,0BAA0B,EAAE,CAAC;AAEhC,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG,
|
|
1
|
+
{"version":3,"file":"Http.d.ts","sourceRoot":"","sources":["../../src/http/Http.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,IAAI,EAAkB,WAAW,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAgB3D,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAAC,CAAC;AAE5E,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAC7B,0BAA0B,GAC1B,0BAA0B,EAAE,CAAC;AAEhC,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAEjD,MAAM,MAAM,wBAAwB,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAE7C,MAAM,WAAW,iCAAiC;IACjD,MAAM,EAAE,CACP,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,WAAW,KACpB,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;CACpD;AAED,eAAO,MAAM,wBAAwB;oBAE5B,OAAO,eACD,WAAW,KACtB,GAAG,UAAU,CAAC,KAAK,EAAE,wBAAwB,CAAC;CAwCjD,CAAC;AAEF,MAAM,MAAM,eAAe,GACxB,sBAAsB,GACtB,wBAAwB,GACxB,qBAAqB,CAAC;AAEzB,MAAM,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,EAAE,eAAe,CAAC;IAC7B,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;CACf,CAAC;AAEF,oBAAY,UAAU;IACrB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,GAAG,QAAQ;CACX;AAED,oBAAY,eAAe;IAC1B,IAAI,qBAAqB;IACzB,WAAW,6BAA6B;IACxC,cAAc,sCAAsC;IACpD,oBAAoB,wBAAwB;IAC5C,IAAI,eAAe;CACnB;AAED,oBAAY,UAAU;IACrB,aAAa,kBAAkB;IAC/B,WAAW,iBAAiB;IAC5B,aAAa,6BAA6B;IAC1C,SAAS,eAAe;IACxB,aAAa,mBAAmB;IAChC,kBAAkB,wBAAwB;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,WAAW,CAAC;CAC3D;AAED,eAAO,MAAM,WAAW,EAAE,oBAUzB,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACpC,GAAG,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/D,iBAAiB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,WAAW,CAAC;IAC3D,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,aAAa,CAAC;CACzD;AAED,eAAO,MAAM,WAAW,EAAE,oBAyIzB,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,MAAM,CACxD,mBAAmB,EACnB,eAAe,CAIf,CAAC;AAEF,eAAO,MAAM,eAAe,SACrB,eAAe,qCAEkC,CAAC"}
|
package/dist/http/Http.js
CHANGED
|
@@ -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,
|
|
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,QAwwBpD"}
|
|
@@ -72,7 +72,6 @@ function httpClientTest(httpClient) {
|
|
|
72
72
|
username: t.string,
|
|
73
73
|
})),
|
|
74
74
|
}));
|
|
75
|
-
const ReadableCodec = new t.Type('Readable', (input) => input instanceof stream_1.Readable, (input, ctx) => input instanceof stream_1.Readable ? t.success(input) : t.failure(input, ctx), (input) => input);
|
|
76
75
|
const testMultiPartBodyTypeCodec = TypeCodec_1.TypeCodec.fromDescriptor(t.type({
|
|
77
76
|
fields: t.record(t.string, t.string),
|
|
78
77
|
files: t.record(t.string, t.type({
|
|
@@ -171,6 +170,16 @@ function httpClientTest(httpClient) {
|
|
|
171
170
|
};
|
|
172
171
|
sendHttpResponse(res, errorResponse, testErrorResponseCodec);
|
|
173
172
|
}
|
|
173
|
+
else if (req.method === 'GET' &&
|
|
174
|
+
req.rawHeaders[0] === 'Upper-Cased-Header') {
|
|
175
|
+
const customHeader = req.rawHeaders[1];
|
|
176
|
+
res.writeHead(200, { [Http_1.HttpHeader.ContentType]: Http_1.HttpContentType.Json });
|
|
177
|
+
const response = {
|
|
178
|
+
strField: customHeader,
|
|
179
|
+
intField: 123,
|
|
180
|
+
};
|
|
181
|
+
sendHttpResponse(res, response, testResponseCodec);
|
|
182
|
+
}
|
|
174
183
|
else if (req.method === 'GET') {
|
|
175
184
|
const customHeader = req.headers['x-custom-header'];
|
|
176
185
|
res.writeHead(200, { [Http_1.HttpHeader.ContentType]: Http_1.HttpContentType.Json });
|
|
@@ -265,6 +274,22 @@ function httpClientTest(httpClient) {
|
|
|
265
274
|
const resultE = await result();
|
|
266
275
|
expect(resultE).toStrictEqual(E.right(testValue));
|
|
267
276
|
});
|
|
277
|
+
test('should preserve header casing when headerOption preserveCasing is true', async () => {
|
|
278
|
+
const response = await httpClient.execute(Http_1.HttpMethod.Get, baseUrl, Http_1.HttpRequest.create({
|
|
279
|
+
headers: { 'Upper-Cased-Header': 'CasedValue' },
|
|
280
|
+
pathParams: {},
|
|
281
|
+
queryString: {},
|
|
282
|
+
body: BufferExtensions_1.BufferExtensions.arrayBufferToReadable(new ArrayBuffer(0)),
|
|
283
|
+
headerOptions: O.some({ preserveHeaderCasing: O.some(true) }),
|
|
284
|
+
}))();
|
|
285
|
+
const testValue = {
|
|
286
|
+
strField: 'CasedValue',
|
|
287
|
+
intField: 123,
|
|
288
|
+
};
|
|
289
|
+
const result = (0, function_1.pipe)(response, TE.fromEither, TE.chain((httpResponse) => BufferExtensions_1.BufferExtensions.readableToArrayBuffer(httpResponse.body)), TE.match((error) => E.left(error), (buffer) => (0, function_1.pipe)(serialization.deserialize(buffer), E.chain((encoded) => testResponseCodec.decode(encoded)))));
|
|
290
|
+
const resultE = await result();
|
|
291
|
+
expect(resultE).toStrictEqual(E.right(testValue));
|
|
292
|
+
});
|
|
268
293
|
test('should send a GET request with an empty header', async () => {
|
|
269
294
|
const response = await httpClient.execute(Http_1.HttpMethod.Get, baseUrl, Http_1.HttpRequest.create({
|
|
270
295
|
headers: { '': '' },
|