@contract-case/case-connector 0.9.0 → 0.10.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 +25 -0
- package/README.md +1 -1
- package/dist/package.json +5 -5
- package/dist/src/connectors/case-boundary/internals/boundary/ITriggerFunction.d.ts +14 -1
- package/dist/src/connectors/case-boundary/internals/boundary/ITriggerFunction.d.ts.map +1 -1
- package/dist/src/connectors/case-boundary/internals/mappers/triggers.d.ts +3 -2
- package/dist/src/connectors/case-boundary/internals/mappers/triggers.d.ts.map +1 -1
- package/dist/src/connectors/case-boundary/internals/mappers/triggers.js +20 -3
- package/dist/src/connectors/case-boundary/internals/mappers/triggers.js.map +1 -1
- package/dist/src/connectors/grpc/contractDefinition.d.ts.map +1 -1
- package/dist/src/connectors/grpc/contractDefinition.js +24 -4
- package/dist/src/connectors/grpc/contractDefinition.js.map +1 -1
- package/dist/src/connectors/grpc/contractVerification.d.ts.map +1 -1
- package/dist/src/connectors/grpc/contractVerification.js +23 -3
- package/dist/src/connectors/grpc/contractVerification.js.map +1 -1
- package/dist/src/connectors/grpc/functionRegistry/functionRegistry.d.ts +3 -0
- package/dist/src/connectors/grpc/functionRegistry/functionRegistry.d.ts.map +1 -0
- package/dist/src/connectors/grpc/functionRegistry/functionRegistry.js +15 -0
- package/dist/src/connectors/grpc/functionRegistry/functionRegistry.js.map +1 -0
- package/dist/src/connectors/grpc/functionRegistry/index.d.ts +2 -0
- package/dist/src/connectors/grpc/functionRegistry/index.d.ts.map +1 -0
- package/dist/src/connectors/grpc/functionRegistry/index.js +2 -0
- package/dist/src/connectors/grpc/functionRegistry/index.js.map +1 -0
- package/dist/src/connectors/grpc/functionRegistry/types.d.ts +22 -0
- package/dist/src/connectors/grpc/functionRegistry/types.d.ts.map +1 -0
- package/dist/src/connectors/grpc/functionRegistry/types.js +2 -0
- package/dist/src/connectors/grpc/functionRegistry/types.js.map +1 -0
- package/dist/src/connectors/grpc/requestMappers/config/config.d.ts +2 -1
- package/dist/src/connectors/grpc/requestMappers/config/config.d.ts.map +1 -1
- package/dist/src/connectors/grpc/requestMappers/config/config.js +27 -12
- package/dist/src/connectors/grpc/requestMappers/config/config.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package/case-connector.js +2 -2
- package/package/case-connector.js.map +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.10.0](https://github.com/case-contract-testing/contract-case/compare/@contract-case/case-connector-v0.9.0...@contract-case/case-connector-v0.10.0) (2024-10-17)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### ⚠ BREAKING CHANGES
|
|
7
|
+
|
|
8
|
+
* Replace the config object in triggers with a clearer SetupInfo type, allowing cross-language function calls as mocks. Note that the function calls now always return json strings, user-facing DSLs will need to parse the strings
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
* Accurately include version numbers at runtime ([cca80e3](https://github.com/case-contract-testing/contract-case/commit/cca80e32f2dd055388e3cadd0239c883d556bb49))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Code Refactoring
|
|
16
|
+
|
|
17
|
+
* Replace the config object in triggers with a clearer SetupInfo type, allowing cross-language function calls as mocks. Note that the function calls now always return json strings, user-facing DSLs will need to parse the strings ([c9ddd93](https://github.com/case-contract-testing/contract-case/commit/c9ddd93782b5e11cd5925ea76e089e0d779fdc11))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Dependencies
|
|
21
|
+
|
|
22
|
+
* The following workspace dependencies were updated
|
|
23
|
+
* dependencies
|
|
24
|
+
* @contract-case/case-core bumped from 0.17.1 to 0.18.0
|
|
25
|
+
* @contract-case/case-connector-proto bumped from 0.8.0 to 0.9.0
|
|
26
|
+
* @contract-case/case-entities-internal bumped from 0.17.1 to 0.18.0
|
|
27
|
+
|
|
3
28
|
## [0.9.0](https://github.com/case-contract-testing/contract-case/compare/@contract-case/case-connector-v0.8.4...@contract-case/case-connector-v0.9.0) (2024-10-08)
|
|
4
29
|
|
|
5
30
|
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Case-Connector
|
|
2
2
|
|
|
3
3
|
[](https://github.com/case-contract-testing/contract-case/actions/workflows/build-and-test.yml)
|
|
4
|
-
[](https://snyk.io/test/github/case-contract-testing/case?targetFile=packages/case-
|
|
4
|
+
[](https://snyk.io/test/github/case-contract-testing/contract-case?targetFile=packages/case-connector/package.json)
|
|
5
5
|
|
|
6
6
|
This is the server connector (formerly case-boundary) to allow ContractCase to be run as a server.
|
|
7
7
|
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contract-case/case-connector",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Connector to allow ContractCase to run as a server. Use only if you're creating a custom wrapper for a new language",
|
|
6
6
|
"author": "Timothy Jones <timothy.l.jones@gmail.com> (https://github.com/TimothyJones)",
|
|
@@ -44,15 +44,15 @@
|
|
|
44
44
|
"rimraf": "^6.0.1",
|
|
45
45
|
"source-map-loader": "^5.0.0",
|
|
46
46
|
"terser-webpack-plugin": "^5.3.10",
|
|
47
|
-
"ts-jest": "^29.
|
|
47
|
+
"ts-jest": "^29.2.5",
|
|
48
48
|
"ts-node": "^10.9.2",
|
|
49
49
|
"webpack": "^5.94.0",
|
|
50
50
|
"webpack-cli": "^5.1.4"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@contract-case/case-core": "0.
|
|
54
|
-
"@contract-case/case-connector-proto": "0.
|
|
55
|
-
"@contract-case/case-entities-internal": "0.
|
|
53
|
+
"@contract-case/case-core": "0.18.0",
|
|
54
|
+
"@contract-case/case-connector-proto": "0.9.0",
|
|
55
|
+
"@contract-case/case-entities-internal": "0.18.0",
|
|
56
56
|
"@grpc/grpc-js": "^1.11.1",
|
|
57
57
|
"@grpc/proto-loader": "^0.7.10",
|
|
58
58
|
"get-port": "^7.1.0",
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
import { BoundaryResult } from './Result/index.js';
|
|
2
|
+
export type BoundaryCoreFunction = (...args: string[]) => Promise<BoundaryResult>;
|
|
3
|
+
export type BoundarySetupInfo = {
|
|
4
|
+
stateVariables: Record<string, string>;
|
|
5
|
+
/**
|
|
6
|
+
* Functions defined or registered in the core,
|
|
7
|
+
* that can be called by host wrappers.
|
|
8
|
+
* These functions are never-fail - they always return a successful promise.
|
|
9
|
+
*/
|
|
10
|
+
functions: Record<string, BoundaryCoreFunction>;
|
|
11
|
+
mock: Record<string, string>;
|
|
12
|
+
};
|
|
2
13
|
/**
|
|
3
14
|
* Interface called by ContractCase to invoke user's test code.
|
|
4
15
|
*
|
|
@@ -8,12 +19,14 @@ export interface ITriggerFunction {
|
|
|
8
19
|
/**
|
|
9
20
|
* Trigger the user's test code and test the response from it.
|
|
10
21
|
*
|
|
22
|
+
* @param setup - The information about the setup for this test
|
|
23
|
+
*
|
|
11
24
|
* @returns BoundarySuccess when successful; BoundaryFailure with
|
|
12
25
|
* kind=BoundaryFailureKindConstants.CASE_TRIGGER_ERROR if the trigger fails;
|
|
13
26
|
* BoundaryFailure with
|
|
14
27
|
* kind=BoundaryFailureKindConstants.CASE_VERIFY_RETURN_ERROR if the
|
|
15
28
|
* verification function fails.
|
|
16
29
|
*/
|
|
17
|
-
trigger(
|
|
30
|
+
trigger(setup: BoundarySetupInfo): Promise<BoundaryResult>;
|
|
18
31
|
}
|
|
19
32
|
//# sourceMappingURL=ITriggerFunction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ITriggerFunction.d.ts","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/boundary/ITriggerFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"ITriggerFunction.d.ts","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/boundary/ITriggerFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,oBAAoB,GAAG,CACjC,GAAG,IAAI,EAAE,MAAM,EAAE,KACd,OAAO,CAAC,cAAc,CAAC,CAAC;AAE7B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAChD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5D"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { BaseSetupInfo } from '@contract-case/case-core';
|
|
1
2
|
import { ITriggerFunction } from '../boundary/index.js';
|
|
2
|
-
export declare const mapTrigger: (trigger: ITriggerFunction) => (config:
|
|
3
|
-
export declare const mapTriggers: (triggers: Record<string, ITriggerFunction>) => Record<string, (config:
|
|
3
|
+
export declare const mapTrigger: (trigger: ITriggerFunction) => (config: BaseSetupInfo) => Promise<void>;
|
|
4
|
+
export declare const mapTriggers: (triggers: Record<string, ITriggerFunction>) => Record<string, (config: BaseSetupInfo) => Promise<void>>;
|
|
4
5
|
//# sourceMappingURL=triggers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggers.d.ts","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/mappers/triggers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"triggers.d.ts","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/mappers/triggers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAEL,gBAAgB,EAKjB,MAAM,sBAAsB,CAAC;AA2B9B,eAAO,MAAM,UAAU,YACX,gBAAgB,cAEjB,aAAa,KAAG,OAAO,CAAC,IAAI,CAajC,CAAC;AAEP,eAAO,MAAM,WAAW,aACZ,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAEzC,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAMrD,CAAC"}
|
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
import { CaseCoreError } from '@contract-case/case-core';
|
|
2
|
-
import { RESULT_SUCCESS, RESULT_FAILURE, RESULT_SUCCESS_HAS_MAP_PAYLOAD, } from '../boundary/index.js';
|
|
3
|
-
import { failureToJsError } from './Result/index.js';
|
|
2
|
+
import { RESULT_SUCCESS, RESULT_FAILURE, RESULT_SUCCESS_HAS_MAP_PAYLOAD, BoundarySuccessWithAny, } from '../boundary/index.js';
|
|
3
|
+
import { failureToJsError, jsErrorToFailure } from './Result/index.js';
|
|
4
|
+
const mapSetupInfo = ({ stateVariables, functions, mock, }) => ({
|
|
5
|
+
stateVariables,
|
|
6
|
+
mock,
|
|
7
|
+
functions: Object.entries(functions)
|
|
8
|
+
.map(([name, fn]) => [
|
|
9
|
+
name,
|
|
10
|
+
(...args) => {
|
|
11
|
+
try {
|
|
12
|
+
return new BoundarySuccessWithAny(fn(...args));
|
|
13
|
+
}
|
|
14
|
+
catch (e) {
|
|
15
|
+
return jsErrorToFailure(e);
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
])
|
|
19
|
+
.reduce((acc, [name, fn]) => ({ ...acc, [name]: fn }), {}),
|
|
20
|
+
});
|
|
4
21
|
export const mapTrigger = (trigger) =>
|
|
5
22
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
|
-
(config) => trigger.trigger(config).then((result) => {
|
|
23
|
+
(config) => trigger.trigger(mapSetupInfo(config)).then((result) => {
|
|
7
24
|
switch (result.resultType) {
|
|
8
25
|
case RESULT_SUCCESS:
|
|
9
26
|
case RESULT_SUCCESS_HAS_MAP_PAYLOAD:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggers.js","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/mappers/triggers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"triggers.js","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/mappers/triggers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiB,MAAM,0BAA0B,CAAC;AACxE,OAAO,EACL,cAAc,EAEd,cAAc,EACd,8BAA8B,EAE9B,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,YAAY,GAAG,CAAC,EACpB,cAAc,EACd,SAAS,EACT,IAAI,GACU,EAAqB,EAAE,CAAC,CAAC;IACvC,cAAc;IACd,IAAI;IACJ,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;SACjC,GAAG,CACF,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CACb;QACE,IAAI;QACJ,CAAC,GAAG,IAAc,EAAE,EAAE;YACpB,IAAI,CAAC;gBACH,OAAO,IAAI,sBAAsB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;KACO,CACb;SACA,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GACrB,CAAC,OAAyB,EAAE,EAAE;AAC9B,8DAA8D;AAC9D,CAAC,MAAqB,EAAiB,EAAE,CACvC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;IACpD,QAAQ,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1B,KAAK,cAAc,CAAC;QACpB,KAAK,8BAA8B;YACjC,OAAO;QACT,KAAK,cAAc;YACjB,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACjC;YACE,MAAM,IAAI,aAAa,CACrB,wBAAwB,MAAM,CAAC,UAAU,0BAA0B,CACpE,CAAC;IACN,CAAC;AACH,CAAC,CAAC,CAAC;AAEP,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,QAA0C,EAEgB,EAAE,CAC5D,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;KACrB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAC1D,MAAM,CACL,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,EACpC,EAAyC,CAC1C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractDefinition.d.ts","sourceRoot":"","sources":["../../../../src/connectors/grpc/contractDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EACL,iBAAiB,IAAI,qBAAqB,EAC1C,gBAAgB,IAAI,oBAAoB,EACzC,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"contractDefinition.d.ts","sourceRoot":"","sources":["../../../../src/connectors/grpc/contractDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EACL,iBAAiB,IAAI,qBAAqB,EAC1C,gBAAgB,IAAI,oBAAoB,EACzC,MAAM,qCAAqC,CAAC;AAyC7C,eAAO,MAAM,kBAAkB,SACvB,kBAAkB,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,KACpE,IA2TF,CAAC"}
|
|
@@ -10,6 +10,7 @@ import { connectorDebugLog, maintainerLog, } from '../../domain/maintainerLog.js
|
|
|
10
10
|
import { makeLogPrinter, makeResultPrinter } from './printers.js';
|
|
11
11
|
import { makeResultResponse } from './responseMappers/index.js';
|
|
12
12
|
import { loadPlugin } from '../../domain/loadPlugin.js';
|
|
13
|
+
import { makeFunctionRegistry } from './functionRegistry/index.js';
|
|
13
14
|
const getId = (request) => {
|
|
14
15
|
const id = request.getId();
|
|
15
16
|
if (id === undefined) {
|
|
@@ -25,6 +26,7 @@ export const contractDefinition = (call) => {
|
|
|
25
26
|
sendContractResponse('maintainerDebug', request.getId()?.getValue() || '', makeResultResponse(new BoundaryFailure(BoundaryFailureKindConstants.CASE_CORE_ERROR, `[${e.name}] ${e.message}`, e.stack ?? 'ContractCase Connector')));
|
|
26
27
|
};
|
|
27
28
|
let definitionId;
|
|
29
|
+
const functionRegistry = makeFunctionRegistry();
|
|
28
30
|
call.on('data', (request) => {
|
|
29
31
|
maintainerLog('[RECEIVED]', JSON.stringify(request.toObject(), null, 2));
|
|
30
32
|
const type = request.getKindCase();
|
|
@@ -38,7 +40,7 @@ export const contractDefinition = (call) => {
|
|
|
38
40
|
throw new ConnectorError('Begin definition was called with something that returned an undefined getBeginDefinition');
|
|
39
41
|
}
|
|
40
42
|
try {
|
|
41
|
-
definitionId = beginDefinition(mapConfig(beginDefinitionRequest.getConfig(), sendContractResponse), makeLogPrinter(sendContractResponse), makeResultPrinter(sendContractResponse), beginDefinitionRequest
|
|
43
|
+
definitionId = beginDefinition(mapConfig(beginDefinitionRequest.getConfig(), sendContractResponse, functionRegistry), makeLogPrinter(sendContractResponse), makeResultPrinter(sendContractResponse), beginDefinitionRequest
|
|
42
44
|
.getCallerVersionsList()
|
|
43
45
|
.map((s) => s != null ? s.getValue() : 'missing-version-value'));
|
|
44
46
|
}
|
|
@@ -68,7 +70,7 @@ export const contractDefinition = (call) => {
|
|
|
68
70
|
if (definitionId === undefined) {
|
|
69
71
|
throw new ConnectorError('runExample was called before begin definition');
|
|
70
72
|
}
|
|
71
|
-
runExample(definitionId, mapJson(runExampleRequest.getExampleDefinition()), mapConfig(runExampleRequest.getConfig(), sendContractResponse)).then((result) => sendContractResponse('maintainerDebug', getId(request), makeResultResponse(result)));
|
|
73
|
+
runExample(definitionId, mapJson(runExampleRequest.getExampleDefinition()), mapConfig(runExampleRequest.getConfig(), sendContractResponse, functionRegistry)).then((result) => sendContractResponse('maintainerDebug', getId(request), makeResultResponse(result)));
|
|
72
74
|
break;
|
|
73
75
|
}
|
|
74
76
|
case WireDefinitionRequest.KindCase.RUN_REJECTING_EXAMPLE: {
|
|
@@ -79,7 +81,7 @@ export const contractDefinition = (call) => {
|
|
|
79
81
|
if (definitionId === undefined) {
|
|
80
82
|
throw new ConnectorError('runExample was called before begin definition');
|
|
81
83
|
}
|
|
82
|
-
runRejectingExample(definitionId, mapJson(runRejectingExampleRequest.getExampleDefinition()), mapConfig(runRejectingExampleRequest.getConfig(), sendContractResponse)).then((result) => sendContractResponse('maintainerDebug', getId(request), makeResultResponse(result)));
|
|
84
|
+
runRejectingExample(definitionId, mapJson(runRejectingExampleRequest.getExampleDefinition()), mapConfig(runRejectingExampleRequest.getConfig(), sendContractResponse, functionRegistry)).then((result) => sendContractResponse('maintainerDebug', getId(request), makeResultResponse(result)));
|
|
83
85
|
break;
|
|
84
86
|
}
|
|
85
87
|
case WireDefinitionRequest.KindCase.STRIP_MATCHERS: {
|
|
@@ -111,7 +113,7 @@ export const contractDefinition = (call) => {
|
|
|
111
113
|
if (loadPluginRequest == null) {
|
|
112
114
|
throw new ConnectorError('loadPlugin called with something that returned an undefined request');
|
|
113
115
|
}
|
|
114
|
-
loadPlugin(mapConfig(loadPluginRequest.getConfig(), sendContractResponse), makeLogPrinter(sendContractResponse), makeResultPrinter(sendContractResponse), loadPluginRequest
|
|
116
|
+
loadPlugin(mapConfig(loadPluginRequest.getConfig(), sendContractResponse, functionRegistry), makeLogPrinter(sendContractResponse), makeResultPrinter(sendContractResponse), loadPluginRequest
|
|
115
117
|
.getCallerVersionsList()
|
|
116
118
|
.map((s) => (s != null ? s.getValue() : 'missing-version-value')), loadPluginRequest.getModuleNamesList().map((s, index) => {
|
|
117
119
|
if (s == null) {
|
|
@@ -141,6 +143,24 @@ export const contractDefinition = (call) => {
|
|
|
141
143
|
});
|
|
142
144
|
}
|
|
143
145
|
break;
|
|
146
|
+
case WireDefinitionRequest.KindCase.INVOKE_FUNCTION:
|
|
147
|
+
{
|
|
148
|
+
const invokeFunctionRequest = request.getInvokeFunction();
|
|
149
|
+
if (invokeFunctionRequest == null) {
|
|
150
|
+
throw new ConnectorError('invokeFunction called with something that returned an undefined request');
|
|
151
|
+
}
|
|
152
|
+
const handle = invokeFunctionRequest.getHandle()?.getValue();
|
|
153
|
+
if (handle == null) {
|
|
154
|
+
throw new ConnectorError('Handle was missing a value');
|
|
155
|
+
}
|
|
156
|
+
const args = invokeFunctionRequest
|
|
157
|
+
.getArgumentsList()
|
|
158
|
+
.map((s) => s.getValue());
|
|
159
|
+
Promise.resolve(functionRegistry.getCoreFunction(handle)(...args)).then((result) => {
|
|
160
|
+
sendContractResponse('maintainerDebug', getId(request), makeResultResponse(result));
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
break;
|
|
144
164
|
default:
|
|
145
165
|
throw new UnreachableError(type);
|
|
146
166
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractDefinition.js","sourceRoot":"","sources":["../../../../src/connectors/grpc/contractDefinition.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,IAAI,qBAAqB,GAE3C,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,eAAe,EACf,4BAA4B,EAC5B,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EACL,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,aAAa,GACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,OAAO,EACP,SAAS,GACV,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,iBAAiB,EACjB,aAAa,GACd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"contractDefinition.js","sourceRoot":"","sources":["../../../../src/connectors/grpc/contractDefinition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractVerification.d.ts","sourceRoot":"","sources":["../../../../src/connectors/grpc/contractVerification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EACL,mBAAmB,IAAI,uBAAuB,EAC9C,gBAAgB,IAAI,oBAAoB,EAEzC,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"contractVerification.d.ts","sourceRoot":"","sources":["../../../../src/connectors/grpc/contractVerification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EACL,mBAAmB,IAAI,uBAAuB,EAC9C,gBAAgB,IAAI,oBAAoB,EAEzC,MAAM,qCAAqC,CAAC;AA2C7C,eAAO,MAAM,oBAAoB,SACzB,kBAAkB,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,KACtE,IAkVF,CAAC"}
|
|
@@ -11,6 +11,7 @@ import { makeSendContractResponse } from './sendContractResponse.js';
|
|
|
11
11
|
import { makeLogPrinter, makeResultPrinter } from './printers.js';
|
|
12
12
|
import { makeResultResponse } from './responseMappers/index.js';
|
|
13
13
|
import { loadPlugin } from '../../domain/loadPlugin.js';
|
|
14
|
+
import { makeFunctionRegistry } from './functionRegistry/index.js';
|
|
14
15
|
const getId = (request) => {
|
|
15
16
|
const id = request.getId();
|
|
16
17
|
if (id === undefined) {
|
|
@@ -26,6 +27,7 @@ export const contractVerification = (call) => {
|
|
|
26
27
|
sendContractResponse('maintainerDebug', request.getId()?.getValue() || '', makeResultResponse(new BoundaryFailure(BoundaryFailureKindConstants.CASE_CORE_ERROR, `[${e.name}] ${e.message}`, e.stack ?? 'ContractCase Connector')));
|
|
27
28
|
};
|
|
28
29
|
let verificationId;
|
|
30
|
+
const functionRegistry = makeFunctionRegistry();
|
|
29
31
|
call.on('data', (request) => {
|
|
30
32
|
maintainerLog('[RECEIVED]', JSON.stringify(request.toObject(), null, 2));
|
|
31
33
|
const type = request.getKindCase();
|
|
@@ -40,7 +42,7 @@ export const contractVerification = (call) => {
|
|
|
40
42
|
throw new ConnectorError('Begin definition was called with something that returned an undefined getBeginDefinition');
|
|
41
43
|
}
|
|
42
44
|
try {
|
|
43
|
-
verificationId = beginVerification(mapConfig(beginVerificationRequest.getConfig(), sendContractResponse), {
|
|
45
|
+
verificationId = beginVerification(mapConfig(beginVerificationRequest.getConfig(), sendContractResponse, functionRegistry), {
|
|
44
46
|
runTest: (testName, invoker) => {
|
|
45
47
|
const invokerId = makeResolvableId(async () => { }, (result) => {
|
|
46
48
|
// TODO: Replace this with a nice 'isBoundarySuccessWithAny' function
|
|
@@ -86,7 +88,7 @@ export const contractVerification = (call) => {
|
|
|
86
88
|
if (verificationId === undefined) {
|
|
87
89
|
throw new ConnectorError('runVerification was called before beginVerification');
|
|
88
90
|
}
|
|
89
|
-
runVerification(verificationId, mapConfig(runVerificationRequest.getConfig(), sendContractResponse))
|
|
91
|
+
runVerification(verificationId, mapConfig(runVerificationRequest.getConfig(), sendContractResponse, functionRegistry))
|
|
90
92
|
.then((result) => sendContractResponse('maintainerDebug', getId(request), makeResultResponse(result)))
|
|
91
93
|
.catch((e) => {
|
|
92
94
|
sendUnexpectedError(request, e, 'Run verification');
|
|
@@ -126,7 +128,7 @@ export const contractVerification = (call) => {
|
|
|
126
128
|
throw new ConnectorError('loadPlugin called with something that returned an undefined request');
|
|
127
129
|
}
|
|
128
130
|
Promise.resolve()
|
|
129
|
-
.then(() => loadPlugin(mapConfig(loadPluginRequest.getConfig(), sendContractResponse), makeLogPrinter(sendContractResponse), makeResultPrinter(sendContractResponse), loadPluginRequest
|
|
131
|
+
.then(() => loadPlugin(mapConfig(loadPluginRequest.getConfig(), sendContractResponse, functionRegistry), makeLogPrinter(sendContractResponse), makeResultPrinter(sendContractResponse), loadPluginRequest
|
|
130
132
|
.getCallerVersionsList()
|
|
131
133
|
.map((s) => s != null ? s.getValue() : 'missing-version-value'), loadPluginRequest.getModuleNamesList().map((s, index) => {
|
|
132
134
|
if (s == null) {
|
|
@@ -160,6 +162,24 @@ export const contractVerification = (call) => {
|
|
|
160
162
|
});
|
|
161
163
|
}
|
|
162
164
|
break;
|
|
165
|
+
case WireVerificationRequest.KindCase.INVOKE_FUNCTION:
|
|
166
|
+
{
|
|
167
|
+
const invokeFunctionRequest = request.getInvokeFunction();
|
|
168
|
+
if (invokeFunctionRequest == null) {
|
|
169
|
+
throw new ConnectorError('invokeFunction called with something that returned an undefined request');
|
|
170
|
+
}
|
|
171
|
+
const handle = invokeFunctionRequest.getHandle()?.getValue();
|
|
172
|
+
if (handle == null) {
|
|
173
|
+
throw new ConnectorError('Handle was missing a value');
|
|
174
|
+
}
|
|
175
|
+
const args = invokeFunctionRequest
|
|
176
|
+
.getArgumentsList()
|
|
177
|
+
.map((s) => s.getValue());
|
|
178
|
+
Promise.resolve(functionRegistry.getCoreFunction(handle)(...args)).then((result) => {
|
|
179
|
+
sendContractResponse('maintainerDebug', getId(request), makeResultResponse(result));
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
break;
|
|
163
183
|
default:
|
|
164
184
|
throw new UnreachableError(type);
|
|
165
185
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractVerification.js","sourceRoot":"","sources":["../../../../src/connectors/grpc/contractVerification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gDAAgD,CAAC;AAC7E,OAAO,EACL,mBAAmB,IAAI,uBAAuB,EAC9C,gBAAgB,IAAI,oBAAoB,EACxC,cAAc,IAAI,kBAAkB,GACrC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,eAAe,EACf,4BAA4B,EAE5B,eAAe,EACf,sBAAsB,GAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EACL,6BAA6B,EAC7B,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,SAAS,GACV,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"contractVerification.js","sourceRoot":"","sources":["../../../../src/connectors/grpc/contractVerification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functionRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/connectors/grpc/functionRegistry/functionRegistry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,oBAAoB,QAAO,gBAsBvC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BoundaryFailure, BoundaryFailureKindConstants, } from '../../case-boundary/internals/index.js';
|
|
2
|
+
export const makeFunctionRegistry = () => {
|
|
3
|
+
const coreFunctions = {};
|
|
4
|
+
const registerCoreFunction = (name, fn) => {
|
|
5
|
+
coreFunctions[name] = fn;
|
|
6
|
+
};
|
|
7
|
+
const getCoreFunction = (name) => (...args) => Promise.resolve().then(() => {
|
|
8
|
+
if (coreFunctions[name] == null) {
|
|
9
|
+
return new BoundaryFailure(BoundaryFailureKindConstants.CASE_CONFIGURATION_ERROR, `There's no available function with the name '${name}'`, 'core connector');
|
|
10
|
+
}
|
|
11
|
+
return coreFunctions[name](...args);
|
|
12
|
+
});
|
|
13
|
+
return { registerCoreFunction, getCoreFunction };
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=functionRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functionRegistry.js","sourceRoot":"","sources":["../../../../../src/connectors/grpc/functionRegistry/functionRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,4BAA4B,GAE7B,MAAM,wCAAwC,CAAC;AAGhD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAqB,EAAE;IACzD,MAAM,aAAa,GAAyC,EAAE,CAAC;IAE/D,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,EAAwB,EAAE,EAAE;QACtE,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,eAAe,GACnB,CAAC,IAAY,EAAwB,EAAE,CACvC,CAAC,GAAG,IAAc,EAA2B,EAAE,CAC7C,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAC1B,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAChC,OAAO,IAAI,eAAe,CACxB,4BAA4B,CAAC,wBAAwB,EACrD,gDAAgD,IAAI,GAAG,EACvD,gBAAgB,CACjB,CAAC;QACJ,CAAC;QACD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEP,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,CAAC;AACnD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/connectors/grpc/functionRegistry/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/connectors/grpc/functionRegistry/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BoundaryCoreFunction } from '../../case-boundary/internals/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* A repository for functions that can be retrieved later
|
|
4
|
+
*/
|
|
5
|
+
export type FunctionRegistry = {
|
|
6
|
+
/**
|
|
7
|
+
* Registers a function to be called later
|
|
8
|
+
* @param name - the name to use to retrieve this function later
|
|
9
|
+
* @param fn - the {@link BoundaryCoreFunction} to register
|
|
10
|
+
*/
|
|
11
|
+
registerCoreFunction: (name: string, fn: BoundaryCoreFunction) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Gets a function that was previously registered with registerCoreFunction
|
|
14
|
+
*
|
|
15
|
+
* @param name - The function name, registered previously
|
|
16
|
+
* @returns An {@link BoundaryCoreFunction} that can always be called - it
|
|
17
|
+
* will return a BoundaryFailure if the function doesn't exist, and it is
|
|
18
|
+
* NeverFail - it will always return a successful promise.
|
|
19
|
+
*/
|
|
20
|
+
getCoreFunction: (name: string) => BoundaryCoreFunction;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/connectors/grpc/functionRegistry/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;OAIG;IACH,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACvE;;;;;;;OAOG;IACH,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,oBAAoB,CAAC;CACzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/connectors/grpc/functionRegistry/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ContractCaseConfig as WireContractCaseConfig } from '@contract-case/case-connector-proto';
|
|
2
2
|
import { ContractCaseConnectorConfig } from '../../../../domain/types.js';
|
|
3
3
|
import { SendContractResponse } from '../../sendContractResponse.js';
|
|
4
|
-
|
|
4
|
+
import { FunctionRegistry } from '../../functionRegistry/types.js';
|
|
5
|
+
export declare const mapConfig: (config: WireContractCaseConfig | undefined, executeCall: SendContractResponse, functionRegistry: FunctionRegistry) => ContractCaseConnectorConfig;
|
|
5
6
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../src/connectors/grpc/requestMappers/config/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../src/connectors/grpc/requestMappers/config/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,kBAAkB,IAAI,sBAAsB,EAC7C,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAEL,2BAA2B,EAC5B,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAGrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AA0InE,eAAO,MAAM,SAAS,WACZ,sBAAsB,GAAG,SAAS,eAC7B,oBAAoB,oBACf,gBAAgB,KACjC,2BAeF,CAAC"}
|
|
@@ -1,27 +1,42 @@
|
|
|
1
|
-
import { Struct, } from 'google-protobuf/google/protobuf/struct_pb.js';
|
|
2
1
|
import { StringValue } from 'google-protobuf/google/protobuf/wrappers_pb.js';
|
|
3
|
-
import { ContractResponse, TriggerFunctionHandle, TriggerFunctionRequest, } from '@contract-case/case-connector-proto';
|
|
2
|
+
import { ContractResponse, CoreFunctionHandle, SetupInfo, TriggerFunctionHandle, TriggerFunctionRequest, } from '@contract-case/case-connector-proto';
|
|
4
3
|
import { mapStateHandlers } from './stateHandlers.js';
|
|
5
4
|
import { ConnectorError } from '../../../../domain/errors/index.js';
|
|
6
5
|
import { makeResolvableId, waitForResolution, } from '../../promiseHandler/promiseHandler.js';
|
|
7
6
|
import { unbox, unboxBoolOrUndefined, unboxOrUndefined } from '../values.js';
|
|
8
|
-
const
|
|
7
|
+
const mapSetupInfo = (boundarySetup, functionRegistry) => {
|
|
8
|
+
const setup = new SetupInfo();
|
|
9
|
+
Object.entries(boundarySetup.mock).forEach(([key, value]) => {
|
|
10
|
+
setup.getMockMap().set(key, new StringValue().setValue(value));
|
|
11
|
+
});
|
|
12
|
+
Object.entries(boundarySetup.stateVariables).forEach(([key, value]) => {
|
|
13
|
+
setup.getStatevariablesMap().set(key, new StringValue().setValue(value));
|
|
14
|
+
});
|
|
15
|
+
Object.entries(boundarySetup.functions).forEach(([name, fn]) => {
|
|
16
|
+
setup
|
|
17
|
+
.getFunctionsMap()
|
|
18
|
+
.set(name, new CoreFunctionHandle().setHandle(new StringValue().setValue(name)));
|
|
19
|
+
functionRegistry.registerCoreFunction(name, fn);
|
|
20
|
+
});
|
|
21
|
+
return setup;
|
|
22
|
+
};
|
|
23
|
+
const mapTriggerFunction = (handle, executeCall, functionRegistry) => ({
|
|
9
24
|
trigger: (withConfig) => waitForResolution(makeResolvableId((id) => {
|
|
10
25
|
if (Array.isArray(handle)) {
|
|
11
26
|
// TODO: Figure out why this is sometimes an array instead of a handle
|
|
12
27
|
return executeCall('maintainerDebug', id, new ContractResponse().setTriggerFunctionRequest(new TriggerFunctionRequest()
|
|
13
28
|
.setTriggerFunction(new TriggerFunctionHandle().setHandle(new StringValue().setValue(handle[0][0])))
|
|
14
|
-
.
|
|
29
|
+
.setSetup(mapSetupInfo(withConfig, functionRegistry))));
|
|
15
30
|
}
|
|
16
31
|
return executeCall('maintainerDebug', id, new ContractResponse().setTriggerFunctionRequest(new TriggerFunctionRequest()
|
|
17
32
|
.setTriggerFunction(new TriggerFunctionHandle().setHandle(handle.getHandle()))
|
|
18
|
-
.
|
|
33
|
+
.setSetup(mapSetupInfo(withConfig, functionRegistry))));
|
|
19
34
|
})),
|
|
20
35
|
});
|
|
21
|
-
const mapTriggerAndTest = (config, executeCall) => {
|
|
36
|
+
const mapTriggerAndTest = (config, executeCall, functionRegistry) => {
|
|
22
37
|
const trigger = config.getTriggerAndTest();
|
|
23
38
|
return trigger !== undefined
|
|
24
|
-
? mapTriggerFunction(trigger, executeCall)
|
|
39
|
+
? mapTriggerFunction(trigger, executeCall, functionRegistry)
|
|
25
40
|
: undefined;
|
|
26
41
|
};
|
|
27
42
|
const mapBasicAuth = (basicAuth) => {
|
|
@@ -36,7 +51,7 @@ const mapBasicAuth = (basicAuth) => {
|
|
|
36
51
|
const mapMockConfig = (wireMockConfig) => wireMockConfig
|
|
37
52
|
.getEntryList()
|
|
38
53
|
.reduce((curr, [key, value]) => ({ ...curr, [key]: JSON.parse(value) }), {});
|
|
39
|
-
const mapAllConfigFields = (config, executeCall) => ({
|
|
54
|
+
const mapAllConfigFields = (config, executeCall, functionRegistry) => ({
|
|
40
55
|
providerName: unboxOrUndefined(config.getProviderName()),
|
|
41
56
|
consumerName: unboxOrUndefined(config.getConsumerName()),
|
|
42
57
|
logLevel: unboxOrUndefined(config.getLogLevel()),
|
|
@@ -55,16 +70,16 @@ const mapAllConfigFields = (config, executeCall) => ({
|
|
|
55
70
|
.toArray()
|
|
56
71
|
.reduce((acc, [key, handler]) => ({
|
|
57
72
|
...acc,
|
|
58
|
-
[key]: mapTriggerFunction(handler, executeCall),
|
|
73
|
+
[key]: mapTriggerFunction(handler, executeCall, functionRegistry),
|
|
59
74
|
}), {}),
|
|
60
|
-
triggerAndTest: mapTriggerAndTest(config, executeCall),
|
|
75
|
+
triggerAndTest: mapTriggerAndTest(config, executeCall, functionRegistry),
|
|
61
76
|
mockConfig: mapMockConfig(config.getMockConfigMap()),
|
|
62
77
|
});
|
|
63
|
-
export const mapConfig = (config, executeCall) => {
|
|
78
|
+
export const mapConfig = (config, executeCall, functionRegistry) => {
|
|
64
79
|
if (config === undefined) {
|
|
65
80
|
throw new ConnectorError('Config object must be provided');
|
|
66
81
|
}
|
|
67
|
-
return Object.entries(mapAllConfigFields(config, executeCall)).reduce(
|
|
82
|
+
return Object.entries(mapAllConfigFields(config, executeCall, functionRegistry)).reduce(
|
|
68
83
|
// Kill any fields that are empty strings or otherwise undefined
|
|
69
84
|
(acc, [key, value]) => ({
|
|
70
85
|
...acc,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../../src/connectors/grpc/requestMappers/config/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../../src/connectors/grpc/requestMappers/config/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gDAAgD,CAAC;AAC7E,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,qCAAqC,CAAC;AAM7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAI7E,MAAM,YAAY,GAAG,CACnB,aAAgC,EAChC,gBAAkC,EACvB,EAAE;IACb,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;IAC9B,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC1D,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpE,KAAK,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QAC7D,KAAK;aACF,eAAe,EAAE;aACjB,GAAG,CACF,IAAI,EACJ,IAAI,kBAAkB,EAAE,CAAC,SAAS,CAAC,IAAI,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACrE,CAAC;QACJ,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CACzB,MAA6B,EAC7B,WAAiC,EACjC,gBAAkC,EAClC,EAAE,CAAC,CAAC;IACJ,OAAO,EAAE,CAAC,UAA6B,EAAE,EAAE,CACzC,iBAAiB,CACf,gBAAgB,CAAC,CAAC,EAAU,EAAE,EAAE;QAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,sEAAsE;YACtE,OAAO,WAAW,CAChB,iBAAiB,EACjB,EAAE,EACF,IAAI,gBAAgB,EAAE,CAAC,yBAAyB,CAC9C,IAAI,sBAAsB,EAAE;iBACzB,kBAAkB,CACjB,IAAI,qBAAqB,EAAE,CAAC,SAAS,CACnC,IAAI,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzC,CACF;iBACA,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CACxD,CACF,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,CAChB,iBAAiB,EACjB,EAAE,EACF,IAAI,gBAAgB,EAAE,CAAC,yBAAyB,CAC9C,IAAI,sBAAsB,EAAE;aACzB,kBAAkB,CACjB,IAAI,qBAAqB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAC1D;aACA,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CACxD,CACF,CAAC;IACJ,CAAC,CAAC,CACH;CACJ,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CACxB,MAA8B,EAC9B,WAAiC,EACjC,gBAAkC,EAClC,EAAE;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC3C,OAAO,OAAO,KAAK,SAAS;QAC1B,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACnB,SAA8D,EACV,EAAE;IACtD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QACxC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;KACzC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACpB,cAAqC,EACI,EAAE,CAC3C,cAAc;KACX,YAAY,EAAE;KACd,MAAM,CACL,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAC/D,EAA6C,CAC9C,CAAC;AAMN,MAAM,kBAAkB,GAAG,CACzB,MAA8B,EAC9B,WAAiC,EACjC,gBAAkC,EACU,EAAE,CAAC,CAAC;IAChD,YAAY,EAAE,gBAAgB,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;IACxD,YAAY,EAAE,gBAAgB,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;IACxD,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAChD,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACtD,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAEhE,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAC9C,mBAAmB,EAAE,gBAAgB,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;IACtE,aAAa,EAAE,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAC1D,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;IAE1D,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAChE,YAAY,EAAE,oBAAoB,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;IAC5D,WAAW,EAAE,oBAAoB,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IAE1D,aAAa,EAAE,gBAAgB,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,WAAW,CAAC;IAC3E,eAAe,EAAE,MAAM;SACpB,qBAAqB,EAAE;SACvB,OAAO,EAAE;SACT,MAAM,CACL,CAAC,GAA6C,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAClE,GAAG,GAAG;QACN,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC;KAClE,CAAC,EACF,EAA8C,CAC/C;IACH,cAAc,EAAE,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC;IACxE,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;CACrD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,MAA0C,EAC1C,WAAiC,EACjC,gBAAkC,EACL,EAAE;IAC/B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,cAAc,CAAC,gCAAgC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CACnB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAC1D,CAAC,MAAM;IACN,gEAAgE;IAChE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACtB,GAAG,GAAG;QACN,GAAG,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC,EACF,EAAiC,CAClC,CAAC;AACJ,CAAC,CAAC"}
|