@aws/nx-plugin 1.0.0-rc.16 → 1.0.0-rc.18
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/generators.json +9 -1
- package/package.json +1 -1
- package/src/agentcore-gateway/attach-upstream.d.ts +33 -0
- package/src/agentcore-gateway/attach-upstream.js +41 -0
- package/src/agentcore-gateway/attach-upstream.js.map +1 -0
- package/src/agentcore-gateway/files/project/serve-local.ts.template +3 -2
- package/src/agentcore-gateway/gateway-connection/generator.d.ts +21 -0
- package/src/agentcore-gateway/gateway-connection/generator.js +102 -0
- package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -0
- package/src/agentcore-gateway/gateway-connection/schema.d.ts +12 -0
- package/src/agentcore-gateway/gateway-connection/schema.json +26 -0
- package/src/agentcore-gateway/mcp-connection/generator.js +8 -24
- package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -1
- package/src/connection/generator.js +66 -63
- package/src/connection/generator.js.map +1 -1
- package/src/license/generator.js +8 -19
- package/src/license/generator.js.map +1 -1
- package/src/license/known-exceptions.d.ts +0 -1
- package/src/license/known-exceptions.js +1 -8
- package/src/license/known-exceptions.js.map +1 -1
- package/src/py/agent/generator.js +0 -5
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +122 -14
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +122 -14
- package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +3 -0
- package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +110 -28
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +90 -2
- package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +61 -7
- package/src/utils/versions.d.ts +1 -1
- package/src/utils/versions.js +1 -1
package/src/license/generator.js
CHANGED
|
@@ -7,16 +7,15 @@ exports.licenseGenerator = licenseGenerator;
|
|
|
7
7
|
* SPDX-License-Identifier: Apache-2.0
|
|
8
8
|
*/
|
|
9
9
|
const devkit_1 = require("@nx/devkit");
|
|
10
|
-
const generator_1 = require("../py/
|
|
11
|
-
const generator_2 = require("../
|
|
12
|
-
const generator_3 = require("../ts/mcp-server/generator");
|
|
10
|
+
const generator_1 = require("../py/mcp-server/generator");
|
|
11
|
+
const generator_2 = require("../ts/mcp-server/generator");
|
|
13
12
|
const utils_1 = require("../utils/config/utils");
|
|
14
13
|
const format_1 = require("../utils/format");
|
|
15
14
|
const metrics_1 = require("../utils/metrics");
|
|
16
15
|
const nx_1 = require("../utils/nx");
|
|
17
16
|
const config_1 = require("./config");
|
|
18
17
|
const known_exceptions_1 = require("./known-exceptions");
|
|
19
|
-
const
|
|
18
|
+
const generator_3 = require("./sync/generator");
|
|
20
19
|
exports.LICENSE_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
21
20
|
async function licenseGenerator(tree, options) {
|
|
22
21
|
const { license, copyrightHolder } = options;
|
|
@@ -45,8 +44,8 @@ async function licenseGenerator(tree, options) {
|
|
|
45
44
|
const lintTargetDefault = {
|
|
46
45
|
...nxJson.targetDefaults?.lint,
|
|
47
46
|
syncGenerators: [
|
|
48
|
-
...(nxJson.targetDefaults?.lint?.syncGenerators ?? []).filter((g) => g !==
|
|
49
|
-
|
|
47
|
+
...(nxJson.targetDefaults?.lint?.syncGenerators ?? []).filter((g) => g !== generator_3.SYNC_GENERATOR_NAME),
|
|
48
|
+
generator_3.SYNC_GENERATOR_NAME,
|
|
50
49
|
],
|
|
51
50
|
};
|
|
52
51
|
const updatedNxJson = {
|
|
@@ -96,12 +95,10 @@ const writeLicenseCheckTarget = async (tree) => {
|
|
|
96
95
|
const addExceptionsForExistingProjects = async (tree) => {
|
|
97
96
|
const projects = (0, devkit_1.getProjects)(tree);
|
|
98
97
|
let needsMcp = false;
|
|
99
|
-
let needsAgUi = false;
|
|
100
98
|
const mcpIds = [
|
|
101
|
-
|
|
102
|
-
|
|
99
|
+
generator_2.TS_MCP_SERVER_GENERATOR_INFO.id,
|
|
100
|
+
generator_1.PY_MCP_SERVER_GENERATOR_INFO.id,
|
|
103
101
|
];
|
|
104
|
-
const pyAgentId = generator_1.PY_AGENT_GENERATOR_INFO.id;
|
|
105
102
|
for (const [, config] of projects) {
|
|
106
103
|
const components = config.metadata?.components ??
|
|
107
104
|
config.metadata?.generators ??
|
|
@@ -111,17 +108,9 @@ const addExceptionsForExistingProjects = async (tree) => {
|
|
|
111
108
|
if (typeof gen === 'string' && mcpIds.includes(gen)) {
|
|
112
109
|
needsMcp = true;
|
|
113
110
|
}
|
|
114
|
-
if (typeof gen === 'string' && gen === pyAgentId) {
|
|
115
|
-
if (comp.protocol === 'AG-UI' || comp.protocol === 'ag-ui') {
|
|
116
|
-
needsAgUi = true;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
111
|
}
|
|
120
112
|
}
|
|
121
|
-
const exceptions = [
|
|
122
|
-
...(needsMcp ? known_exceptions_1.MCP_INSPECTOR_EXCEPTIONS : []),
|
|
123
|
-
...(needsAgUi ? known_exceptions_1.AG_UI_STRANDS_EXCEPTIONS : []),
|
|
124
|
-
];
|
|
113
|
+
const exceptions = [...(needsMcp ? known_exceptions_1.MCP_INSPECTOR_EXCEPTIONS : [])];
|
|
125
114
|
if (exceptions.length > 0) {
|
|
126
115
|
await (0, config_1.ensureLicenseExceptions)(tree, exceptions);
|
|
127
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/license/generator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/license/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.MCP_INSPECTOR_EXCEPTIONS = void 0;
|
|
4
4
|
exports.MCP_INSPECTOR_EXCEPTIONS = [
|
|
5
5
|
{
|
|
6
6
|
package: '@modelcontextprotocol/inspector',
|
|
@@ -23,11 +23,4 @@ exports.MCP_INSPECTOR_EXCEPTIONS = [
|
|
|
23
23
|
spdx: 'Apache-2.0',
|
|
24
24
|
},
|
|
25
25
|
];
|
|
26
|
-
exports.AG_UI_STRANDS_EXCEPTIONS = [
|
|
27
|
-
{
|
|
28
|
-
package: 'ag_ui_strands',
|
|
29
|
-
reason: 'Part of MIT-licensed ag-ui-protocol/ag-ui repo. Wheel ships without license metadata.',
|
|
30
|
-
spdx: 'MIT',
|
|
31
|
-
},
|
|
32
|
-
];
|
|
33
26
|
//# sourceMappingURL=known-exceptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"known-exceptions.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/license/known-exceptions.ts"],"names":[],"mappings":";;;AAMa,QAAA,wBAAwB,GAA+B;IAClE;QACE,OAAO,EAAE,iCAAiC;QAC1C,MAAM,EACJ,2EAA2E;QAC7E,IAAI,EAAE,YAAY;KACnB;IACD;QACE,OAAO,EAAE,qCAAqC;QAC9C,MAAM,EACJ,2EAA2E;QAC7E,IAAI,EAAE,YAAY;KACnB;IACD;QACE,OAAO,EAAE,wCAAwC;QACjD,MAAM,EACJ,2EAA2E;QAC7E,IAAI,EAAE,YAAY;KACnB;IACD;QACE,OAAO,EAAE,wCAAwC;QACjD,MAAM,EACJ,2EAA2E;QAC7E,IAAI,EAAE,YAAY;KACnB;CACF,CAAC
|
|
1
|
+
{"version":3,"file":"known-exceptions.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/license/known-exceptions.ts"],"names":[],"mappings":";;;AAMa,QAAA,wBAAwB,GAA+B;IAClE;QACE,OAAO,EAAE,iCAAiC;QAC1C,MAAM,EACJ,2EAA2E;QAC7E,IAAI,EAAE,YAAY;KACnB;IACD;QACE,OAAO,EAAE,qCAAqC;QAC9C,MAAM,EACJ,2EAA2E;QAC7E,IAAI,EAAE,YAAY;KACnB;IACD;QACE,OAAO,EAAE,wCAAwC;QACjD,MAAM,EACJ,2EAA2E;QAC7E,IAAI,EAAE,YAAY;KACnB;IACD;QACE,OAAO,EAAE,wCAAwC;QACjD,MAAM,EACJ,2EAA2E;QAC7E,IAAI,EAAE,YAAY;KACnB;CACF,CAAC"}
|
|
@@ -6,8 +6,6 @@ exports.pyAgentGenerator = exports.PY_AGENT_GENERATOR_INFO = void 0;
|
|
|
6
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
7
|
*/
|
|
8
8
|
const devkit_1 = require("@nx/devkit");
|
|
9
|
-
const config_1 = require("../../license/config");
|
|
10
|
-
const known_exceptions_1 = require("../../license/known-exceptions");
|
|
11
9
|
const agent_chat_1 = require("../../utils/agent-chat/agent-chat");
|
|
12
10
|
const agent_connection_1 = require("../../utils/agent-connection/agent-connection");
|
|
13
11
|
const agent_core_constructs_1 = require("../../utils/agent-core-constructs/agent-core-constructs");
|
|
@@ -284,9 +282,6 @@ const pyAgentGenerator = async (tree, options) => {
|
|
|
284
282
|
protocol,
|
|
285
283
|
});
|
|
286
284
|
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.PY_AGENT_GENERATOR_INFO]);
|
|
287
|
-
if (protocol === 'ag-ui') {
|
|
288
|
-
await (0, config_1.ensureLicenseExceptions)(tree, known_exceptions_1.AG_UI_STRANDS_EXCEPTIONS);
|
|
289
|
-
}
|
|
290
285
|
await (0, format_1.formatFilesInSubtree)(tree);
|
|
291
286
|
return async () => {
|
|
292
287
|
(0, devkit_1.installPackagesTask)(tree);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/agent/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCASoB;AACpB,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/agent/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -740,6 +740,8 @@ export type ApiIntegrations<TOperation extends string, TBaseIntegration> =
|
|
|
740
740
|
* @template TDefaultIntegrationProps - Type for default integration properties
|
|
741
741
|
* @template TDefaultIntegration - Type for default integration implementation
|
|
742
742
|
* @template TPattern - The integration pattern ('shared' or 'isolated')
|
|
743
|
+
* @template TOverridden - Union of operation names that have been overridden
|
|
744
|
+
* @template TOperationOptioned - Union of operation names with per-operation options
|
|
743
745
|
*/
|
|
744
746
|
export class IntegrationBuilder<
|
|
745
747
|
TOperation extends string,
|
|
@@ -748,6 +750,8 @@ export class IntegrationBuilder<
|
|
|
748
750
|
TDefaultIntegrationProps extends object,
|
|
749
751
|
TDefaultIntegration extends TBaseIntegration,
|
|
750
752
|
TPattern extends 'shared' | 'isolated',
|
|
753
|
+
TOverridden extends string = never,
|
|
754
|
+
TOperationOptioned extends string = never,
|
|
751
755
|
> {
|
|
752
756
|
/** Options for the integration builder */
|
|
753
757
|
private options: IntegrationBuilderProps<
|
|
@@ -760,6 +764,11 @@ export class IntegrationBuilder<
|
|
|
760
764
|
/** Map of operation names to their custom integrations */
|
|
761
765
|
private integrations: Partial<TIntegrations> = {};
|
|
762
766
|
|
|
767
|
+
/** Map of default integration keys to per-operation default option overrides */
|
|
768
|
+
private perOperationOptions: Partial<
|
|
769
|
+
Record<string, Partial<TDefaultIntegrationProps>>
|
|
770
|
+
> = {};
|
|
771
|
+
|
|
763
772
|
/**
|
|
764
773
|
* Create an Integration Builder for an HTTP API with a shared pattern
|
|
765
774
|
*/
|
|
@@ -914,11 +923,16 @@ export class IntegrationBuilder<
|
|
|
914
923
|
/**
|
|
915
924
|
* Overrides default integrations with custom implementations for specific operations.
|
|
916
925
|
*
|
|
926
|
+
* Operations which have per-operation options set via withOperationOptions cannot be
|
|
927
|
+
* overridden, since these still use the default integration.
|
|
928
|
+
*
|
|
917
929
|
* @param overrides - Map of operation names to their custom integration implementations
|
|
918
930
|
* @returns The builder instance with updated type information reflecting the overrides
|
|
919
931
|
*/
|
|
920
932
|
public withOverrides<
|
|
921
|
-
TOverrideIntegrations extends Partial<
|
|
933
|
+
TOverrideIntegrations extends Partial<
|
|
934
|
+
Record<Exclude<TOperation, TOperationOptioned>, TBaseIntegration>
|
|
935
|
+
>,
|
|
922
936
|
>(overrides: TOverrideIntegrations) {
|
|
923
937
|
this.integrations = { ...this.integrations, ...overrides };
|
|
924
938
|
// Re-type to include the overridden integration types.
|
|
@@ -934,7 +948,9 @@ export class IntegrationBuilder<
|
|
|
934
948
|
MergedIntegrations,
|
|
935
949
|
TDefaultIntegrationProps,
|
|
936
950
|
TDefaultIntegration,
|
|
937
|
-
TPattern
|
|
951
|
+
TPattern,
|
|
952
|
+
TOverridden | Extract<keyof TOverrideIntegrations, string>,
|
|
953
|
+
TOperationOptioned
|
|
938
954
|
>;
|
|
939
955
|
}
|
|
940
956
|
|
|
@@ -953,6 +969,43 @@ export class IntegrationBuilder<
|
|
|
953
969
|
return this;
|
|
954
970
|
}
|
|
955
971
|
|
|
972
|
+
/**
|
|
973
|
+
* Updates the default integration options for specific operations, without
|
|
974
|
+
* affecting the others. The given options are merged with the defaults (and
|
|
975
|
+
* any options set via withDefaultOptions) when building each default integration.
|
|
976
|
+
*
|
|
977
|
+
* Operations which have been replaced via withOverrides cannot be targeted, since
|
|
978
|
+
* they no longer use the default integration.
|
|
979
|
+
*
|
|
980
|
+
* @param options - Map of operation names to partial default integration options
|
|
981
|
+
* @returns The builder instance
|
|
982
|
+
*/
|
|
983
|
+
public withOperationOptions<
|
|
984
|
+
TOptions extends Partial<
|
|
985
|
+
Record<
|
|
986
|
+
Exclude<DefaultIntegrationKeys<TPattern, TOperation>, TOverridden>,
|
|
987
|
+
Partial<TDefaultIntegrationProps>
|
|
988
|
+
>
|
|
989
|
+
>,
|
|
990
|
+
>(options: TOptions) {
|
|
991
|
+
Object.entries(options).forEach(([op, opOptions]) => {
|
|
992
|
+
this.perOperationOptions[op] = {
|
|
993
|
+
...this.perOperationOptions[op],
|
|
994
|
+
...(opOptions as Partial<TDefaultIntegrationProps>),
|
|
995
|
+
};
|
|
996
|
+
});
|
|
997
|
+
return this as unknown as IntegrationBuilder<
|
|
998
|
+
TOperation,
|
|
999
|
+
TBaseIntegration,
|
|
1000
|
+
TIntegrations,
|
|
1001
|
+
TDefaultIntegrationProps,
|
|
1002
|
+
TDefaultIntegration,
|
|
1003
|
+
TPattern,
|
|
1004
|
+
TOverridden,
|
|
1005
|
+
TOperationOptioned | Extract<keyof TOptions, string>
|
|
1006
|
+
>;
|
|
1007
|
+
}
|
|
1008
|
+
|
|
956
1009
|
/**
|
|
957
1010
|
* Builds and returns the complete set of integrations.
|
|
958
1011
|
*
|
|
@@ -967,6 +1020,10 @@ export class IntegrationBuilder<
|
|
|
967
1020
|
*/
|
|
968
1021
|
public build(): TIntegrations {
|
|
969
1022
|
const options = this.options;
|
|
1023
|
+
const buildOptionsFor = (op: string): TDefaultIntegrationProps => ({
|
|
1024
|
+
...options.defaultIntegrationOptions,
|
|
1025
|
+
...this.perOperationOptions[op],
|
|
1026
|
+
});
|
|
970
1027
|
return {
|
|
971
1028
|
...Object.fromEntries(
|
|
972
1029
|
options.pattern === 'shared'
|
|
@@ -975,7 +1032,7 @@ export class IntegrationBuilder<
|
|
|
975
1032
|
'$router',
|
|
976
1033
|
options.buildDefaultIntegration(
|
|
977
1034
|
'$router',
|
|
978
|
-
|
|
1035
|
+
buildOptionsFor('$router'),
|
|
979
1036
|
),
|
|
980
1037
|
],
|
|
981
1038
|
]
|
|
@@ -986,10 +1043,7 @@ export class IntegrationBuilder<
|
|
|
986
1043
|
)
|
|
987
1044
|
.map((op) => [
|
|
988
1045
|
op,
|
|
989
|
-
options.buildDefaultIntegration(
|
|
990
|
-
op,
|
|
991
|
-
options.defaultIntegrationOptions,
|
|
992
|
-
),
|
|
1046
|
+
options.buildDefaultIntegration(op, buildOptionsFor(op)),
|
|
993
1047
|
]),
|
|
994
1048
|
),
|
|
995
1049
|
...this.integrations,
|
|
@@ -1639,6 +1693,8 @@ export type ApiIntegrations<TOperation extends string, TBaseIntegration> =
|
|
|
1639
1693
|
* @template TDefaultIntegrationProps - Type for default integration properties
|
|
1640
1694
|
* @template TDefaultIntegration - Type for default integration implementation
|
|
1641
1695
|
* @template TPattern - The integration pattern ('shared' or 'isolated')
|
|
1696
|
+
* @template TOverridden - Union of operation names that have been overridden
|
|
1697
|
+
* @template TOperationOptioned - Union of operation names with per-operation options
|
|
1642
1698
|
*/
|
|
1643
1699
|
export class IntegrationBuilder<
|
|
1644
1700
|
TOperation extends string,
|
|
@@ -1647,6 +1703,8 @@ export class IntegrationBuilder<
|
|
|
1647
1703
|
TDefaultIntegrationProps extends object,
|
|
1648
1704
|
TDefaultIntegration extends TBaseIntegration,
|
|
1649
1705
|
TPattern extends 'shared' | 'isolated',
|
|
1706
|
+
TOverridden extends string = never,
|
|
1707
|
+
TOperationOptioned extends string = never,
|
|
1650
1708
|
> {
|
|
1651
1709
|
/** Options for the integration builder */
|
|
1652
1710
|
private options: IntegrationBuilderProps<
|
|
@@ -1659,6 +1717,11 @@ export class IntegrationBuilder<
|
|
|
1659
1717
|
/** Map of operation names to their custom integrations */
|
|
1660
1718
|
private integrations: Partial<TIntegrations> = {};
|
|
1661
1719
|
|
|
1720
|
+
/** Map of default integration keys to per-operation default option overrides */
|
|
1721
|
+
private perOperationOptions: Partial<
|
|
1722
|
+
Record<string, Partial<TDefaultIntegrationProps>>
|
|
1723
|
+
> = {};
|
|
1724
|
+
|
|
1662
1725
|
/**
|
|
1663
1726
|
* Create an Integration Builder for an HTTP API with a shared pattern
|
|
1664
1727
|
*/
|
|
@@ -1813,11 +1876,16 @@ export class IntegrationBuilder<
|
|
|
1813
1876
|
/**
|
|
1814
1877
|
* Overrides default integrations with custom implementations for specific operations.
|
|
1815
1878
|
*
|
|
1879
|
+
* Operations which have per-operation options set via withOperationOptions cannot be
|
|
1880
|
+
* overridden, since these still use the default integration.
|
|
1881
|
+
*
|
|
1816
1882
|
* @param overrides - Map of operation names to their custom integration implementations
|
|
1817
1883
|
* @returns The builder instance with updated type information reflecting the overrides
|
|
1818
1884
|
*/
|
|
1819
1885
|
public withOverrides<
|
|
1820
|
-
TOverrideIntegrations extends Partial<
|
|
1886
|
+
TOverrideIntegrations extends Partial<
|
|
1887
|
+
Record<Exclude<TOperation, TOperationOptioned>, TBaseIntegration>
|
|
1888
|
+
>,
|
|
1821
1889
|
>(overrides: TOverrideIntegrations) {
|
|
1822
1890
|
this.integrations = { ...this.integrations, ...overrides };
|
|
1823
1891
|
// Re-type to include the overridden integration types.
|
|
@@ -1833,7 +1901,9 @@ export class IntegrationBuilder<
|
|
|
1833
1901
|
MergedIntegrations,
|
|
1834
1902
|
TDefaultIntegrationProps,
|
|
1835
1903
|
TDefaultIntegration,
|
|
1836
|
-
TPattern
|
|
1904
|
+
TPattern,
|
|
1905
|
+
TOverridden | Extract<keyof TOverrideIntegrations, string>,
|
|
1906
|
+
TOperationOptioned
|
|
1837
1907
|
>;
|
|
1838
1908
|
}
|
|
1839
1909
|
|
|
@@ -1852,6 +1922,43 @@ export class IntegrationBuilder<
|
|
|
1852
1922
|
return this;
|
|
1853
1923
|
}
|
|
1854
1924
|
|
|
1925
|
+
/**
|
|
1926
|
+
* Updates the default integration options for specific operations, without
|
|
1927
|
+
* affecting the others. The given options are merged with the defaults (and
|
|
1928
|
+
* any options set via withDefaultOptions) when building each default integration.
|
|
1929
|
+
*
|
|
1930
|
+
* Operations which have been replaced via withOverrides cannot be targeted, since
|
|
1931
|
+
* they no longer use the default integration.
|
|
1932
|
+
*
|
|
1933
|
+
* @param options - Map of operation names to partial default integration options
|
|
1934
|
+
* @returns The builder instance
|
|
1935
|
+
*/
|
|
1936
|
+
public withOperationOptions<
|
|
1937
|
+
TOptions extends Partial<
|
|
1938
|
+
Record<
|
|
1939
|
+
Exclude<DefaultIntegrationKeys<TPattern, TOperation>, TOverridden>,
|
|
1940
|
+
Partial<TDefaultIntegrationProps>
|
|
1941
|
+
>
|
|
1942
|
+
>,
|
|
1943
|
+
>(options: TOptions) {
|
|
1944
|
+
Object.entries(options).forEach(([op, opOptions]) => {
|
|
1945
|
+
this.perOperationOptions[op] = {
|
|
1946
|
+
...this.perOperationOptions[op],
|
|
1947
|
+
...(opOptions as Partial<TDefaultIntegrationProps>),
|
|
1948
|
+
};
|
|
1949
|
+
});
|
|
1950
|
+
return this as unknown as IntegrationBuilder<
|
|
1951
|
+
TOperation,
|
|
1952
|
+
TBaseIntegration,
|
|
1953
|
+
TIntegrations,
|
|
1954
|
+
TDefaultIntegrationProps,
|
|
1955
|
+
TDefaultIntegration,
|
|
1956
|
+
TPattern,
|
|
1957
|
+
TOverridden,
|
|
1958
|
+
TOperationOptioned | Extract<keyof TOptions, string>
|
|
1959
|
+
>;
|
|
1960
|
+
}
|
|
1961
|
+
|
|
1855
1962
|
/**
|
|
1856
1963
|
* Builds and returns the complete set of integrations.
|
|
1857
1964
|
*
|
|
@@ -1866,6 +1973,10 @@ export class IntegrationBuilder<
|
|
|
1866
1973
|
*/
|
|
1867
1974
|
public build(): TIntegrations {
|
|
1868
1975
|
const options = this.options;
|
|
1976
|
+
const buildOptionsFor = (op: string): TDefaultIntegrationProps => ({
|
|
1977
|
+
...options.defaultIntegrationOptions,
|
|
1978
|
+
...this.perOperationOptions[op],
|
|
1979
|
+
});
|
|
1869
1980
|
return {
|
|
1870
1981
|
...Object.fromEntries(
|
|
1871
1982
|
options.pattern === 'shared'
|
|
@@ -1874,7 +1985,7 @@ export class IntegrationBuilder<
|
|
|
1874
1985
|
'$router',
|
|
1875
1986
|
options.buildDefaultIntegration(
|
|
1876
1987
|
'$router',
|
|
1877
|
-
|
|
1988
|
+
buildOptionsFor('$router'),
|
|
1878
1989
|
),
|
|
1879
1990
|
],
|
|
1880
1991
|
]
|
|
@@ -1885,10 +1996,7 @@ export class IntegrationBuilder<
|
|
|
1885
1996
|
)
|
|
1886
1997
|
.map((op) => [
|
|
1887
1998
|
op,
|
|
1888
|
-
options.buildDefaultIntegration(
|
|
1889
|
-
op,
|
|
1890
|
-
options.defaultIntegrationOptions,
|
|
1891
|
-
),
|
|
1999
|
+
options.buildDefaultIntegration(op, buildOptionsFor(op)),
|
|
1892
2000
|
]),
|
|
1893
2001
|
),
|
|
1894
2002
|
...this.integrations,
|