@aws-amplify/graphql-api-construct 1.4.1 → 1.4.3
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/.jsii +384 -253
- package/API.md +16 -4
- package/CHANGELOG.md +12 -0
- package/lib/amplify-dynamodb-table-wrapper.js +1 -1
- package/lib/amplify-graphql-api.d.ts +1 -1
- package/lib/amplify-graphql-api.js +16 -5
- package/lib/amplify-graphql-definition.d.ts +4 -3
- package/lib/amplify-graphql-definition.js +8 -16
- package/lib/index.d.ts +3 -1
- package/lib/index.js +19 -2
- package/lib/internal/data-source-config.d.ts +21 -2
- package/lib/internal/data-source-config.js +72 -33
- package/lib/internal/model-type-name.d.ts +2 -2
- package/lib/internal/model-type-name.js +4 -4
- package/lib/model-datasource-strategy.d.ts +116 -0
- package/lib/model-datasource-strategy.js +10 -0
- package/lib/sql-model-datasource-strategy.d.ts +1 -1
- package/lib/sql-model-datasource-strategy.js +5 -1
- package/lib/types.d.ts +16 -124
- package/lib/types.js +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +10 -10
- package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +7 -7
- package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-function-transformer/package.json +6 -6
- package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-http-transformer/package.json +6 -6
- package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-index-transformer/package.json +7 -7
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +10 -10
- package/node_modules/@aws-amplify/graphql-model-transformer/API.md +16 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +12 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/index.d.ts +1 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/index.js +3 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts +4 -2
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js +30 -86
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resolvers/rds/resolver.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts +2 -3
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js +36 -18
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/rds-model-resource-generator.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/package.json +6 -6
- package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +6 -6
- package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +10 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +8 -8
- package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +8 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +7 -7
- package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +10 -0
- package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.js +15 -1
- package/node_modules/@aws-amplify/graphql-sql-transformer/lib/graphql-sql-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +7 -7
- package/node_modules/@aws-amplify/graphql-transformer/API.md +3 -1
- package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +10 -0
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts +2 -1
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js +2 -1
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/package.json +15 -15
- package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +4 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/API.md +35 -5
- package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +12 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js +19 -13
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js +20 -2
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/types.d.ts +2 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/types.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts +24 -6
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js +16 -14
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/stack-manager.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/stack-manager.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/graphql-utils.d.ts +14 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/graphql-utils.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/graphql-utils.js +23 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/graphql-utils.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts +2 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js +16 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.d.ts +11 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.js +84 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/model-datasource-strategy-utils.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/package.json +4 -4
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +89 -5
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +6 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts +0 -17
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/graphql-api-provider.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.d.ts +2 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.js +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/index.d.ts +2 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/index.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/index.js +18 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/index.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts +55 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js +3 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/model-datasource/types.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transform-host-provider.d.ts +2 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transform-host-provider.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-provider.d.ts +6 -4
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-provider.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +3 -2
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/graphql-api-provider.ts +1 -41
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/index.ts +1 -4
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/model-datasource/index.ts +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/model-datasource/types.ts +163 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transform-host-provider.ts +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/index.ts +4 -3
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-context-provider.ts +6 -7
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-datasource-provider.ts +2 -2
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
- package/node_modules/graphql-transformer-common/API.md +11 -4
- package/node_modules/graphql-transformer-common/CHANGELOG.md +6 -0
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts +11 -4
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts.map +1 -1
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.js +11 -4
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.js.map +1 -1
- package/node_modules/graphql-transformer-common/package.json +2 -3
- package/package.json +17 -17
- package/src/amplify-graphql-api.ts +20 -5
- package/src/amplify-graphql-definition.ts +8 -15
- package/src/index.ts +3 -11
- package/src/internal/data-source-config.ts +89 -35
- package/src/internal/model-type-name.ts +3 -3
- package/src/model-datasource-strategy.ts +149 -0
- package/src/sql-model-datasource-strategy.ts +1 -1
- package/src/types.ts +17 -151
- /package/node_modules/{graphql-transformer-common → @aws-amplify/graphql-transformer-interfaces}/LICENSE +0 -0
|
@@ -1,36 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseDataSourceConfig = void 0;
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
if (dataSourceStrategy.dbType === 'DYNAMODB') {
|
|
8
|
-
switch (dataSourceStrategy.provisionStrategy) {
|
|
9
|
-
case 'DEFAULT':
|
|
10
|
-
return {
|
|
11
|
-
dbType: 'DDB',
|
|
12
|
-
provisionDB: true,
|
|
13
|
-
provisionStrategy: "DEFAULT" /* DynamoDBProvisionStrategy.DEFAULT */,
|
|
14
|
-
};
|
|
15
|
-
case 'AMPLIFY_TABLE':
|
|
16
|
-
return {
|
|
17
|
-
dbType: 'DDB',
|
|
18
|
-
provisionDB: true,
|
|
19
|
-
provisionStrategy: "AMPLIFY_TABLE" /* DynamoDBProvisionStrategy.AMPLIFY_TABLE */,
|
|
20
|
-
};
|
|
21
|
-
default:
|
|
22
|
-
throw new Error(`Encountered unexpected provision strategy: ${dataSourceStrategy.provisionStrategy}`);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
else if (dataSourceStrategy.dbType === 'MYSQL' || dataSourceStrategy.dbType === 'POSTGRES') {
|
|
26
|
-
return {
|
|
27
|
-
dbType: convertSQLDBType(dataSourceStrategy.dbType),
|
|
28
|
-
provisionDB: false,
|
|
29
|
-
provisionStrategy: "DEFAULT" /* SQLLambdaModelProvisionStrategy.DEFAULT */,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
throw new Error(`Encountered unexpected database type ${dataSourceStrategy.dbType}`);
|
|
33
|
-
};
|
|
3
|
+
exports.mapInterfaceCustomSqlStrategiesToImplementationStrategies = exports.constructCustomSqlDataSourceStrategies = exports.parseDataSourceConfig = void 0;
|
|
4
|
+
const graphql_1 = require("graphql");
|
|
5
|
+
const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-core");
|
|
6
|
+
const utils_1 = require("@aws-amplify/graphql-transformer-core/lib/utils");
|
|
34
7
|
/**
|
|
35
8
|
* An internal helper to convert from a map of model-to-ModelDataSourceStrategies to the map of model-to-DataSourceTypes that internal
|
|
36
9
|
* transform processing requires. TODO: We can remove this once we refactor the internals to use ModelDataSourceStrategies natively.
|
|
@@ -38,7 +11,7 @@ const convertToDataSourceType = (dataSourceStrategy) => {
|
|
|
38
11
|
const parseDataSourceConfig = (dataSourceDefinitionMap) => {
|
|
39
12
|
const modelToDatasourceMap = new Map();
|
|
40
13
|
for (const [key, value] of Object.entries(dataSourceDefinitionMap)) {
|
|
41
|
-
const dataSourceType =
|
|
14
|
+
const dataSourceType = (0, graphql_transformer_core_1.dataSourceStrategyToDataSourceType)(value);
|
|
42
15
|
modelToDatasourceMap.set(key, dataSourceType);
|
|
43
16
|
}
|
|
44
17
|
return {
|
|
@@ -46,4 +19,70 @@ const parseDataSourceConfig = (dataSourceDefinitionMap) => {
|
|
|
46
19
|
};
|
|
47
20
|
};
|
|
48
21
|
exports.parseDataSourceConfig = parseDataSourceConfig;
|
|
49
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Creates an interface flavor of customSqlDataSourceStrategies from a factory method's schema and data source. Internally, this function
|
|
24
|
+
* scans the fields of `Query` and `Mutation` looking for fields annotated with the `@sql` directive and designates the specified
|
|
25
|
+
* dataSourceStrategy to fulfill those custom queries.
|
|
26
|
+
*
|
|
27
|
+
* Note that we do not scan for `Subscription` fields: `@sql` directives are not allowed on those, and it wouldn't make sense to do so
|
|
28
|
+
* anyway, since subscriptions are processed from an incoming Mutation, not as the result of a direct datasource access.
|
|
29
|
+
*
|
|
30
|
+
* TODO: Reword this when we refactor to use Strategies throughout the implementation rather than DataSources.
|
|
31
|
+
*/
|
|
32
|
+
const constructCustomSqlDataSourceStrategies = (schema, dataSourceStrategy) => {
|
|
33
|
+
if (!(0, graphql_transformer_core_1.isSqlStrategy)(dataSourceStrategy)) {
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
const parsedSchema = (0, graphql_1.parse)(schema);
|
|
37
|
+
const queryNode = parsedSchema.definitions.find(graphql_transformer_core_1.isQueryNode);
|
|
38
|
+
const mutationNode = parsedSchema.definitions.find(graphql_transformer_core_1.isMutationNode);
|
|
39
|
+
if (!queryNode && !mutationNode) {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
const customSqlDataSourceStrategies = [];
|
|
43
|
+
if (queryNode) {
|
|
44
|
+
const fields = (0, graphql_transformer_core_1.fieldsWithSqlDirective)(queryNode);
|
|
45
|
+
for (const field of fields) {
|
|
46
|
+
customSqlDataSourceStrategies.push({
|
|
47
|
+
typeName: 'Query',
|
|
48
|
+
fieldName: field.name.value,
|
|
49
|
+
strategy: dataSourceStrategy,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (mutationNode) {
|
|
54
|
+
const fields = (0, graphql_transformer_core_1.fieldsWithSqlDirective)(mutationNode);
|
|
55
|
+
for (const field of fields) {
|
|
56
|
+
customSqlDataSourceStrategies.push({
|
|
57
|
+
typeName: 'Mutation',
|
|
58
|
+
fieldName: field.name.value,
|
|
59
|
+
strategy: dataSourceStrategy,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return customSqlDataSourceStrategies;
|
|
64
|
+
};
|
|
65
|
+
exports.constructCustomSqlDataSourceStrategies = constructCustomSqlDataSourceStrategies;
|
|
66
|
+
/**
|
|
67
|
+
* We currently use a different type structure to model strategies in the interface than we do in the implementation. This maps the
|
|
68
|
+
* interface CustomSqlDataSourceStrategy (which uses SQLLambdaModelDataSourceStrategy) to the implementation flavor (which uses
|
|
69
|
+
* DataSourceType).
|
|
70
|
+
*
|
|
71
|
+
* TODO: Remove this once we refactor the internals to use strategies rather than DataSourceTypes
|
|
72
|
+
*/
|
|
73
|
+
const mapInterfaceCustomSqlStrategiesToImplementationStrategies = (strategies) => {
|
|
74
|
+
if (!strategies) {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
return strategies.map((interfaceStrategy) => ({
|
|
78
|
+
fieldName: interfaceStrategy.fieldName,
|
|
79
|
+
typeName: interfaceStrategy.typeName,
|
|
80
|
+
dataSourceType: {
|
|
81
|
+
dbType: (0, utils_1.normalizeDbType)(interfaceStrategy.strategy.dbType),
|
|
82
|
+
provisionDB: false,
|
|
83
|
+
provisionStrategy: "DEFAULT" /* SQLLambdaModelProvisionStrategy.DEFAULT */,
|
|
84
|
+
},
|
|
85
|
+
}));
|
|
86
|
+
};
|
|
87
|
+
exports.mapInterfaceCustomSqlStrategiesToImplementationStrategies = mapInterfaceCustomSqlStrategiesToImplementationStrategies;
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL2RhdGEtc291cmNlLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBZ0M7QUFNaEMsb0ZBTStDO0FBQy9DLDJFQUFrRjtBQU9sRjs7O0dBR0c7QUFDSSxNQUFNLHFCQUFxQixHQUFHLENBQUMsdUJBQWdFLEVBQW9CLEVBQUU7SUFDMUgsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztJQUMvRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO1FBQ2xFLE1BQU0sY0FBYyxHQUFHLElBQUEsNkRBQWtDLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsb0JBQW9CLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztLQUMvQztJQUNELE9BQU87UUFDTCxvQkFBb0I7S0FDckIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVRXLFFBQUEscUJBQXFCLHlCQVNoQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNJLE1BQU0sc0NBQXNDLEdBQUcsQ0FDcEQsTUFBYyxFQUNkLGtCQUEyQyxFQUNILEVBQUU7SUFDMUMsSUFBSSxDQUFDLElBQUEsd0NBQWEsRUFBQyxrQkFBa0IsQ0FBQyxFQUFFO1FBQ3RDLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxNQUFNLFlBQVksR0FBRyxJQUFBLGVBQUssRUFBQyxNQUFNLENBQUMsQ0FBQztJQUVuQyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxzQ0FBVyxDQUFDLENBQUM7SUFDN0QsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMseUNBQWMsQ0FBQyxDQUFDO0lBQ25FLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDL0IsT0FBTyxFQUFFLENBQUM7S0FDWDtJQUVELE1BQU0sNkJBQTZCLEdBQTJDLEVBQUUsQ0FBQztJQUVqRixJQUFJLFNBQVMsRUFBRTtRQUNiLE1BQU0sTUFBTSxHQUFHLElBQUEsaURBQXNCLEVBQUMsU0FBUyxDQUFDLENBQUM7UUFDakQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDMUIsNkJBQTZCLENBQUMsSUFBSSxDQUFDO2dCQUNqQyxRQUFRLEVBQUUsT0FBTztnQkFDakIsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSztnQkFDM0IsUUFBUSxFQUFFLGtCQUFrQjthQUM3QixDQUFDLENBQUM7U0FDSjtLQUNGO0lBRUQsSUFBSSxZQUFZLEVBQUU7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBQSxpREFBc0IsRUFBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtZQUMxQiw2QkFBNkIsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pDLFFBQVEsRUFBRSxVQUFVO2dCQUNwQixTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLO2dCQUMzQixRQUFRLEVBQUUsa0JBQWtCO2FBQzdCLENBQUMsQ0FBQztTQUNKO0tBQ0Y7SUFFRCxPQUFPLDZCQUE2QixDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQXpDVyxRQUFBLHNDQUFzQywwQ0F5Q2pEO0FBRUY7Ozs7OztHQU1HO0FBQ0ksTUFBTSx5REFBeUQsR0FBRyxDQUN2RSxVQUFtRCxFQUNOLEVBQUU7SUFDL0MsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUNmLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsU0FBUztRQUN0QyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsUUFBUTtRQUNwQyxjQUFjLEVBQUU7WUFDZCxNQUFNLEVBQUUsSUFBQSx1QkFBZSxFQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDMUQsV0FBVyxFQUFFLEtBQUs7WUFDbEIsaUJBQWlCLHlEQUF5QztTQUMzRDtLQUNGLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBZlcsUUFBQSx5REFBeUQsNkRBZXBFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2UgfSBmcm9tICdncmFwaHFsJztcbmltcG9ydCB7XG4gIEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneSBhcyBJbXBsZW1lbnRhdGlvbkN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneSxcbiAgRGF0YVNvdXJjZVR5cGUsXG4gIFNRTExhbWJkYU1vZGVsUHJvdmlzaW9uU3RyYXRlZ3ksXG59IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyLWludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgZGF0YVNvdXJjZVN0cmF0ZWd5VG9EYXRhU291cmNlVHlwZSxcbiAgaXNTcWxTdHJhdGVneSxcbiAgaXNRdWVyeU5vZGUsXG4gIGlzTXV0YXRpb25Ob2RlLFxuICBmaWVsZHNXaXRoU3FsRGlyZWN0aXZlLFxufSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lci1jb3JlJztcbmltcG9ydCB7IG5vcm1hbGl6ZURiVHlwZSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyLWNvcmUvbGliL3V0aWxzJztcbmltcG9ydCB7IEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneSBhcyBJbnRlcmZhY2VDdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ3ksIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IH0gZnJvbSAnLi4vbW9kZWwtZGF0YXNvdXJjZS1zdHJhdGVneSc7XG5cbnR5cGUgRGF0YVNvdXJjZUNvbmZpZyA9IHtcbiAgbW9kZWxUb0RhdGFzb3VyY2VNYXA6IE1hcDxzdHJpbmcsIERhdGFTb3VyY2VUeXBlPjtcbn07XG5cbi8qKlxuICogQW4gaW50ZXJuYWwgaGVscGVyIHRvIGNvbnZlcnQgZnJvbSBhIG1hcCBvZiBtb2RlbC10by1Nb2RlbERhdGFTb3VyY2VTdHJhdGVnaWVzIHRvIHRoZSBtYXAgb2YgbW9kZWwtdG8tRGF0YVNvdXJjZVR5cGVzIHRoYXQgaW50ZXJuYWxcbiAqIHRyYW5zZm9ybSBwcm9jZXNzaW5nIHJlcXVpcmVzLiBUT0RPOiBXZSBjYW4gcmVtb3ZlIHRoaXMgb25jZSB3ZSByZWZhY3RvciB0aGUgaW50ZXJuYWxzIHRvIHVzZSBNb2RlbERhdGFTb3VyY2VTdHJhdGVnaWVzIG5hdGl2ZWx5LlxuICovXG5leHBvcnQgY29uc3QgcGFyc2VEYXRhU291cmNlQ29uZmlnID0gKGRhdGFTb3VyY2VEZWZpbml0aW9uTWFwOiBSZWNvcmQ8c3RyaW5nLCBNb2RlbERhdGFTb3VyY2VTdHJhdGVneT4pOiBEYXRhU291cmNlQ29uZmlnID0+IHtcbiAgY29uc3QgbW9kZWxUb0RhdGFzb3VyY2VNYXAgPSBuZXcgTWFwPHN0cmluZywgRGF0YVNvdXJjZVR5cGU+KCk7XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGRhdGFTb3VyY2VEZWZpbml0aW9uTWFwKSkge1xuICAgIGNvbnN0IGRhdGFTb3VyY2VUeXBlID0gZGF0YVNvdXJjZVN0cmF0ZWd5VG9EYXRhU291cmNlVHlwZSh2YWx1ZSk7XG4gICAgbW9kZWxUb0RhdGFzb3VyY2VNYXAuc2V0KGtleSwgZGF0YVNvdXJjZVR5cGUpO1xuICB9XG4gIHJldHVybiB7XG4gICAgbW9kZWxUb0RhdGFzb3VyY2VNYXAsXG4gIH07XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gaW50ZXJmYWNlIGZsYXZvciBvZiBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcyBmcm9tIGEgZmFjdG9yeSBtZXRob2QncyBzY2hlbWEgYW5kIGRhdGEgc291cmNlLiBJbnRlcm5hbGx5LCB0aGlzIGZ1bmN0aW9uXG4gKiBzY2FucyB0aGUgZmllbGRzIG9mIGBRdWVyeWAgYW5kIGBNdXRhdGlvbmAgbG9va2luZyBmb3IgZmllbGRzIGFubm90YXRlZCB3aXRoIHRoZSBgQHNxbGAgZGlyZWN0aXZlIGFuZCBkZXNpZ25hdGVzIHRoZSBzcGVjaWZpZWRcbiAqIGRhdGFTb3VyY2VTdHJhdGVneSB0byBmdWxmaWxsIHRob3NlIGN1c3RvbSBxdWVyaWVzLlxuICpcbiAqIE5vdGUgdGhhdCB3ZSBkbyBub3Qgc2NhbiBmb3IgYFN1YnNjcmlwdGlvbmAgZmllbGRzOiBgQHNxbGAgZGlyZWN0aXZlcyBhcmUgbm90IGFsbG93ZWQgb24gdGhvc2UsIGFuZCBpdCB3b3VsZG4ndCBtYWtlIHNlbnNlIHRvIGRvIHNvXG4gKiBhbnl3YXksIHNpbmNlIHN1YnNjcmlwdGlvbnMgYXJlIHByb2Nlc3NlZCBmcm9tIGFuIGluY29taW5nIE11dGF0aW9uLCBub3QgYXMgdGhlIHJlc3VsdCBvZiBhIGRpcmVjdCBkYXRhc291cmNlIGFjY2Vzcy5cbiAqXG4gKiBUT0RPOiBSZXdvcmQgdGhpcyB3aGVuIHdlIHJlZmFjdG9yIHRvIHVzZSBTdHJhdGVnaWVzIHRocm91Z2hvdXQgdGhlIGltcGxlbWVudGF0aW9uIHJhdGhlciB0aGFuIERhdGFTb3VyY2VzLlxuICovXG5leHBvcnQgY29uc3QgY29uc3RydWN0Q3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWdpZXMgPSAoXG4gIHNjaGVtYTogc3RyaW5nLFxuICBkYXRhU291cmNlU3RyYXRlZ3k6IE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LFxuKTogSW50ZXJmYWNlQ3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5W10gPT4ge1xuICBpZiAoIWlzU3FsU3RyYXRlZ3koZGF0YVNvdXJjZVN0cmF0ZWd5KSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHBhcnNlZFNjaGVtYSA9IHBhcnNlKHNjaGVtYSk7XG5cbiAgY29uc3QgcXVlcnlOb2RlID0gcGFyc2VkU2NoZW1hLmRlZmluaXRpb25zLmZpbmQoaXNRdWVyeU5vZGUpO1xuICBjb25zdCBtdXRhdGlvbk5vZGUgPSBwYXJzZWRTY2hlbWEuZGVmaW5pdGlvbnMuZmluZChpc011dGF0aW9uTm9kZSk7XG4gIGlmICghcXVlcnlOb2RlICYmICFtdXRhdGlvbk5vZGUpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llczogSW50ZXJmYWNlQ3VzdG9tU3FsRGF0YVNvdXJjZVN0cmF0ZWd5W10gPSBbXTtcblxuICBpZiAocXVlcnlOb2RlKSB7XG4gICAgY29uc3QgZmllbGRzID0gZmllbGRzV2l0aFNxbERpcmVjdGl2ZShxdWVyeU5vZGUpO1xuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICBjdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ2llcy5wdXNoKHtcbiAgICAgICAgdHlwZU5hbWU6ICdRdWVyeScsXG4gICAgICAgIGZpZWxkTmFtZTogZmllbGQubmFtZS52YWx1ZSxcbiAgICAgICAgc3RyYXRlZ3k6IGRhdGFTb3VyY2VTdHJhdGVneSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlmIChtdXRhdGlvbk5vZGUpIHtcbiAgICBjb25zdCBmaWVsZHMgPSBmaWVsZHNXaXRoU3FsRGlyZWN0aXZlKG11dGF0aW9uTm9kZSk7XG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzLnB1c2goe1xuICAgICAgICB0eXBlTmFtZTogJ011dGF0aW9uJyxcbiAgICAgICAgZmllbGROYW1lOiBmaWVsZC5uYW1lLnZhbHVlLFxuICAgICAgICBzdHJhdGVneTogZGF0YVNvdXJjZVN0cmF0ZWd5LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVnaWVzO1xufTtcblxuLyoqXG4gKiBXZSBjdXJyZW50bHkgdXNlIGEgZGlmZmVyZW50IHR5cGUgc3RydWN0dXJlIHRvIG1vZGVsIHN0cmF0ZWdpZXMgaW4gdGhlIGludGVyZmFjZSB0aGFuIHdlIGRvIGluIHRoZSBpbXBsZW1lbnRhdGlvbi4gVGhpcyBtYXBzIHRoZVxuICogaW50ZXJmYWNlIEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneSAod2hpY2ggdXNlcyBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSkgdG8gdGhlIGltcGxlbWVudGF0aW9uIGZsYXZvciAod2hpY2ggdXNlc1xuICogRGF0YVNvdXJjZVR5cGUpLlxuICpcbiAqIFRPRE86IFJlbW92ZSB0aGlzIG9uY2Ugd2UgcmVmYWN0b3IgdGhlIGludGVybmFscyB0byB1c2Ugc3RyYXRlZ2llcyByYXRoZXIgdGhhbiBEYXRhU291cmNlVHlwZXNcbiAqL1xuZXhwb3J0IGNvbnN0IG1hcEludGVyZmFjZUN1c3RvbVNxbFN0cmF0ZWdpZXNUb0ltcGxlbWVudGF0aW9uU3RyYXRlZ2llcyA9IChcbiAgc3RyYXRlZ2llcz86IEludGVyZmFjZUN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneVtdLFxuKTogSW1wbGVtZW50YXRpb25DdXN0b21TcWxEYXRhU291cmNlU3RyYXRlZ3lbXSA9PiB7XG4gIGlmICghc3RyYXRlZ2llcykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gc3RyYXRlZ2llcy5tYXAoKGludGVyZmFjZVN0cmF0ZWd5KSA9PiAoe1xuICAgIGZpZWxkTmFtZTogaW50ZXJmYWNlU3RyYXRlZ3kuZmllbGROYW1lLFxuICAgIHR5cGVOYW1lOiBpbnRlcmZhY2VTdHJhdGVneS50eXBlTmFtZSxcbiAgICBkYXRhU291cmNlVHlwZToge1xuICAgICAgZGJUeXBlOiBub3JtYWxpemVEYlR5cGUoaW50ZXJmYWNlU3RyYXRlZ3kuc3RyYXRlZ3kuZGJUeXBlKSxcbiAgICAgIHByb3Zpc2lvbkRCOiBmYWxzZSxcbiAgICAgIHByb3Zpc2lvblN0cmF0ZWd5OiBTUUxMYW1iZGFNb2RlbFByb3Zpc2lvblN0cmF0ZWd5LkRFRkFVTFQsXG4gICAgfSxcbiAgfSkpO1xufTtcbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ModelDataSourceStrategy } from '../
|
|
1
|
+
import { ModelDataSourceStrategy } from '../model-datasource-strategy';
|
|
2
2
|
/**
|
|
3
3
|
* Get the type names with model directives in the GraphQL schema in SDL
|
|
4
4
|
* @param schema graphql schema in SDL
|
|
5
5
|
* @returns type names which model diretives are attached
|
|
6
6
|
*/
|
|
7
|
-
export declare
|
|
7
|
+
export declare const getModelTypeNames: (schema: string) => string[];
|
|
8
8
|
export declare const constructDataSourceStrategyMap: (schema: string, dataSourceStrategy: ModelDataSourceStrategy) => Record<string, ModelDataSourceStrategy>;
|
|
@@ -9,7 +9,7 @@ const MANY_TO_MANY_DIRECTIVE_NAME = 'manyToMany';
|
|
|
9
9
|
* @param schema graphql schema in SDL
|
|
10
10
|
* @returns type names which model diretives are attached
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
const getModelTypeNames = (schema) => {
|
|
13
13
|
const parsedSchema = (0, graphql_1.parse)(schema);
|
|
14
14
|
const nodesWithModelDirective = parsedSchema.definitions.filter((obj) => obj.kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION && obj.directives?.some((dir) => dir.name.value === MODEL_DIRECTIVE_NAME));
|
|
15
15
|
const modelKeys = nodesWithModelDirective.map((type) => type.name.value);
|
|
@@ -27,11 +27,11 @@ function getModelTypeNames(schema) {
|
|
|
27
27
|
});
|
|
28
28
|
});
|
|
29
29
|
return modelKeys.filter((key, idx) => modelKeys.indexOf(key) === idx);
|
|
30
|
-
}
|
|
30
|
+
};
|
|
31
31
|
exports.getModelTypeNames = getModelTypeNames;
|
|
32
32
|
const constructDataSourceStrategyMap = (schema, dataSourceStrategy) => {
|
|
33
|
-
const modelKeys = getModelTypeNames(schema);
|
|
33
|
+
const modelKeys = (0, exports.getModelTypeNames)(schema);
|
|
34
34
|
return modelKeys.reduce((acc, cur) => ({ ...acc, [cur]: dataSourceStrategy }), {});
|
|
35
35
|
};
|
|
36
36
|
exports.constructDataSourceStrategyMap = constructDataSourceStrategyMap;
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdHlwZS1uYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVybmFsL21vZGVsLXR5cGUtbmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBaUY7QUFHakYsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUM7QUFDckMsTUFBTSwyQkFBMkIsR0FBRyxZQUFZLENBQUM7QUFDakQ7Ozs7R0FJRztBQUNJLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFjLEVBQVksRUFBRTtJQUM1RCxNQUFNLFlBQVksR0FBRyxJQUFBLGVBQUssRUFBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxNQUFNLHVCQUF1QixHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUM3RCxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxjQUFJLENBQUMsc0JBQXNCLElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLG9CQUFvQixDQUFDLENBQzVILENBQUM7SUFDRixNQUFNLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFFLElBQWlDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZHLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ3RDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUErQixDQUFDO1FBQ25ELE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN4QixLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLDJCQUEyQixFQUFFO29CQUNsRCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssY0FBYyxDQUFDLENBQUM7b0JBQ3BGLElBQUksV0FBVyxFQUFFO3dCQUNmLFNBQVMsQ0FBQyxJQUFJLENBQUUsV0FBVyxDQUFDLEtBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQzlEO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQUM7QUFwQlcsUUFBQSxpQkFBaUIscUJBb0I1QjtBQUVLLE1BQU0sOEJBQThCLEdBQUcsQ0FDNUMsTUFBYyxFQUNkLGtCQUEyQyxFQUNGLEVBQUU7SUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBQSx5QkFBaUIsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDckYsQ0FBQyxDQUFDO0FBTlcsUUFBQSw4QkFBOEIsa0NBTXpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2luZCwgT2JqZWN0VHlwZURlZmluaXRpb25Ob2RlLCBTdHJpbmdWYWx1ZU5vZGUsIHBhcnNlIH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgeyBNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB9IGZyb20gJy4uL21vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3knO1xuXG5jb25zdCBNT0RFTF9ESVJFQ1RJVkVfTkFNRSA9ICdtb2RlbCc7XG5jb25zdCBNQU5ZX1RPX01BTllfRElSRUNUSVZFX05BTUUgPSAnbWFueVRvTWFueSc7XG4vKipcbiAqIEdldCB0aGUgdHlwZSBuYW1lcyB3aXRoIG1vZGVsIGRpcmVjdGl2ZXMgaW4gdGhlIEdyYXBoUUwgc2NoZW1hIGluIFNETFxuICogQHBhcmFtIHNjaGVtYSBncmFwaHFsIHNjaGVtYSBpbiBTRExcbiAqIEByZXR1cm5zIHR5cGUgbmFtZXMgd2hpY2ggbW9kZWwgZGlyZXRpdmVzIGFyZSBhdHRhY2hlZFxuICovXG5leHBvcnQgY29uc3QgZ2V0TW9kZWxUeXBlTmFtZXMgPSAoc2NoZW1hOiBzdHJpbmcpOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IHBhcnNlZFNjaGVtYSA9IHBhcnNlKHNjaGVtYSk7XG4gIGNvbnN0IG5vZGVzV2l0aE1vZGVsRGlyZWN0aXZlID0gcGFyc2VkU2NoZW1hLmRlZmluaXRpb25zLmZpbHRlcihcbiAgICAob2JqKSA9PiBvYmoua2luZCA9PT0gS2luZC5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OICYmIG9iai5kaXJlY3RpdmVzPy5zb21lKChkaXIpID0+IGRpci5uYW1lLnZhbHVlID09PSBNT0RFTF9ESVJFQ1RJVkVfTkFNRSksXG4gICk7XG4gIGNvbnN0IG1vZGVsS2V5cyA9IG5vZGVzV2l0aE1vZGVsRGlyZWN0aXZlLm1hcCgodHlwZSkgPT4gKHR5cGUgYXMgT2JqZWN0VHlwZURlZmluaXRpb25Ob2RlKS5uYW1lLnZhbHVlKTtcbiAgbm9kZXNXaXRoTW9kZWxEaXJlY3RpdmUuZm9yRWFjaCgob2JqKSA9PiB7XG4gICAgY29uc3QgeyBmaWVsZHMgfSA9IG9iaiBhcyBPYmplY3RUeXBlRGVmaW5pdGlvbk5vZGU7XG4gICAgZmllbGRzPy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgZmllbGQuZGlyZWN0aXZlcz8uZm9yRWFjaCgoZGlyKSA9PiB7XG4gICAgICAgIGlmIChkaXIubmFtZS52YWx1ZSA9PT0gTUFOWV9UT19NQU5ZX0RJUkVDVElWRV9OQU1FKSB7XG4gICAgICAgICAgY29uc3QgcmVsYXRpb25BcmcgPSBkaXIuYXJndW1lbnRzPy5maW5kKChhcmcpID0+IGFyZy5uYW1lLnZhbHVlID09PSAncmVsYXRpb25OYW1lJyk7XG4gICAgICAgICAgaWYgKHJlbGF0aW9uQXJnKSB7XG4gICAgICAgICAgICBtb2RlbEtleXMucHVzaCgocmVsYXRpb25BcmcudmFsdWUgYXMgU3RyaW5nVmFsdWVOb2RlKS52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBtb2RlbEtleXMuZmlsdGVyKChrZXksIGlkeCkgPT4gbW9kZWxLZXlzLmluZGV4T2Yoa2V5KSA9PT0gaWR4KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb25zdHJ1Y3REYXRhU291cmNlU3RyYXRlZ3lNYXAgPSAoXG4gIHNjaGVtYTogc3RyaW5nLFxuICBkYXRhU291cmNlU3RyYXRlZ3k6IE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LFxuKTogUmVjb3JkPHN0cmluZywgTW9kZWxEYXRhU291cmNlU3RyYXRlZ3k+ID0+IHtcbiAgY29uc3QgbW9kZWxLZXlzID0gZ2V0TW9kZWxUeXBlTmFtZXMoc2NoZW1hKTtcbiAgcmV0dXJuIG1vZGVsS2V5cy5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoeyAuLi5hY2MsIFtjdXJdOiBkYXRhU291cmNlU3RyYXRlZ3kgfSksIHt9KTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* All known ModelDataSourceStrategies. Concrete strategies vary widely in their requirements and implementations.
|
|
3
|
+
* @experimental
|
|
4
|
+
*/
|
|
5
|
+
export type ModelDataSourceStrategy = DefaultDynamoDbModelDataSourceStrategy | AmplifyDynamoDbModelDataSourceStrategy | SQLLambdaModelDataSourceStrategy;
|
|
6
|
+
export type ModelDataSourceStrategyDbType = 'DYNAMODB';
|
|
7
|
+
/**
|
|
8
|
+
* Use default CloudFormation type 'AWS::DynamoDB::Table' to provision table.
|
|
9
|
+
* @experimental
|
|
10
|
+
*/
|
|
11
|
+
export interface DefaultDynamoDbModelDataSourceStrategy {
|
|
12
|
+
readonly dbType: 'DYNAMODB';
|
|
13
|
+
readonly provisionStrategy: 'DEFAULT';
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Use custom resource type 'Custom::AmplifyDynamoDBTable' to provision table.
|
|
17
|
+
* @experimental
|
|
18
|
+
*/
|
|
19
|
+
export interface AmplifyDynamoDbModelDataSourceStrategy {
|
|
20
|
+
readonly dbType: 'DYNAMODB';
|
|
21
|
+
readonly provisionStrategy: 'AMPLIFY_TABLE';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A strategy that creates a Lambda to connect to a pre-existing SQL table to resolve model data.
|
|
25
|
+
*
|
|
26
|
+
* @experimental
|
|
27
|
+
*/
|
|
28
|
+
export interface SQLLambdaModelDataSourceStrategy {
|
|
29
|
+
/**
|
|
30
|
+
* The name of the strategy. This will be used to name the AppSync DataSource itself, plus any associated resources like resolver Lambdas.
|
|
31
|
+
* This name must be unique across all schema definitions in a GraphQL API.
|
|
32
|
+
*/
|
|
33
|
+
readonly name: string;
|
|
34
|
+
/**
|
|
35
|
+
* The type of the SQL database used to process model operations for this definition.
|
|
36
|
+
*/
|
|
37
|
+
readonly dbType: 'MYSQL' | 'POSTGRES';
|
|
38
|
+
/**
|
|
39
|
+
* The parameters the Lambda data source will use to connect to the database.
|
|
40
|
+
*/
|
|
41
|
+
readonly dbConnectionConfig: SqlModelDataSourceDbConnectionConfig;
|
|
42
|
+
/**
|
|
43
|
+
* The configuration of the VPC into which to install the Lambda.
|
|
44
|
+
*/
|
|
45
|
+
readonly vpcConfiguration?: VpcConfig;
|
|
46
|
+
/**
|
|
47
|
+
* Custom SQL statements. The key is the value of the `references` attribute of the `@sql` directive in the `schema`; the value is the SQL
|
|
48
|
+
* to be executed.
|
|
49
|
+
*/
|
|
50
|
+
readonly customSqlStatements?: Record<string, string>;
|
|
51
|
+
/**
|
|
52
|
+
* The configuration for the provisioned concurrency of the Lambda.
|
|
53
|
+
*/
|
|
54
|
+
readonly sqlLambdaProvisionedConcurrencyConfig?: ProvisionedConcurrencyConfig;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Configuration of the VPC in which to install a Lambda to resolve queries against a SQL-based data source. The SQL Lambda will be deployed
|
|
58
|
+
* into the specified VPC, subnets, and security groups. The specified subnets and security groups must be in the same VPC. The VPC must
|
|
59
|
+
* have at least one subnet. The construct will also create VPC service endpoints in the specified subnets, as well as inbound security
|
|
60
|
+
* rules, to allow traffic on port 443 within each security group. This allows the Lambda to read database connection information from
|
|
61
|
+
* Secure Systems Manager.
|
|
62
|
+
* @experimental
|
|
63
|
+
*/
|
|
64
|
+
export interface VpcConfig {
|
|
65
|
+
/** The VPC to install the Lambda data source in. */
|
|
66
|
+
readonly vpcId: string;
|
|
67
|
+
/** The security groups to install the Lambda data source in. */
|
|
68
|
+
readonly securityGroupIds: string[];
|
|
69
|
+
/** The subnets to install the Lambda data source in, one per availability zone. */
|
|
70
|
+
readonly subnetAvailabilityZoneConfig: SubnetAvailabilityZone[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The configuration for the provisioned concurrency of the Lambda.
|
|
74
|
+
* @experimental
|
|
75
|
+
*/
|
|
76
|
+
export interface ProvisionedConcurrencyConfig {
|
|
77
|
+
/** The amount of provisioned concurrency to allocate. **/
|
|
78
|
+
readonly provisionedConcurrentExecutions: number;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Subnet configuration for VPC endpoints used by a Lambda resolver for a SQL-based data source. Although it is possible to create multiple
|
|
82
|
+
* subnets in a single availability zone, VPC service endpoints may only be deployed to a single subnet in a given availability zone. This
|
|
83
|
+
* structure ensures that the Lambda function and VPC service endpoints are mutually consistent.
|
|
84
|
+
* @experimental
|
|
85
|
+
*/
|
|
86
|
+
export interface SubnetAvailabilityZone {
|
|
87
|
+
/** The subnet ID to install the Lambda data source in. */
|
|
88
|
+
readonly subnetId: string;
|
|
89
|
+
/** The availability zone of the subnet. */
|
|
90
|
+
readonly availabilityZone: string;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The Secure Systems Manager parameter paths the Lambda data source will use to connect to the database.
|
|
94
|
+
*
|
|
95
|
+
* These parameters are retrieved from Secure Systems Manager in the same region as the Lambda.
|
|
96
|
+
* @experimental
|
|
97
|
+
*/
|
|
98
|
+
export interface SqlModelDataSourceDbConnectionConfig {
|
|
99
|
+
/** The Secure Systems Manager parameter containing the hostname of the database. For RDS-based SQL data sources, this can be the hostname
|
|
100
|
+
* of a database proxy, cluster, or instance.
|
|
101
|
+
*/
|
|
102
|
+
readonly hostnameSsmPath: string;
|
|
103
|
+
/** The Secure Systems Manager parameter containing the port number of the database proxy, cluster, or instance. */
|
|
104
|
+
readonly portSsmPath: string;
|
|
105
|
+
/** The Secure Systems Manager parameter containing the username to use when connecting to the database. */
|
|
106
|
+
readonly usernameSsmPath: string;
|
|
107
|
+
/** The Secure Systems Manager parameter containing the password to use when connecting to the database. */
|
|
108
|
+
readonly passwordSsmPath: string;
|
|
109
|
+
/** The Secure Systems Manager parameter containing the database name. */
|
|
110
|
+
readonly databaseNameSsmPath: string;
|
|
111
|
+
}
|
|
112
|
+
export interface CustomSqlDataSourceStrategy {
|
|
113
|
+
readonly typeName: 'Query' | 'Mutation';
|
|
114
|
+
readonly fieldName: string;
|
|
115
|
+
readonly strategy: SQLLambdaModelDataSourceStrategy;
|
|
116
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// #########################################################################################################################################
|
|
3
|
+
// These are the public-facing types used by customers to define their L3 CDK construct. Many of these have corresponding definitions in the
|
|
4
|
+
// transformer-interfaces package to define internal behavior.
|
|
5
|
+
//
|
|
6
|
+
// If you change types in this file (the customer-facing interface), be sure to make corresponding changes to
|
|
7
|
+
// amplify-graphql-transformer-interfaces/src/model-datasource (the internal implementation)
|
|
8
|
+
// #########################################################################################################################################
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZGF0YXNvdXJjZS1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tb2RlbC1kYXRhc291cmNlLXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0SUFBNEk7QUFDNUksNElBQTRJO0FBQzVJLDhEQUE4RDtBQUM5RCxFQUFFO0FBQ0YsNkdBQTZHO0FBQzdHLDRGQUE0RjtBQUM1Riw0SUFBNEkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuLy8gVGhlc2UgYXJlIHRoZSBwdWJsaWMtZmFjaW5nIHR5cGVzIHVzZWQgYnkgY3VzdG9tZXJzIHRvIGRlZmluZSB0aGVpciBMMyBDREsgY29uc3RydWN0LiBNYW55IG9mIHRoZXNlIGhhdmUgY29ycmVzcG9uZGluZyBkZWZpbml0aW9ucyBpbiB0aGVcbi8vIHRyYW5zZm9ybWVyLWludGVyZmFjZXMgcGFja2FnZSB0byBkZWZpbmUgaW50ZXJuYWwgYmVoYXZpb3IuXG4vL1xuLy8gSWYgeW91IGNoYW5nZSB0eXBlcyBpbiB0aGlzIGZpbGUgKHRoZSBjdXN0b21lci1mYWNpbmcgaW50ZXJmYWNlKSwgYmUgc3VyZSB0byBtYWtlIGNvcnJlc3BvbmRpbmcgY2hhbmdlcyB0b1xuLy8gYW1wbGlmeS1ncmFwaHFsLXRyYW5zZm9ybWVyLWludGVyZmFjZXMvc3JjL21vZGVsLWRhdGFzb3VyY2UgKHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbilcbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5cbi8qKlxuICogQWxsIGtub3duIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWdpZXMuIENvbmNyZXRlIHN0cmF0ZWdpZXMgdmFyeSB3aWRlbHkgaW4gdGhlaXIgcmVxdWlyZW1lbnRzIGFuZCBpbXBsZW1lbnRhdGlvbnMuXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCB0eXBlIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID1cbiAgfCBEZWZhdWx0RHluYW1vRGJNb2RlbERhdGFTb3VyY2VTdHJhdGVneVxuICB8IEFtcGxpZnlEeW5hbW9EYk1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5XG4gIHwgU1FMTGFtYmRhTW9kZWxEYXRhU291cmNlU3RyYXRlZ3k7XG5cbi8vIFRPRE86IE1ha2UgdGhpcyB0aGUgc291cmNlIG9mIHRydXRoIGZvciBkYXRhYmFzZSB0eXBlIGRlZmluaXRpb25zIHVzZWQgdGhyb3VnaG91dCB0aGUgY29uc3RydWN0ICYgdHJhbnNmb3JtZXJcbmV4cG9ydCB0eXBlIE1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5RGJUeXBlID0gJ0RZTkFNT0RCJztcblxuLyoqXG4gKiBVc2UgZGVmYXVsdCBDbG91ZEZvcm1hdGlvbiB0eXBlICdBV1M6OkR5bmFtb0RCOjpUYWJsZScgdG8gcHJvdmlzaW9uIHRhYmxlLlxuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHREeW5hbW9EYk1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IHtcbiAgcmVhZG9ubHkgZGJUeXBlOiAnRFlOQU1PREInO1xuICByZWFkb25seSBwcm92aXNpb25TdHJhdGVneTogJ0RFRkFVTFQnO1xufVxuXG4vKipcbiAqIFVzZSBjdXN0b20gcmVzb3VyY2UgdHlwZSAnQ3VzdG9tOjpBbXBsaWZ5RHluYW1vREJUYWJsZScgdG8gcHJvdmlzaW9uIHRhYmxlLlxuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFtcGxpZnlEeW5hbW9EYk1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IHtcbiAgcmVhZG9ubHkgZGJUeXBlOiAnRFlOQU1PREInO1xuICByZWFkb25seSBwcm92aXNpb25TdHJhdGVneTogJ0FNUExJRllfVEFCTEUnO1xufVxuXG4vKipcbiAqIEEgc3RyYXRlZ3kgdGhhdCBjcmVhdGVzIGEgTGFtYmRhIHRvIGNvbm5lY3QgdG8gYSBwcmUtZXhpc3RpbmcgU1FMIHRhYmxlIHRvIHJlc29sdmUgbW9kZWwgZGF0YS5cbiAqXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU1FMTGFtYmRhTW9kZWxEYXRhU291cmNlU3RyYXRlZ3kge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN0cmF0ZWd5LiBUaGlzIHdpbGwgYmUgdXNlZCB0byBuYW1lIHRoZSBBcHBTeW5jIERhdGFTb3VyY2UgaXRzZWxmLCBwbHVzIGFueSBhc3NvY2lhdGVkIHJlc291cmNlcyBsaWtlIHJlc29sdmVyIExhbWJkYXMuXG4gICAqIFRoaXMgbmFtZSBtdXN0IGJlIHVuaXF1ZSBhY3Jvc3MgYWxsIHNjaGVtYSBkZWZpbml0aW9ucyBpbiBhIEdyYXBoUUwgQVBJLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgU1FMIGRhdGFiYXNlIHVzZWQgdG8gcHJvY2VzcyBtb2RlbCBvcGVyYXRpb25zIGZvciB0aGlzIGRlZmluaXRpb24uXG4gICAqL1xuICByZWFkb25seSBkYlR5cGU6ICdNWVNRTCcgfCAnUE9TVEdSRVMnO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVycyB0aGUgTGFtYmRhIGRhdGEgc291cmNlIHdpbGwgdXNlIHRvIGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGJDb25uZWN0aW9uQ29uZmlnOiBTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBWUEMgaW50byB3aGljaCB0byBpbnN0YWxsIHRoZSBMYW1iZGEuXG4gICAqL1xuICByZWFkb25seSB2cGNDb25maWd1cmF0aW9uPzogVnBjQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gU1FMIHN0YXRlbWVudHMuIFRoZSBrZXkgaXMgdGhlIHZhbHVlIG9mIHRoZSBgcmVmZXJlbmNlc2AgYXR0cmlidXRlIG9mIHRoZSBgQHNxbGAgZGlyZWN0aXZlIGluIHRoZSBgc2NoZW1hYDsgdGhlIHZhbHVlIGlzIHRoZSBTUUxcbiAgICogdG8gYmUgZXhlY3V0ZWQuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21TcWxTdGF0ZW1lbnRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBwcm92aXNpb25lZCBjb25jdXJyZW5jeSBvZiB0aGUgTGFtYmRhLlxuICAgKi9cbiAgcmVhZG9ubHkgc3FsTGFtYmRhUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZz86IFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvZiB0aGUgVlBDIGluIHdoaWNoIHRvIGluc3RhbGwgYSBMYW1iZGEgdG8gcmVzb2x2ZSBxdWVyaWVzIGFnYWluc3QgYSBTUUwtYmFzZWQgZGF0YSBzb3VyY2UuIFRoZSBTUUwgTGFtYmRhIHdpbGwgYmUgZGVwbG95ZWRcbiAqIGludG8gdGhlIHNwZWNpZmllZCBWUEMsIHN1Ym5ldHMsIGFuZCBzZWN1cml0eSBncm91cHMuIFRoZSBzcGVjaWZpZWQgc3VibmV0cyBhbmQgc2VjdXJpdHkgZ3JvdXBzIG11c3QgYmUgaW4gdGhlIHNhbWUgVlBDLiBUaGUgVlBDIG11c3RcbiAqIGhhdmUgYXQgbGVhc3Qgb25lIHN1Ym5ldC4gVGhlIGNvbnN0cnVjdCB3aWxsIGFsc28gY3JlYXRlIFZQQyBzZXJ2aWNlIGVuZHBvaW50cyBpbiB0aGUgc3BlY2lmaWVkIHN1Ym5ldHMsIGFzIHdlbGwgYXMgaW5ib3VuZCBzZWN1cml0eVxuICogcnVsZXMsIHRvIGFsbG93IHRyYWZmaWMgb24gcG9ydCA0NDMgd2l0aGluIGVhY2ggc2VjdXJpdHkgZ3JvdXAuIFRoaXMgYWxsb3dzIHRoZSBMYW1iZGEgdG8gcmVhZCBkYXRhYmFzZSBjb25uZWN0aW9uIGluZm9ybWF0aW9uIGZyb21cbiAqIFNlY3VyZSBTeXN0ZW1zIE1hbmFnZXIuXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29uZmlnIHtcbiAgLyoqIFRoZSBWUEMgdG8gaW5zdGFsbCB0aGUgTGFtYmRhIGRhdGEgc291cmNlIGluLiAqL1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuXG4gIC8qKiBUaGUgc2VjdXJpdHkgZ3JvdXBzIHRvIGluc3RhbGwgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSBpbi4gKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkczogc3RyaW5nW107XG5cbiAgLyoqIFRoZSBzdWJuZXRzIHRvIGluc3RhbGwgdGhlIExhbWJkYSBkYXRhIHNvdXJjZSBpbiwgb25lIHBlciBhdmFpbGFiaWxpdHkgem9uZS4gKi9cbiAgcmVhZG9ubHkgc3VibmV0QXZhaWxhYmlsaXR5Wm9uZUNvbmZpZzogU3VibmV0QXZhaWxhYmlsaXR5Wm9uZVtdO1xufVxuXG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgcHJvdmlzaW9uZWQgY29uY3VycmVuY3kgb2YgdGhlIExhbWJkYS5cbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlnIHtcbiAgLyoqIFRoZSBhbW91bnQgb2YgcHJvdmlzaW9uZWQgY29uY3VycmVuY3kgdG8gYWxsb2NhdGUuICoqL1xuICByZWFkb25seSBwcm92aXNpb25lZENvbmN1cnJlbnRFeGVjdXRpb25zOiBudW1iZXI7XG59XG5cbi8qKlxuICogU3VibmV0IGNvbmZpZ3VyYXRpb24gZm9yIFZQQyBlbmRwb2ludHMgdXNlZCBieSBhIExhbWJkYSByZXNvbHZlciBmb3IgYSBTUUwtYmFzZWQgZGF0YSBzb3VyY2UuIEFsdGhvdWdoIGl0IGlzIHBvc3NpYmxlIHRvIGNyZWF0ZSBtdWx0aXBsZVxuICogc3VibmV0cyBpbiBhIHNpbmdsZSBhdmFpbGFiaWxpdHkgem9uZSwgVlBDIHNlcnZpY2UgZW5kcG9pbnRzIG1heSBvbmx5IGJlIGRlcGxveWVkIHRvIGEgc2luZ2xlIHN1Ym5ldCBpbiBhIGdpdmVuIGF2YWlsYWJpbGl0eSB6b25lLiBUaGlzXG4gKiBzdHJ1Y3R1cmUgZW5zdXJlcyB0aGF0IHRoZSBMYW1iZGEgZnVuY3Rpb24gYW5kIFZQQyBzZXJ2aWNlIGVuZHBvaW50cyBhcmUgbXV0dWFsbHkgY29uc2lzdGVudC5cbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJuZXRBdmFpbGFiaWxpdHlab25lIHtcbiAgLyoqIFRoZSBzdWJuZXQgSUQgdG8gaW5zdGFsbCB0aGUgTGFtYmRhIGRhdGEgc291cmNlIGluLiAqL1xuICByZWFkb25seSBzdWJuZXRJZDogc3RyaW5nO1xuXG4gIC8qKiBUaGUgYXZhaWxhYmlsaXR5IHpvbmUgb2YgdGhlIHN1Ym5ldC4gKi9cbiAgcmVhZG9ubHkgYXZhaWxhYmlsaXR5Wm9uZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBTZWN1cmUgU3lzdGVtcyBNYW5hZ2VyIHBhcmFtZXRlciBwYXRocyB0aGUgTGFtYmRhIGRhdGEgc291cmNlIHdpbGwgdXNlIHRvIGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlLlxuICpcbiAqIFRoZXNlIHBhcmFtZXRlcnMgYXJlIHJldHJpZXZlZCBmcm9tIFNlY3VyZSBTeXN0ZW1zIE1hbmFnZXIgaW4gdGhlIHNhbWUgcmVnaW9uIGFzIHRoZSBMYW1iZGEuXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3FsTW9kZWxEYXRhU291cmNlRGJDb25uZWN0aW9uQ29uZmlnIHtcbiAgLyoqIFRoZSBTZWN1cmUgU3lzdGVtcyBNYW5hZ2VyIHBhcmFtZXRlciBjb250YWluaW5nIHRoZSBob3N0bmFtZSBvZiB0aGUgZGF0YWJhc2UuIEZvciBSRFMtYmFzZWQgU1FMIGRhdGEgc291cmNlcywgdGhpcyBjYW4gYmUgdGhlIGhvc3RuYW1lXG4gICAqIG9mIGEgZGF0YWJhc2UgcHJveHksIGNsdXN0ZXIsIG9yIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgaG9zdG5hbWVTc21QYXRoOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBTZWN1cmUgU3lzdGVtcyBNYW5hZ2VyIHBhcmFtZXRlciBjb250YWluaW5nIHRoZSBwb3J0IG51bWJlciBvZiB0aGUgZGF0YWJhc2UgcHJveHksIGNsdXN0ZXIsIG9yIGluc3RhbmNlLiAqL1xuICByZWFkb25seSBwb3J0U3NtUGF0aDogc3RyaW5nO1xuXG4gIC8qKiBUaGUgU2VjdXJlIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgY29udGFpbmluZyB0aGUgdXNlcm5hbWUgdG8gdXNlIHdoZW4gY29ubmVjdGluZyB0byB0aGUgZGF0YWJhc2UuICovXG4gIHJlYWRvbmx5IHVzZXJuYW1lU3NtUGF0aDogc3RyaW5nO1xuXG4gIC8qKiBUaGUgU2VjdXJlIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgY29udGFpbmluZyB0aGUgcGFzc3dvcmQgdG8gdXNlIHdoZW4gY29ubmVjdGluZyB0byB0aGUgZGF0YWJhc2UuICovXG4gIHJlYWRvbmx5IHBhc3N3b3JkU3NtUGF0aDogc3RyaW5nO1xuXG4gIC8qKiBUaGUgU2VjdXJlIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgY29udGFpbmluZyB0aGUgZGF0YWJhc2UgbmFtZS4gKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lU3NtUGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVNxbERhdGFTb3VyY2VTdHJhdGVneSB7XG4gIHJlYWRvbmx5IHR5cGVOYW1lOiAnUXVlcnknIHwgJ011dGF0aW9uJztcbiAgcmVhZG9ubHkgZmllbGROYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0cmF0ZWd5OiBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneTtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SQLLambdaModelDataSourceStrategy, SqlModelDataSourceDbConnectionConfig } from './
|
|
1
|
+
import { SQLLambdaModelDataSourceStrategy, SqlModelDataSourceDbConnectionConfig } from './model-datasource-strategy';
|
|
2
2
|
/**
|
|
3
3
|
* Type predicate that returns true if the object is a SQLLambdaModelDataSourceStrategy.
|
|
4
4
|
* @param obj the object to inspect
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.SQLLambdaModelDataSourceStrategyFactory = exports.isSqlModelDataSourceDbConnectionConfig = exports.isSQLLambdaModelDataSourceStrategy = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
4
6
|
const fs = require("fs");
|
|
5
7
|
const path = require("path");
|
|
6
8
|
/**
|
|
@@ -54,4 +56,6 @@ class SQLLambdaModelDataSourceStrategyFactory {
|
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
exports.SQLLambdaModelDataSourceStrategyFactory = SQLLambdaModelDataSourceStrategyFactory;
|
|
57
|
-
|
|
59
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
60
|
+
SQLLambdaModelDataSourceStrategyFactory[_a] = { fqn: "@aws-amplify/graphql-api-construct.SQLLambdaModelDataSourceStrategyFactory", version: "1.4.3" };
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLW1vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3FsLW1vZGVsLWRhdGFzb3VyY2Utc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBRzdCOzs7O0dBSUc7QUFDSSxNQUFNLGtDQUFrQyxHQUFHLENBQUMsR0FBUSxFQUEyQyxFQUFFO0lBQ3RHLE9BQU8sQ0FDTCxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7UUFDdEQsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVE7UUFDNUIsT0FBTyxHQUFHLENBQUMsTUFBTSxLQUFLLFFBQVE7UUFDOUIsMENBQTBDO1FBQzFDLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQzFDLElBQUEsOENBQXNDLEVBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQy9ELENBQUM7QUFDSixDQUFDLENBQUM7QUFUVyxRQUFBLGtDQUFrQyxzQ0FTN0M7QUFFRjs7OztHQUlHO0FBQ0ksTUFBTSxzQ0FBc0MsR0FBRyxDQUFDLEdBQVEsRUFBK0MsRUFBRTtJQUM5RyxPQUFPLENBQ0wsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDO1FBQ3RELE9BQU8sR0FBRyxDQUFDLGVBQWUsS0FBSyxRQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLFdBQVcsS0FBSyxRQUFRO1FBQ25DLE9BQU8sR0FBRyxDQUFDLGVBQWUsS0FBSyxRQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLGVBQWUsS0FBSyxRQUFRO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLG1CQUFtQixLQUFLLFFBQVEsQ0FDNUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVRXLFFBQUEsc0NBQXNDLDBDQVNqRDtBQUVGOztHQUVHO0FBQ0gsTUFBYSx1Q0FBdUM7SUFDbEQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQ3ZCLFFBQWtCLEVBQ2xCLE9BQXlFO1FBRXpFLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQTBCLEVBQUU7WUFDcEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDM0MsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2xELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQTRCLENBQUMsQ0FBQztRQUVqQyxPQUFPO1lBQ0wsbUJBQW1CO1lBQ25CLEdBQUcsT0FBTztTQUNYLENBQUM7SUFDSixDQUFDOztBQXJCSCwwRkFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgU1FMTGFtYmRhTW9kZWxEYXRhU291cmNlU3RyYXRlZ3ksIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZyB9IGZyb20gJy4vbW9kZWwtZGF0YXNvdXJjZS1zdHJhdGVneSc7XG5cbi8qKlxuICogVHlwZSBwcmVkaWNhdGUgdGhhdCByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LlxuICogQHBhcmFtIG9iaiB0aGUgb2JqZWN0IHRvIGluc3BlY3RcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBpcyBzaGFwZWQgbGlrZSBhIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5XG4gKi9cbmV4cG9ydCBjb25zdCBpc1NRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID0gKG9iajogYW55KTogb2JqIGlzIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5ID0+IHtcbiAgcmV0dXJuIChcbiAgICAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIG9iaiA9PT0gJ2Z1bmN0aW9uJykgJiZcbiAgICB0eXBlb2Ygb2JqLm5hbWUgPT09ICdzdHJpbmcnICYmXG4gICAgdHlwZW9mIG9iai5kYlR5cGUgPT09ICdzdHJpbmcnICYmXG4gICAgLy8gVE9ETzogVXNlIGNhbm9uaWNhbCBTUUwgREIgdHlwZSBzdHJpbmdzXG4gICAgWydNWVNRTCcsICdQT1NUR1JFUyddLmluY2x1ZGVzKG9iai5kYlR5cGUpICYmXG4gICAgaXNTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWcob2JqLmRiQ29ubmVjdGlvbkNvbmZpZylcbiAgKTtcbn07XG5cbi8qKlxuICogVHlwZSBwcmVkaWNhdGUgdGhhdCByZXR1cm5zIHRydWUgaWYgdGhlIG9iamVjdCBpcyBhIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZy5cbiAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBpbnNwZWN0XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBvYmplY3QgaXMgc2hhcGVkIGxpa2UgYSBTcWxNb2RlbERhdGFTb3VyY2VEYkNvbm5lY3Rpb25Db25maWdcbiAqL1xuZXhwb3J0IGNvbnN0IGlzU3FsTW9kZWxEYXRhU291cmNlRGJDb25uZWN0aW9uQ29uZmlnID0gKG9iajogYW55KTogb2JqIGlzIFNxbE1vZGVsRGF0YVNvdXJjZURiQ29ubmVjdGlvbkNvbmZpZyA9PiB7XG4gIHJldHVybiAoXG4gICAgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnIHx8IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbicpICYmXG4gICAgdHlwZW9mIG9iai5ob3N0bmFtZVNzbVBhdGggPT09ICdzdHJpbmcnICYmXG4gICAgdHlwZW9mIG9iai5wb3J0U3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLnVzZXJuYW1lU3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLnBhc3N3b3JkU3NtUGF0aCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb2JqLmRhdGFiYXNlTmFtZVNzbVBhdGggPT09ICdzdHJpbmcnXG4gICk7XG59O1xuXG4vKipcbiAqIENsYXNzIGV4cG9zaW5nIHV0aWxpdGllcyB0byBwcm9kdWNlIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IG9iamVjdHMgZ2l2ZW4gdmFyaW91cyBpbnB1dHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneUZhY3Rvcnkge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IHdoZXJlIHRoZSBiaW5kaW5nJ3MgYGN1c3RvbVNxbFN0YXRlbWVudHNgIGFyZSBwb3B1bGF0ZWQgZnJvbSBgc3FsRmlsZXNgLiBUaGUga2V5XG4gICAqIG9mIHRoZSBgY3VzdG9tU3FsU3RhdGVtZW50c2AgcmVjb3JkIGlzIHRoZSBmaWxlJ3MgYmFzZSBuYW1lICh0aGF0IGlzLCB0aGUgbmFtZSBvZiB0aGUgZmlsZSBtaW51cyB0aGUgZGlyZWN0b3J5IGFuZCBleHRlbnNpb24pLlxuICAgKiBAcGFyYW0gc3FsRmlsZXMgdGhlIGxpc3Qgb2YgZmlsZXMgdG8gbG9hZCBTUUwgc3RhdGVtZW50cyBmcm9tLlxuICAgKiBAcGFyYW0gb3B0aW9ucyB0aGUgcmVtYWluaW5nIFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5IG9wdGlvbnMuXG4gICAqL1xuICBzdGF0aWMgZnJvbUN1c3RvbVNxbEZpbGVzKFxuICAgIHNxbEZpbGVzOiBzdHJpbmdbXSxcbiAgICBvcHRpb25zOiBFeGNsdWRlPFNRTExhbWJkYU1vZGVsRGF0YVNvdXJjZVN0cmF0ZWd5LCAnY3VzdG9tU3FsU3RhdGVtZW50cyc+LFxuICApOiBTUUxMYW1iZGFNb2RlbERhdGFTb3VyY2VTdHJhdGVneSB7XG4gICAgY29uc3QgY3VzdG9tU3FsU3RhdGVtZW50cyA9IHNxbEZpbGVzLnJlZHVjZSgoYWNjLCBmaWxlUGF0aCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4ge1xuICAgICAgY29uc3QgYmFzZW5hbWUgPSBwYXRoLnBhcnNlKGZpbGVQYXRoKS5uYW1lO1xuICAgICAgYWNjW2Jhc2VuYW1lXSA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY3VzdG9tU3FsU3RhdGVtZW50cyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgfVxufVxuIl19
|
package/lib/types.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { IUserPool } from 'aws-cdk-lib/aws-cognito';
|
|
|
6
6
|
import { IFunction, CfnFunction } from 'aws-cdk-lib/aws-lambda';
|
|
7
7
|
import { IBucket } from 'aws-cdk-lib/aws-s3';
|
|
8
8
|
import { AmplifyDynamoDbTableWrapper } from './amplify-dynamodb-table-wrapper';
|
|
9
|
+
import { CustomSqlDataSourceStrategy, ModelDataSourceStrategy } from './model-datasource-strategy';
|
|
9
10
|
/**
|
|
10
11
|
* Configuration for IAM Authorization on the Graphql Api.
|
|
11
12
|
* @struct - required since this interface begins with an 'I'
|
|
@@ -355,8 +356,9 @@ export interface TranslationBehavior {
|
|
|
355
356
|
readonly allowDestructiveGraphqlSchemaUpdates: boolean;
|
|
356
357
|
/**
|
|
357
358
|
* This behavior will only come into effect when both "allowDestructiveGraphqlSchemaUpdates" and this value are set to true
|
|
358
|
-
*
|
|
359
|
-
*
|
|
359
|
+
*
|
|
360
|
+
* When enabled, any GSI update operation will replace the table instead of iterative deployment, which will WIPE ALL EXISTING DATA but
|
|
361
|
+
* cost much less time for deployment This will only affect DynamoDB tables with provision strategy "AMPLIFY_TABLE".
|
|
360
362
|
* @default false
|
|
361
363
|
* @experimental
|
|
362
364
|
*/
|
|
@@ -443,8 +445,9 @@ export interface PartialTranslationBehavior {
|
|
|
443
445
|
readonly allowDestructiveGraphqlSchemaUpdates?: boolean;
|
|
444
446
|
/**
|
|
445
447
|
* This behavior will only come into effect when both "allowDestructiveGraphqlSchemaUpdates" and this value are set to true
|
|
446
|
-
*
|
|
447
|
-
*
|
|
448
|
+
*
|
|
449
|
+
* When enabled, any global secondary index update operation will replace the table instead of iterative deployment, which will WIPE ALL
|
|
450
|
+
* EXISTING DATA but cost much less time for deployment This will only affect DynamoDB tables with provision strategy "AMPLIFY_TABLE".
|
|
448
451
|
* @default false
|
|
449
452
|
* @experimental
|
|
450
453
|
*/
|
|
@@ -480,6 +483,15 @@ export interface IAmplifyGraphqlDefinition {
|
|
|
480
483
|
* @returns datasource strategy mapping
|
|
481
484
|
*/
|
|
482
485
|
readonly dataSourceStrategies: Record<string, ModelDataSourceStrategy>;
|
|
486
|
+
/**
|
|
487
|
+
* An array of custom Query or Mutation SQL commands to the data sources that resolves them.
|
|
488
|
+
*
|
|
489
|
+
* **NOTE** Explicitly specifying the 'customSqlDataSourceStrategies' configuration option is in preview and is not recommended to use
|
|
490
|
+
* with production systems. For production, use the static factory methods `fromString` or `fromFiles`.
|
|
491
|
+
* @experimental
|
|
492
|
+
* @returns a list of mappings from custom SQL commands to data sources
|
|
493
|
+
*/
|
|
494
|
+
readonly customSqlDataSourceStrategies?: CustomSqlDataSourceStrategy[];
|
|
483
495
|
}
|
|
484
496
|
/**
|
|
485
497
|
* Entry representing the required output from the backend for codegen generate commands to work.
|
|
@@ -694,123 +706,3 @@ export interface AddFunctionProps {
|
|
|
694
706
|
*/
|
|
695
707
|
readonly code?: Code;
|
|
696
708
|
}
|
|
697
|
-
/**
|
|
698
|
-
* All known ModelDataSourceStrategies. Concrete strategies vary widely in their requirements and implementations.
|
|
699
|
-
* @experimental
|
|
700
|
-
*/
|
|
701
|
-
export type ModelDataSourceStrategy = DefaultDynamoDbModelDataSourceStrategy | AmplifyDynamoDbModelDataSourceStrategy | SQLLambdaModelDataSourceStrategy;
|
|
702
|
-
export type ModelDataSourceStrategyDbType = 'DYNAMODB';
|
|
703
|
-
/**
|
|
704
|
-
* Use default CloudFormation type 'AWS::DynamoDB::Table' to provision table.
|
|
705
|
-
* @experimental
|
|
706
|
-
*/
|
|
707
|
-
export interface DefaultDynamoDbModelDataSourceStrategy {
|
|
708
|
-
readonly dbType: 'DYNAMODB';
|
|
709
|
-
readonly provisionStrategy: 'DEFAULT';
|
|
710
|
-
}
|
|
711
|
-
/**
|
|
712
|
-
* Use custom resource type 'Custom::AmplifyDynamoDBTable' to provision table.
|
|
713
|
-
* @experimental
|
|
714
|
-
*/
|
|
715
|
-
export interface AmplifyDynamoDbModelDataSourceStrategy {
|
|
716
|
-
readonly dbType: 'DYNAMODB';
|
|
717
|
-
readonly provisionStrategy: 'AMPLIFY_TABLE';
|
|
718
|
-
}
|
|
719
|
-
/**
|
|
720
|
-
* A strategy that creates a Lambda to connect to a pre-existing SQL table to resolve model data.
|
|
721
|
-
*
|
|
722
|
-
* @experimental
|
|
723
|
-
*/
|
|
724
|
-
export interface SQLLambdaModelDataSourceStrategy {
|
|
725
|
-
/**
|
|
726
|
-
* The name of the strategy. This will be used to name the AppSync DataSource itself, plus any associated resources like resolver Lambdas.
|
|
727
|
-
* This name must be unique across all schema definitions in a GraphQL API.
|
|
728
|
-
*/
|
|
729
|
-
readonly name: string;
|
|
730
|
-
/**
|
|
731
|
-
* The type of the SQL database used to process model operations for this definition.
|
|
732
|
-
*/
|
|
733
|
-
readonly dbType: 'MYSQL' | 'POSTGRES';
|
|
734
|
-
/**
|
|
735
|
-
* The parameters the Lambda data source will use to connect to the database.
|
|
736
|
-
*/
|
|
737
|
-
readonly dbConnectionConfig: SqlModelDataSourceDbConnectionConfig;
|
|
738
|
-
/**
|
|
739
|
-
* The configuration of the VPC into which to install the Lambda.
|
|
740
|
-
*/
|
|
741
|
-
readonly vpcConfiguration?: VpcConfig;
|
|
742
|
-
/**
|
|
743
|
-
* Custom SQL statements. The key is the value of the `references` attribute of the `@sql` directive in the `schema`; the value is the SQL
|
|
744
|
-
* to be executed.
|
|
745
|
-
*/
|
|
746
|
-
readonly customSqlStatements?: Record<string, string>;
|
|
747
|
-
/**
|
|
748
|
-
* An optional override for the default SQL Lambda Layer
|
|
749
|
-
*/
|
|
750
|
-
readonly sqlLambdaLayerMapping?: SQLLambdaLayerMapping;
|
|
751
|
-
/**
|
|
752
|
-
* The configuration for the provisioned concurrency of the Lambda.
|
|
753
|
-
*/
|
|
754
|
-
readonly sqlLambdaProvisionedConcurrencyConfig?: ProvisionedConcurrencyConfig;
|
|
755
|
-
}
|
|
756
|
-
/**
|
|
757
|
-
* Configuration of the VPC in which to install a Lambda to resolve queries against a SQL-based data source. The SQL Lambda will be deployed
|
|
758
|
-
* into the specified VPC, subnets, and security groups. The specified subnets and security groups must be in the same VPC. The VPC must
|
|
759
|
-
* have at least one subnet. The construct will also create VPC service endpoints in the specified subnets, as well as inbound security
|
|
760
|
-
* rules, to allow traffic on port 443 within each security group. This allows the Lambda to read database connection information from
|
|
761
|
-
* Secure Systems Manager.
|
|
762
|
-
* @experimental
|
|
763
|
-
*/
|
|
764
|
-
export interface VpcConfig {
|
|
765
|
-
/** The VPC to install the Lambda data source in. */
|
|
766
|
-
readonly vpcId: string;
|
|
767
|
-
/** The security groups to install the Lambda data source in. */
|
|
768
|
-
readonly securityGroupIds: string[];
|
|
769
|
-
/** The subnets to install the Lambda data source in, one per availability zone. */
|
|
770
|
-
readonly subnetAvailabilityZoneConfig: SubnetAvailabilityZone[];
|
|
771
|
-
}
|
|
772
|
-
/**
|
|
773
|
-
* The configuration for the provisioned concurrency of the Lambda.
|
|
774
|
-
* @experimental
|
|
775
|
-
*/
|
|
776
|
-
export interface ProvisionedConcurrencyConfig {
|
|
777
|
-
/** The amount of provisioned concurrency to allocate. **/
|
|
778
|
-
readonly provisionedConcurrentExecutions: number;
|
|
779
|
-
}
|
|
780
|
-
/**
|
|
781
|
-
* Subnet configuration for VPC endpoints used by a Lambda resolver for a SQL-based data source. Although it is possible to create multiple
|
|
782
|
-
* subnets in a single availability zone, VPC service endpoints may only be deployed to a single subnet in a given availability zone. This
|
|
783
|
-
* structure ensures that the Lambda function and VPC service endpoints are mutually consistent.
|
|
784
|
-
* @experimental
|
|
785
|
-
*/
|
|
786
|
-
export interface SubnetAvailabilityZone {
|
|
787
|
-
/** The subnet ID to install the Lambda data source in. */
|
|
788
|
-
readonly subnetId: string;
|
|
789
|
-
/** The availability zone of the subnet. */
|
|
790
|
-
readonly availabilityZone: string;
|
|
791
|
-
}
|
|
792
|
-
/**
|
|
793
|
-
* Maps a given AWS region to the SQL Lambda layer version ARN for that region. `key` is the region; the `value` is the Lambda Layer version
|
|
794
|
-
* ARN
|
|
795
|
-
*/
|
|
796
|
-
export type SQLLambdaLayerMapping = Record<string, string>;
|
|
797
|
-
/**
|
|
798
|
-
* The Secure Systems Manager parameter paths the Lambda data source will use to connect to the database.
|
|
799
|
-
*
|
|
800
|
-
* These parameters are retrieved from Secure Systems Manager in the same region as the Lambda.
|
|
801
|
-
* @experimental
|
|
802
|
-
*/
|
|
803
|
-
export interface SqlModelDataSourceDbConnectionConfig {
|
|
804
|
-
/** The Secure Systems Manager parameter containing the hostname of the database. For RDS-based SQL data sources, this can be the hostname
|
|
805
|
-
* of a database proxy, cluster, or instance.
|
|
806
|
-
*/
|
|
807
|
-
readonly hostnameSsmPath: string;
|
|
808
|
-
/** The Secure Systems Manager parameter containing the port number of the database proxy, cluster, or instance. */
|
|
809
|
-
readonly portSsmPath: string;
|
|
810
|
-
/** The Secure Systems Manager parameter containing the username to use when connecting to the database. */
|
|
811
|
-
readonly usernameSsmPath: string;
|
|
812
|
-
/** The Secure Systems Manager parameter containing the password to use when connecting to the database. */
|
|
813
|
-
readonly passwordSsmPath: string;
|
|
814
|
-
/** The Secure Systems Manager parameter containing the database name. */
|
|
815
|
-
readonly databaseNameSsmPath: string;
|
|
816
|
-
}
|