@trayio/cdk-runtime 2.5.0 → 2.7.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/connector/operation/HttpOperationExecution.d.ts +3 -1
- package/dist/connector/operation/HttpOperationExecution.d.ts.map +1 -1
- package/dist/connector/operation/HttpOperationExecution.js +24 -2
- package/dist/connector/operation/HttpOperationExecutionFactory.d.ts +3 -1
- package/dist/connector/operation/HttpOperationExecutionFactory.d.ts.map +1 -1
- package/dist/connector/operation/HttpOperationExecutionFactory.js +3 -2
- package/dist/connector/operation/OperationExecutionFactory.d.ts +2 -1
- package/dist/connector/operation/OperationExecutionFactory.d.ts.map +1 -1
- package/dist/connector/operation/OperationExecutionFactory.js +2 -2
- package/dist/connector/operation/OperationExecutionGateway.d.ts +3 -2
- package/dist/connector/operation/OperationExecutionGateway.d.ts.map +1 -1
- package/dist/connector/operation/OperationExecutionGateway.js +4 -4
- package/dist/connector/operation/OperationExecutionGateway.unit.test.d.ts.map +1 -1
- package/dist/connector/operation/OperationExecutionGateway.unit.test.js +24 -1
- package/dist/connector/operation/OperationHandlerTestRunner.js +2 -1
- package/package.json +7 -5
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { OperationHandlerAuth, OperationHandlerContext, OperationHandlerResult } from '@trayio/cdk-dsl/connector/operation/OperationHandler';
|
|
2
2
|
import { HttpOperationHandler } from '@trayio/cdk-dsl/connector/operation/HttpOperationHandler';
|
|
3
3
|
import { HttpClient } from '@trayio/commons/http/HttpClient';
|
|
4
|
+
import { FileStorage } from '@trayio/commons/file/File';
|
|
4
5
|
import { OperationExecution } from './OperationExecution';
|
|
5
6
|
export declare class HttpOperationExecution<AUTH extends OperationHandlerAuth<unknown, unknown>, IN, OUT> implements OperationExecution<AUTH, IN, OUT> {
|
|
6
7
|
private jsonSerialization;
|
|
7
8
|
private httpClient;
|
|
8
9
|
private handler;
|
|
9
|
-
|
|
10
|
+
private fileStorage;
|
|
11
|
+
constructor(httpClient: HttpClient, fileStorage: FileStorage, handler: HttpOperationHandler<AUTH, IN, OUT>);
|
|
10
12
|
execute(ctx: OperationHandlerContext<AUTH>, input: IN): Promise<OperationHandlerResult<OUT>>;
|
|
11
13
|
private operationRequestToHttpRequest;
|
|
12
14
|
private serializeAsJson;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpOperationExecution.d.ts","sourceRoot":"","sources":["../../../src/connector/operation/HttpOperationExecution.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EAGtB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAEN,oBAAoB,EAKpB,MAAM,0DAA0D,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"HttpOperationExecution.d.ts","sourceRoot":"","sources":["../../../src/connector/operation/HttpOperationExecution.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EAGtB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAEN,oBAAoB,EAKpB,MAAM,0DAA0D,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAe7D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,qBAAa,sBAAsB,CAClC,IAAI,SAAS,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,EACnD,EAAE,EACF,GAAG,CACF,YAAW,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC;IAE7C,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,WAAW,CAAc;gBAGhC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC;IAQvC,OAAO,CACZ,GAAG,EAAE,uBAAuB,CAAC,IAAI,CAAC,EAClC,KAAK,EAAE,EAAE,GACP,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAiDvC,OAAO,CAAC,6BAA6B;IA2BrC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,aAAa;IAiCrB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,gBAAgB;CAexB"}
|
|
@@ -36,16 +36,19 @@ exports.HttpOperationExecution = void 0;
|
|
|
36
36
|
const OperationHandler_1 = require("@trayio/cdk-dsl/connector/operation/OperationHandler");
|
|
37
37
|
const HttpOperationHandler_1 = require("@trayio/cdk-dsl/connector/operation/HttpOperationHandler");
|
|
38
38
|
const Http_1 = require("@trayio/commons/http/Http");
|
|
39
|
+
const uuid_1 = require("uuid");
|
|
39
40
|
const JsonSerialization_1 = require("@trayio/commons/serialization/JsonSerialization");
|
|
40
41
|
const TE = __importStar(require("fp-ts/TaskEither"));
|
|
41
42
|
const E = __importStar(require("fp-ts/Either"));
|
|
42
43
|
const O = __importStar(require("fp-ts/Option"));
|
|
43
44
|
const function_1 = require("fp-ts/function");
|
|
44
45
|
const BufferExtensions_1 = require("@trayio/commons/buffer/BufferExtensions");
|
|
46
|
+
const mime = require('mime');
|
|
45
47
|
class HttpOperationExecution {
|
|
46
|
-
constructor(httpClient, handler) {
|
|
48
|
+
constructor(httpClient, fileStorage, handler) {
|
|
47
49
|
this.jsonSerialization = new JsonSerialization_1.JsonSerialization();
|
|
48
50
|
this.httpClient = httpClient;
|
|
51
|
+
this.fileStorage = fileStorage;
|
|
49
52
|
this.handler = handler;
|
|
50
53
|
}
|
|
51
54
|
execute(ctx, input) {
|
|
@@ -145,7 +148,26 @@ class HttpOperationExecution {
|
|
|
145
148
|
return TE.right(operationResponse.responseParser(undefined));
|
|
146
149
|
}
|
|
147
150
|
parseBodyAsFile(operationResponse) {
|
|
148
|
-
|
|
151
|
+
var _a;
|
|
152
|
+
const contentType = (operationResponse.response.headers[Http_1.HttpHeader.ContentType.toLowerCase()]);
|
|
153
|
+
const fileExtension = mime.getExtension(contentType);
|
|
154
|
+
return (0, function_1.pipe)(this.fileStorage.write({
|
|
155
|
+
content: operationResponse.response.body,
|
|
156
|
+
key: fileExtension ? `${(0, uuid_1.v4)()}.${fileExtension}` : (0, uuid_1.v4)(),
|
|
157
|
+
metadata: {
|
|
158
|
+
name: (0, uuid_1.v4)(),
|
|
159
|
+
size: parseFloat((_a = (operationResponse.response.headers[Http_1.HttpHeader.ContentLength.toLowerCase()])) !== null && _a !== void 0 ? _a : undefined),
|
|
160
|
+
contentType,
|
|
161
|
+
},
|
|
162
|
+
}), TE.chain((file) => (0, function_1.pipe)(this.fileStorage.getSharedUrl(file.key), TE.map((sharedUrl) => {
|
|
163
|
+
var _a, _b;
|
|
164
|
+
return operationResponse.responseParser({
|
|
165
|
+
name: file.metadata.name,
|
|
166
|
+
url: sharedUrl.url,
|
|
167
|
+
mime_type: (_a = file.metadata.contentType) !== null && _a !== void 0 ? _a : '',
|
|
168
|
+
expires: (_b = sharedUrl.expires) !== null && _b !== void 0 ? _b : 0,
|
|
169
|
+
});
|
|
170
|
+
}))));
|
|
149
171
|
}
|
|
150
172
|
parseeBodyAsText(operationResponse) {
|
|
151
173
|
const arrayBufferTE = BufferExtensions_1.BufferExtensions.readableToArrayBuffer(operationResponse.response.body);
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { OperationHandlerAuth } from '@trayio/cdk-dsl/connector/operation/OperationHandler';
|
|
2
2
|
import { HttpOperationHandler } from '@trayio/cdk-dsl/connector/operation/HttpOperationHandler';
|
|
3
3
|
import { HttpClient } from '@trayio/commons/http/HttpClient';
|
|
4
|
+
import { FileStorage } from '@trayio/commons/dist/file/File';
|
|
4
5
|
import { OperationExecution } from './OperationExecution';
|
|
5
6
|
export declare class HttpOperationExecutionFactory {
|
|
6
7
|
private httpClient;
|
|
7
|
-
|
|
8
|
+
private fileStorage;
|
|
9
|
+
constructor(httpClient: HttpClient, fileStorage: FileStorage);
|
|
8
10
|
executionFrom<AUTH extends OperationHandlerAuth<unknown, unknown>, IN, OUT>(handler: HttpOperationHandler<AUTH, IN, OUT>): OperationExecution<AUTH, IN, OUT>;
|
|
9
11
|
}
|
|
10
12
|
//# sourceMappingURL=HttpOperationExecutionFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpOperationExecutionFactory.d.ts","sourceRoot":"","sources":["../../../src/connector/operation/HttpOperationExecutionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,6BAA6B;
|
|
1
|
+
{"version":3,"file":"HttpOperationExecutionFactory.d.ts","sourceRoot":"","sources":["../../../src/connector/operation/HttpOperationExecutionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,6BAA6B;IAExC,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;gBADX,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW;IAGjC,aAAa,CAAC,IAAI,SAAS,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,EACzE,OAAO,EAAE,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAC1C,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC;CAOpC"}
|
|
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.HttpOperationExecutionFactory = void 0;
|
|
4
4
|
const HttpOperationExecution_1 = require("./HttpOperationExecution");
|
|
5
5
|
class HttpOperationExecutionFactory {
|
|
6
|
-
constructor(httpClient) {
|
|
6
|
+
constructor(httpClient, fileStorage) {
|
|
7
7
|
this.httpClient = httpClient;
|
|
8
|
+
this.fileStorage = fileStorage;
|
|
8
9
|
}
|
|
9
10
|
executionFrom(handler) {
|
|
10
|
-
return new HttpOperationExecution_1.HttpOperationExecution(this.httpClient, handler);
|
|
11
|
+
return new HttpOperationExecution_1.HttpOperationExecution(this.httpClient, this.fileStorage, handler);
|
|
11
12
|
}
|
|
12
13
|
}
|
|
13
14
|
exports.HttpOperationExecutionFactory = HttpOperationExecutionFactory;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { OperationHandler } from '@trayio/cdk-dsl/connector/operation/OperationHandlerSetup';
|
|
2
2
|
import { OperationHandlerAuth } from '@trayio/cdk-dsl/connector/operation/OperationHandler';
|
|
3
3
|
import { HttpClient } from '@trayio/commons/http/HttpClient';
|
|
4
|
+
import { FileStorage } from '@trayio/commons/file/File';
|
|
4
5
|
import { OperationExecution } from './OperationExecution';
|
|
5
6
|
import { OperationHandlerInvocationFactory } from './OperationHandlerInvocationFactory';
|
|
6
7
|
export declare class OperationExecutionFactory {
|
|
7
8
|
private operationExecutionValidationFactory;
|
|
8
9
|
private httpOperationExecutionFactory;
|
|
9
10
|
private compositeOperationExecutionFactory;
|
|
10
|
-
constructor(httpClient: HttpClient, operationHandlerInvocationFactory: OperationHandlerInvocationFactory);
|
|
11
|
+
constructor(httpClient: HttpClient, fileStorage: FileStorage, operationHandlerInvocationFactory: OperationHandlerInvocationFactory);
|
|
11
12
|
executionFrom<AUTH extends OperationHandlerAuth<unknown, unknown>, IN, OUT>(handler: OperationHandler<AUTH, IN, OUT>): OperationExecution<AUTH, IN, OUT>;
|
|
12
13
|
private executionFromImplementation;
|
|
13
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperationExecutionFactory.d.ts","sourceRoot":"","sources":["../../../src/connector/operation/OperationExecutionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAEhB,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AAGxF,qBAAa,yBAAyB;IACrC,OAAO,CAAC,mCAAmC,CAAsC;IACjF,OAAO,CAAC,6BAA6B,CAAgC;IACrE,OAAO,CAAC,kCAAkC,CAAqC;gBAG9E,UAAU,EAAE,UAAU,EACtB,iCAAiC,EAAE,iCAAiC;
|
|
1
|
+
{"version":3,"file":"OperationExecutionFactory.d.ts","sourceRoot":"","sources":["../../../src/connector/operation/OperationExecutionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAEhB,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AAGxF,qBAAa,yBAAyB;IACrC,OAAO,CAAC,mCAAmC,CAAsC;IACjF,OAAO,CAAC,6BAA6B,CAAgC;IACrE,OAAO,CAAC,kCAAkC,CAAqC;gBAG9E,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,iCAAiC,EAAE,iCAAiC;IAYrE,aAAa,CAAC,IAAI,SAAS,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,EACzE,OAAO,EAAE,gBAAgB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GACtC,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC;IAYpC,OAAO,CAAC,2BAA2B;CAoBnC"}
|
|
@@ -5,10 +5,10 @@ const HttpOperationExecutionFactory_1 = require("./HttpOperationExecutionFactory
|
|
|
5
5
|
const CompositeOperationExecutionFactory_1 = require("./CompositeOperationExecutionFactory");
|
|
6
6
|
const OperationExecutionValidationFactory_1 = require("./OperationExecutionValidationFactory");
|
|
7
7
|
class OperationExecutionFactory {
|
|
8
|
-
constructor(httpClient, operationHandlerInvocationFactory) {
|
|
8
|
+
constructor(httpClient, fileStorage, operationHandlerInvocationFactory) {
|
|
9
9
|
this.operationExecutionValidationFactory =
|
|
10
10
|
new OperationExecutionValidationFactory_1.OperationExecutionValidationFactory();
|
|
11
|
-
this.httpOperationExecutionFactory = new HttpOperationExecutionFactory_1.HttpOperationExecutionFactory(httpClient);
|
|
11
|
+
this.httpOperationExecutionFactory = new HttpOperationExecutionFactory_1.HttpOperationExecutionFactory(httpClient, fileStorage);
|
|
12
12
|
this.compositeOperationExecutionFactory =
|
|
13
13
|
new CompositeOperationExecutionFactory_1.CompositeOperationExecutionFactory(operationHandlerInvocationFactory);
|
|
14
14
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import * as O from 'fp-ts/Option';
|
|
1
2
|
import { OperationHandlerAuth, OperationHandlerReference } from '@trayio/cdk-dsl/connector/operation/OperationHandler';
|
|
2
3
|
import { HttpClient } from '@trayio/commons/http/HttpClient';
|
|
3
|
-
import
|
|
4
|
+
import { FileStorage } from '@trayio/commons/file/File';
|
|
4
5
|
import { OperationHandlerInvocationFactory } from './OperationHandlerInvocationFactory';
|
|
5
6
|
import { OperationExecution } from './OperationExecution';
|
|
6
7
|
export declare class OperationExecutionGateway {
|
|
7
8
|
private executionFactory;
|
|
8
9
|
operationHandlerInvocationFactory: OperationHandlerInvocationFactory;
|
|
9
|
-
constructor(httpClient: HttpClient);
|
|
10
|
+
constructor(httpClient: HttpClient, fileStorage: FileStorage);
|
|
10
11
|
lookup<AUTH extends OperationHandlerAuth<unknown, unknown>, IN, OUT>(handlerReference: OperationHandlerReference<AUTH, IN, OUT>, includePrivate: boolean): O.Option<OperationExecution<AUTH, IN, OUT>>;
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=OperationExecutionGateway.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperationExecutionGateway.d.ts","sourceRoot":"","sources":["../../../src/connector/operation/OperationExecutionGateway.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,oBAAoB,EAEpB,yBAAyB,EAGzB,MAAM,sDAAsD,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"OperationExecutionGateway.d.ts","sourceRoot":"","sources":["../../../src/connector/operation/OperationExecutionGateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,OAAO,EACN,oBAAoB,EAEpB,yBAAyB,EAGzB,MAAM,sDAAsD,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,yBAAyB;IACrC,OAAO,CAAC,gBAAgB,CAA4B;IACpD,iCAAiC,EAAE,iCAAiC,CAAC;gBAEzD,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW;IA8B5D,MAAM,CAAC,IAAI,SAAS,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,EAClE,gBAAgB,EAAE,yBAAyB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAC1D,cAAc,EAAE,OAAO,GACrB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;CAO9C"}
|
|
@@ -24,19 +24,19 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.OperationExecutionGateway = void 0;
|
|
27
|
-
const OperationHandler_1 = require("@trayio/cdk-dsl/connector/operation/OperationHandler");
|
|
28
|
-
const OperationHandlerSetup_1 = require("@trayio/cdk-dsl/connector/operation/OperationHandlerSetup");
|
|
29
27
|
const O = __importStar(require("fp-ts/Option"));
|
|
30
28
|
const function_1 = require("fp-ts/function");
|
|
29
|
+
const OperationHandler_1 = require("@trayio/cdk-dsl/connector/operation/OperationHandler");
|
|
30
|
+
const OperationHandlerSetup_1 = require("@trayio/cdk-dsl/connector/operation/OperationHandlerSetup");
|
|
31
31
|
const OperationExecutionFactory_1 = require("./OperationExecutionFactory");
|
|
32
32
|
class OperationExecutionGateway {
|
|
33
|
-
constructor(httpClient) {
|
|
33
|
+
constructor(httpClient, fileStorage) {
|
|
34
34
|
const operationHandlerInvocationFactory = (ctx) => (handlerReference) => (input) => {
|
|
35
35
|
const result = (0, function_1.pipe)(this.lookup(handlerReference, true), O.map((handlerExecution) => handlerExecution.execute(ctx, input)));
|
|
36
36
|
return O.getOrElse(() => Promise.resolve(OperationHandler_1.OperationHandlerResult.failure(OperationHandler_1.OperationHandlerError.connectorError(`Handler for reference ${handlerReference.name} not found`))))(result);
|
|
37
37
|
};
|
|
38
38
|
this.operationHandlerInvocationFactory = operationHandlerInvocationFactory;
|
|
39
|
-
this.executionFactory = new OperationExecutionFactory_1.OperationExecutionFactory(httpClient, operationHandlerInvocationFactory);
|
|
39
|
+
this.executionFactory = new OperationExecutionFactory_1.OperationExecutionFactory(httpClient, fileStorage, operationHandlerInvocationFactory);
|
|
40
40
|
}
|
|
41
41
|
lookup(handlerReference, includePrivate) {
|
|
42
42
|
return (0, function_1.pipe)(OperationHandlerSetup_1.OperationHandlerRegistry.resolve(handlerReference), O.filter((handler) => includePrivate || !handler.isPrivate), O.map((handler) => this.executionFactory.executionFrom(handler)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperationExecutionGateway.unit.test.d.ts","sourceRoot":"","sources":["../../../src/connector/operation/OperationExecutionGateway.unit.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OperationExecutionGateway.unit.test.d.ts","sourceRoot":"","sources":["../../../src/connector/operation/OperationExecutionGateway.unit.test.ts"],"names":[],"mappings":"AAOA,OAAO,8BAA8B,CAAC"}
|
|
@@ -61,8 +61,9 @@ class TestControllerHttp {
|
|
|
61
61
|
const { body } = request;
|
|
62
62
|
return (0, function_1.pipe)(fileStorage.write({
|
|
63
63
|
content: body,
|
|
64
|
+
key: 'test.ico',
|
|
64
65
|
metadata: {
|
|
65
|
-
|
|
66
|
+
name: 'test.ico',
|
|
66
67
|
},
|
|
67
68
|
}), TE.fold(() => T.of({
|
|
68
69
|
body: stream_1.Readable.from(JSON.stringify({
|
|
@@ -175,4 +176,26 @@ describe('OperationExecutionGateway', () => {
|
|
|
175
176
|
.finallyDoNothing())
|
|
176
177
|
.nothingAfterAll());
|
|
177
178
|
});
|
|
179
|
+
describe('download a file', () => {
|
|
180
|
+
const downloadFileOperation = OperationHandlerSetup_1.OperationHandlerSetup.configureHandler((handler) => handler.usingHttp((http) => http
|
|
181
|
+
.get('https://tray.io/favicon.ico')
|
|
182
|
+
.handleRequest((ctx, input, request) => request.withoutBody())
|
|
183
|
+
.handleResponse((ctx, input, response) => response.parseWithBodyAsFile((file) => OperationHandler_1.OperationHandlerResult.success(file)))));
|
|
184
|
+
OperationHandlerTest_1.OperationHandlerTestSetup.configureHandlerTest(downloadFileOperation, (handlerTest) => handlerTest
|
|
185
|
+
.usingHandlerContext('test')
|
|
186
|
+
.nothingBeforeAll()
|
|
187
|
+
.testCase('should download a file', (testCase) => testCase
|
|
188
|
+
.usingHandlerContext('test')
|
|
189
|
+
.givenNothing()
|
|
190
|
+
.when(() => ({}))
|
|
191
|
+
.then(({ output }) => {
|
|
192
|
+
const outputValue = OperationHandler_1.OperationHandlerResult.getSuccessfulValueOrFail(output);
|
|
193
|
+
expect(outputValue.url).toBeDefined();
|
|
194
|
+
expect(outputValue.name).toBeDefined();
|
|
195
|
+
expect(outputValue.mime_type).toBeDefined();
|
|
196
|
+
expect(outputValue.expires).toBeDefined();
|
|
197
|
+
})
|
|
198
|
+
.finallyDoNothing())
|
|
199
|
+
.nothingAfterAll());
|
|
200
|
+
});
|
|
178
201
|
});
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const OperationHandlerTest_1 = require("@trayio/cdk-dsl/connector/operation/OperationHandlerTest");
|
|
4
4
|
const AxiosHttpClient_1 = require("@trayio/axios/http/AxiosHttpClient");
|
|
5
|
+
const NodeFsFileStorage_1 = require("@trayio/commons/file/NodeFsFileStorage");
|
|
5
6
|
const OperationExecutionGateway_1 = require("./OperationExecutionGateway");
|
|
6
7
|
const OperationExecutionTestRunner_1 = require("./OperationExecutionTestRunner");
|
|
7
|
-
const executionGateway = new OperationExecutionGateway_1.OperationExecutionGateway(new AxiosHttpClient_1.AxiosHttpClient());
|
|
8
|
+
const executionGateway = new OperationExecutionGateway_1.OperationExecutionGateway(new AxiosHttpClient_1.AxiosHttpClient(), new NodeFsFileStorage_1.NodeFsFileStorage());
|
|
8
9
|
const testRunner = new OperationExecutionTestRunner_1.OperationExecutionTestRunner(executionGateway);
|
|
9
10
|
OperationHandlerTest_1.OperationHandlerTestRegistry.onRegistration((handlerReference) => {
|
|
10
11
|
testRunner.runTestFor(handlerReference);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trayio/cdk-runtime",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "A Runtime that executes connector operations defined using the CDK DSL",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./*": "./dist/*.js"
|
|
@@ -14,10 +14,12 @@
|
|
|
14
14
|
"node": ">=18.x"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@trayio/axios": "2.
|
|
18
|
-
"@trayio/cdk-dsl": "2.
|
|
19
|
-
"@trayio/express": "2.
|
|
20
|
-
"@trayio/winston": "2.
|
|
17
|
+
"@trayio/axios": "2.7.0",
|
|
18
|
+
"@trayio/cdk-dsl": "2.7.0",
|
|
19
|
+
"@trayio/express": "2.7.0",
|
|
20
|
+
"@trayio/winston": "2.7.0",
|
|
21
|
+
"mime": "3.0.0",
|
|
22
|
+
"uuid": "9.0.0"
|
|
21
23
|
},
|
|
22
24
|
"typesVersions": {
|
|
23
25
|
"*": {
|