@aws-amplify/graphql-model-transformer 0.7.0-auth-dir-v-next.4 → 0.7.0-ext14.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 +15 -27
- package/lib/graphql-model-transformer.d.ts +14 -9
- package/lib/graphql-model-transformer.d.ts.map +1 -1
- package/lib/graphql-model-transformer.js +71 -41
- package/lib/graphql-model-transformer.js.map +1 -1
- package/lib/graphql-types/mutation.d.ts.map +1 -1
- package/lib/graphql-types/mutation.js +2 -5
- package/lib/graphql-types/mutation.js.map +1 -1
- package/lib/graphql-types/query.js +1 -1
- package/lib/graphql-types/query.js.map +1 -1
- package/lib/resolvers/common.js +1 -1
- package/lib/resolvers/common.js.map +1 -1
- package/lib/resolvers/mutation.d.ts.map +1 -1
- package/lib/resolvers/mutation.js +0 -1
- package/lib/resolvers/mutation.js.map +1 -1
- package/lib/resolvers/query.d.ts.map +1 -1
- package/lib/resolvers/query.js +7 -5
- package/lib/resolvers/query.js.map +1 -1
- package/lib/resolvers/subscriptions.js +1 -1
- package/lib/resolvers/subscriptions.js.map +1 -1
- package/lib/wrappers/object-definition-wrapper.d.ts +2 -15
- package/lib/wrappers/object-definition-wrapper.d.ts.map +1 -1
- package/lib/wrappers/object-definition-wrapper.js +7 -43
- package/lib/wrappers/object-definition-wrapper.js.map +1 -1
- package/package.json +34 -32
- package/src/__tests__/__snapshots__/model-transformer.test.ts.snap +326 -796
- package/src/__tests__/model-transformer.test.ts +92 -6
- package/src/graphql-model-transformer.ts +106 -37
- package/src/graphql-types/mutation.ts +2 -4
- package/src/graphql-types/query.ts +1 -1
- package/src/resolvers/common.ts +1 -1
- package/src/resolvers/mutation.ts +0 -3
- package/src/resolvers/query.ts +10 -11
- package/src/resolvers/subscriptions.ts +1 -1
- package/src/wrappers/object-definition-wrapper.ts +2 -52
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,62 +3,50 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
# [0.7.0-
|
|
6
|
+
# [0.7.0-ext14.0](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-model-transformer@0.6.4...@aws-amplify/graphql-model-transformer@0.7.0-ext14.0) (2021-11-05)
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
### Bug Fixes
|
|
10
10
|
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* **graphql-model-transformer:** fixed model transformer ID generation when ID field is not specified ([#8633](https://github.com/aws-amplify/amplify-cli/issues/8633)) ([b515d16](https://github.com/aws-amplify/amplify-cli/commit/b515d1617a98d613b2d9feb424ece12204d63402))
|
|
12
|
+
* **graphql-model-transformer:** override resource logical id to fix v1 to v2 transformer migration ([#8597](https://github.com/aws-amplify/amplify-cli/issues/8597)) ([e3a2afb](https://github.com/aws-amplify/amplify-cli/commit/e3a2afbbed6e97f143fc7c83064e2193f4c91bdd))
|
|
13
13
|
|
|
14
14
|
|
|
15
|
+
### Features
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
# [0.7.0-auth-dir-v-next.3](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-model-transformer@0.7.0-auth-dir-v-next.2...@aws-amplify/graphql-model-transformer@0.7.0-auth-dir-v-next.3) (2021-09-15)
|
|
19
|
-
|
|
20
|
-
**Note:** Version bump only for package @aws-amplify/graphql-model-transformer
|
|
21
|
-
|
|
17
|
+
* generate list types as non-null ([#8166](https://github.com/aws-amplify/amplify-cli/issues/8166)) ([93786c1](https://github.com/aws-amplify/amplify-cli/commit/93786c13ef04c72748ca32a1ef7878c0e6b5b129))
|
|
22
18
|
|
|
23
19
|
|
|
24
20
|
|
|
25
21
|
|
|
26
|
-
# [0.7.0-auth-dir-v-next.2](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-model-transformer@0.7.0-auth-dir-v-next.1...@aws-amplify/graphql-model-transformer@0.7.0-auth-dir-v-next.2) (2021-09-14)
|
|
27
22
|
|
|
23
|
+
## [0.6.4](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-model-transformer@0.6.3...@aws-amplify/graphql-model-transformer@0.6.4) (2021-10-10)
|
|
28
24
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
* **graphql-model-transformer:** use hasAuth flag when sandbox mode is disabled ([#8179](https://github.com/aws-amplify/amplify-cli/issues/8179)) ([727bb6f](https://github.com/aws-amplify/amplify-cli/commit/727bb6ff8c726669f358e5d61fe895229bd7a6a4))
|
|
25
|
+
**Note:** Version bump only for package @aws-amplify/graphql-model-transformer
|
|
32
26
|
|
|
33
27
|
|
|
34
28
|
|
|
35
29
|
|
|
36
30
|
|
|
37
|
-
|
|
31
|
+
## [0.6.3](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-model-transformer@0.6.2...@aws-amplify/graphql-model-transformer@0.6.3) (2021-09-27)
|
|
38
32
|
|
|
39
33
|
|
|
40
|
-
###
|
|
34
|
+
### Bug Fixes
|
|
41
35
|
|
|
42
|
-
* [@model](https://github.com/model) conflict resolution ([
|
|
43
|
-
*
|
|
44
|
-
* graphql
|
|
45
|
-
* graphql auth v2 add schemaChanges, iam policy generation, and query/read resolvers ([7ac761b](https://github.com/aws-amplify/amplify-cli/commit/7ac761b422c23f09eea2602f147ebfd6052e5c80))
|
|
46
|
-
* **graphql-model-transformer:** set up transformer for sandbox mode directive ([#8138](https://github.com/aws-amplify/amplify-cli/issues/8138)) ([e805311](https://github.com/aws-amplify/amplify-cli/commit/e805311d80393afef7e0bc7ad757b51706e7a3bf))
|
|
36
|
+
* **graphql-model-transformer:** [@model](https://github.com/model) conflict resolution ([#8035](https://github.com/aws-amplify/amplify-cli/issues/8035)) ([f3bdc4a](https://github.com/aws-amplify/amplify-cli/commit/f3bdc4ac1fcf596f634d9d2e968785e76f7b138c))
|
|
37
|
+
* **graphql-model-transformer:** iam role name does not exceed 64 characters ([#8244](https://github.com/aws-amplify/amplify-cli/issues/8244)) ([812a671](https://github.com/aws-amplify/amplify-cli/commit/812a67163d6dd33160bf7ace9afd538c83a7af1a))
|
|
38
|
+
* **graphql-model-transformer:** remove unnecessary warnings for resolver config per type ([#8265](https://github.com/aws-amplify/amplify-cli/issues/8265)) ([2f2f0a5](https://github.com/aws-amplify/amplify-cli/commit/2f2f0a5bea59278219c1f4ebb5276927dc5a0fbd))
|
|
47
39
|
|
|
48
40
|
|
|
49
41
|
|
|
50
42
|
|
|
51
43
|
|
|
52
|
-
|
|
44
|
+
## [0.6.2](https://github.com/aws-amplify/amplify-cli/compare/@aws-amplify/graphql-model-transformer@0.6.1...@aws-amplify/graphql-model-transformer@0.6.2) (2021-09-14)
|
|
53
45
|
|
|
54
46
|
|
|
55
|
-
###
|
|
47
|
+
### Bug Fixes
|
|
56
48
|
|
|
57
|
-
* [
|
|
58
|
-
* add [@auth](https://github.com/auth) base package with Access Control ([31bd152](https://github.com/aws-amplify/amplify-cli/commit/31bd15276e3bf2e86f5b188bf581d3abbf7ab223))
|
|
59
|
-
* graphql auth v2 add auth on mutation and subscription resolvers ([acaff15](https://github.com/aws-amplify/amplify-cli/commit/acaff150efa7da285330e718aaf3fc36cae465d8))
|
|
60
|
-
* graphql auth v2 add schemaChanges, iam policy generation, and query/read resolvers ([7ac761b](https://github.com/aws-amplify/amplify-cli/commit/7ac761b422c23f09eea2602f147ebfd6052e5c80))
|
|
61
|
-
* **graphql-model-transformer:** set up transformer for sandbox mode directive ([#8138](https://github.com/aws-amplify/amplify-cli/issues/8138)) ([e805311](https://github.com/aws-amplify/amplify-cli/commit/e805311d80393afef7e0bc7ad757b51706e7a3bf))
|
|
49
|
+
* **graphql-model-transformer:** fix typo in print block ([#8152](https://github.com/aws-amplify/amplify-cli/issues/8152)) ([7377e58](https://github.com/aws-amplify/amplify-cli/commit/7377e58535dd5555d9e11cf3114fb23cdbb1f382))
|
|
62
50
|
|
|
63
51
|
|
|
64
52
|
|
|
@@ -48,28 +48,31 @@ export declare class ModelTransformer extends TransformerModelBase implements Tr
|
|
|
48
48
|
prepare: (context: TransformerPrepareStepContextProvider) => void;
|
|
49
49
|
transformSchema: (ctx: TransformerTransformSchemaStepContextProvider) => void;
|
|
50
50
|
generateResolvers: (context: TransformerContextProvider) => void;
|
|
51
|
-
generateGetResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string) => TransformerResolverProvider;
|
|
52
|
-
generateListResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string) => TransformerResolverProvider;
|
|
53
|
-
generateUpdateResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string) => TransformerResolverProvider;
|
|
54
|
-
generateDeleteResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string) => TransformerResolverProvider;
|
|
55
|
-
generateOnCreateResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string) => TransformerResolverProvider;
|
|
56
|
-
generateOnUpdateResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string) => TransformerResolverProvider;
|
|
57
|
-
generateOnDeleteResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string) => TransformerResolverProvider;
|
|
58
|
-
generateSyncResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string) => TransformerResolverProvider;
|
|
51
|
+
generateGetResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string) => TransformerResolverProvider;
|
|
52
|
+
generateListResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string) => TransformerResolverProvider;
|
|
53
|
+
generateUpdateResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string) => TransformerResolverProvider;
|
|
54
|
+
generateDeleteResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string) => TransformerResolverProvider;
|
|
55
|
+
generateOnCreateResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string) => TransformerResolverProvider;
|
|
56
|
+
generateOnUpdateResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string) => TransformerResolverProvider;
|
|
57
|
+
generateOnDeleteResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string) => TransformerResolverProvider;
|
|
58
|
+
generateSyncResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string) => TransformerResolverProvider;
|
|
59
59
|
getQueryFieldNames: (ctx: TransformerTransformSchemaStepContextProvider, type: ObjectTypeDefinitionNode) => Set<{
|
|
60
60
|
fieldName: string;
|
|
61
61
|
typeName: string;
|
|
62
62
|
type: QueryFieldType;
|
|
63
|
+
resolverLogicalId: string;
|
|
63
64
|
}>;
|
|
64
65
|
getMutationFieldNames: (ctx: TransformerTransformSchemaStepContextProvider, type: ObjectTypeDefinitionNode) => Set<{
|
|
65
66
|
fieldName: string;
|
|
66
67
|
typeName: string;
|
|
67
68
|
type: MutationFieldType;
|
|
69
|
+
resolverLogicalId: string;
|
|
68
70
|
}>;
|
|
69
71
|
getMutationName: (subscriptionType: SubscriptionFieldType, mutationMap: Set<{
|
|
70
72
|
fieldName: string;
|
|
71
73
|
typeName: string;
|
|
72
74
|
type: MutationFieldType;
|
|
75
|
+
resolverLogicalId: string;
|
|
73
76
|
}>) => string;
|
|
74
77
|
private createQueryFields;
|
|
75
78
|
private createMutationFields;
|
|
@@ -78,10 +81,11 @@ export declare class ModelTransformer extends TransformerModelBase implements Tr
|
|
|
78
81
|
fieldName: string;
|
|
79
82
|
typeName: string;
|
|
80
83
|
type: SubscriptionFieldType;
|
|
84
|
+
resolverLogicalId: string;
|
|
81
85
|
}>;
|
|
82
86
|
getDataSourceResource: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode) => DataSourceInstance;
|
|
83
87
|
getDataSourceType: () => AppSyncDataSourceType;
|
|
84
|
-
generateCreateResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string) => TransformerResolverProvider;
|
|
88
|
+
generateCreateResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string) => TransformerResolverProvider;
|
|
85
89
|
getInputs: (ctx: TransformerTransformSchemaStepContextProvider, type: ObjectTypeDefinitionNode, operation: {
|
|
86
90
|
fieldName: string;
|
|
87
91
|
typeName: string;
|
|
@@ -103,6 +107,7 @@ export declare class ModelTransformer extends TransformerModelBase implements Tr
|
|
|
103
107
|
private createIAMRole;
|
|
104
108
|
private ensureModelSortDirectionEnum;
|
|
105
109
|
private getOptions;
|
|
110
|
+
private ensureValidSubscriptionName;
|
|
106
111
|
}
|
|
107
112
|
export {};
|
|
108
113
|
//# sourceMappingURL=graphql-model-transformer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-model-transformer.d.ts","sourceRoot":"","sources":["../src/graphql-model-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"graphql-model-transformer.d.ts","sourceRoot":"","sources":["../src/graphql-model-transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
18
18
|
__setModuleDefault(result, mod);
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
21
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
25
|
exports.ModelTransformer = exports.directiveDefinition = exports.SubscriptionLevel = void 0;
|
|
23
26
|
const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-core");
|
|
@@ -30,6 +33,7 @@ const graphql_types_1 = require("./graphql-types");
|
|
|
30
33
|
const resolvers_1 = require("./resolvers");
|
|
31
34
|
const query_1 = require("./resolvers/query");
|
|
32
35
|
const object_definition_wrapper_1 = require("./wrappers/object-definition-wrapper");
|
|
36
|
+
const md5_1 = __importDefault(require("md5"));
|
|
33
37
|
var SubscriptionLevel;
|
|
34
38
|
(function (SubscriptionLevel) {
|
|
35
39
|
SubscriptionLevel["off"] = "off";
|
|
@@ -84,14 +88,15 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
84
88
|
throw new graphql_transformer_core_1.InvalidDirectiveError(`'${definition.name.value}' is a reserved type name and currently in use within the default schema element.`);
|
|
85
89
|
}
|
|
86
90
|
const typeName = definition.name.value;
|
|
87
|
-
|
|
91
|
+
if (ctx.isProjectUsingDataStore()) {
|
|
92
|
+
graphql_transformer_core_1.SyncUtils.validateResolverConfigForType(ctx, typeName);
|
|
93
|
+
}
|
|
94
|
+
const directiveWrapped = new graphql_transformer_core_1.DirectiveWrapper(directive);
|
|
88
95
|
const options = directiveWrapped.getArguments({
|
|
89
96
|
queries: {
|
|
90
97
|
get: graphql_transformer_common_1.toCamelCase(['get', typeName]),
|
|
91
98
|
list: graphql_transformer_common_1.toCamelCase(['list', graphql_transformer_common_1.plurality(typeName, true)]),
|
|
92
|
-
...(ctx.isProjectUsingDataStore()
|
|
93
|
-
? { sync: graphql_transformer_common_1.toCamelCase(['sync', graphql_transformer_common_1.plurality(typeName, true)]) }
|
|
94
|
-
: undefined),
|
|
99
|
+
...(ctx.isProjectUsingDataStore() ? { sync: graphql_transformer_common_1.toCamelCase(['sync', graphql_transformer_common_1.plurality(typeName, true)]) } : undefined),
|
|
95
100
|
},
|
|
96
101
|
mutations: {
|
|
97
102
|
create: graphql_transformer_common_1.toCamelCase(['create', typeName]),
|
|
@@ -100,9 +105,9 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
100
105
|
},
|
|
101
106
|
subscriptions: {
|
|
102
107
|
level: SubscriptionLevel.on,
|
|
103
|
-
onCreate: [graphql_transformer_common_1.toCamelCase(['onCreate', typeName])],
|
|
104
|
-
onDelete: [graphql_transformer_common_1.toCamelCase(['onDelete', typeName])],
|
|
105
|
-
onUpdate: [graphql_transformer_common_1.toCamelCase(['onUpdate', typeName])],
|
|
108
|
+
onCreate: [this.ensureValidSubscriptionName(graphql_transformer_common_1.toCamelCase(['onCreate', typeName]))],
|
|
109
|
+
onDelete: [this.ensureValidSubscriptionName(graphql_transformer_common_1.toCamelCase(['onDelete', typeName]))],
|
|
110
|
+
onUpdate: [this.ensureValidSubscriptionName(graphql_transformer_common_1.toCamelCase(['onUpdate', typeName]))],
|
|
106
111
|
},
|
|
107
112
|
timestamps: {
|
|
108
113
|
createdAt: 'createdAt',
|
|
@@ -133,7 +138,6 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
133
138
|
ctx.output.addSubscriptionFields(subscriptionsFields);
|
|
134
139
|
this.addAutoGeneratableFields(ctx, type);
|
|
135
140
|
if (ctx.isProjectUsingDataStore()) {
|
|
136
|
-
this.options.SyncConfig = graphql_transformer_core_1.SyncUtils.getSyncConfig(ctx, def.name.value);
|
|
137
141
|
this.addModelSyncFields(ctx, type);
|
|
138
142
|
}
|
|
139
143
|
}
|
|
@@ -150,13 +154,13 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
150
154
|
let resolver;
|
|
151
155
|
switch (query.type) {
|
|
152
156
|
case graphql_transformer_interfaces_1.QueryFieldType.GET:
|
|
153
|
-
resolver = this.generateGetResolver(context, def, query.typeName, query.fieldName);
|
|
157
|
+
resolver = this.generateGetResolver(context, def, query.typeName, query.fieldName, query.resolverLogicalId);
|
|
154
158
|
break;
|
|
155
159
|
case graphql_transformer_interfaces_1.QueryFieldType.LIST:
|
|
156
|
-
resolver = this.generateListResolver(context, def, query.typeName, query.fieldName);
|
|
160
|
+
resolver = this.generateListResolver(context, def, query.typeName, query.fieldName, query.resolverLogicalId);
|
|
157
161
|
break;
|
|
158
162
|
case graphql_transformer_interfaces_1.QueryFieldType.SYNC:
|
|
159
|
-
resolver = this.generateSyncResolver(context, def, query.typeName, query.fieldName);
|
|
163
|
+
resolver = this.generateSyncResolver(context, def, query.typeName, query.fieldName, query.resolverLogicalId);
|
|
160
164
|
break;
|
|
161
165
|
default:
|
|
162
166
|
throw new Error('Unknown query field type');
|
|
@@ -170,13 +174,13 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
170
174
|
let resolver;
|
|
171
175
|
switch (mutation.type) {
|
|
172
176
|
case graphql_transformer_interfaces_1.MutationFieldType.CREATE:
|
|
173
|
-
resolver = this.generateCreateResolver(context, def, mutation.typeName, mutation.fieldName);
|
|
177
|
+
resolver = this.generateCreateResolver(context, def, mutation.typeName, mutation.fieldName, mutation.resolverLogicalId);
|
|
174
178
|
break;
|
|
175
179
|
case graphql_transformer_interfaces_1.MutationFieldType.DELETE:
|
|
176
|
-
resolver = this.generateDeleteResolver(context, def, mutation.typeName, mutation.fieldName);
|
|
180
|
+
resolver = this.generateDeleteResolver(context, def, mutation.typeName, mutation.fieldName, mutation.resolverLogicalId);
|
|
177
181
|
break;
|
|
178
182
|
case graphql_transformer_interfaces_1.MutationFieldType.UPDATE:
|
|
179
|
-
resolver = this.generateUpdateResolver(context, def, mutation.typeName, mutation.fieldName);
|
|
183
|
+
resolver = this.generateUpdateResolver(context, def, mutation.typeName, mutation.fieldName, mutation.resolverLogicalId);
|
|
180
184
|
break;
|
|
181
185
|
default:
|
|
182
186
|
throw new Error('Unknown mutation field type');
|
|
@@ -192,13 +196,13 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
192
196
|
let resolver;
|
|
193
197
|
switch (subscription.type) {
|
|
194
198
|
case graphql_transformer_interfaces_1.SubscriptionFieldType.ON_CREATE:
|
|
195
|
-
resolver = this.generateOnCreateResolver(context, def, subscription.typeName, subscription.fieldName);
|
|
199
|
+
resolver = this.generateOnCreateResolver(context, def, subscription.typeName, subscription.fieldName, subscription.resolverLogicalId);
|
|
196
200
|
break;
|
|
197
201
|
case graphql_transformer_interfaces_1.SubscriptionFieldType.ON_UPDATE:
|
|
198
|
-
resolver = this.generateOnUpdateResolver(context, def, subscription.typeName, subscription.fieldName);
|
|
202
|
+
resolver = this.generateOnUpdateResolver(context, def, subscription.typeName, subscription.fieldName, subscription.resolverLogicalId);
|
|
199
203
|
break;
|
|
200
204
|
case graphql_transformer_interfaces_1.SubscriptionFieldType.ON_DELETE:
|
|
201
|
-
resolver = this.generateOnDeleteResolver(context, def, subscription.typeName, subscription.fieldName);
|
|
205
|
+
resolver = this.generateOnDeleteResolver(context, def, subscription.typeName, subscription.fieldName, subscription.resolverLogicalId);
|
|
202
206
|
break;
|
|
203
207
|
default:
|
|
204
208
|
throw new Error('Unknown subscription field type');
|
|
@@ -210,71 +214,71 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
210
214
|
}
|
|
211
215
|
}
|
|
212
216
|
};
|
|
213
|
-
this.generateGetResolver = (ctx, type, typeName, fieldName) => {
|
|
217
|
+
this.generateGetResolver = (ctx, type, typeName, fieldName, resolverLogicalId) => {
|
|
214
218
|
const isSyncEnabled = ctx.isProjectUsingDataStore();
|
|
215
219
|
const dataSource = this.datasourceMap[type.name.value];
|
|
216
220
|
const resolverKey = `Get${resolvers_1.generateResolverKey(typeName, fieldName)}`;
|
|
217
221
|
if (!this.resolverMap[resolverKey]) {
|
|
218
|
-
this.resolverMap[resolverKey] = ctx.resolvers.generateQueryResolver(typeName, fieldName, dataSource, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(query_1.generateGetRequestTemplate(), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(query_1.generateGetResponseTemplate(isSyncEnabled), `${typeName}.${fieldName}.res.vtl`));
|
|
222
|
+
this.resolverMap[resolverKey] = ctx.resolvers.generateQueryResolver(typeName, fieldName, resolverLogicalId, dataSource, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(query_1.generateGetRequestTemplate(), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(query_1.generateGetResponseTemplate(isSyncEnabled), `${typeName}.${fieldName}.res.vtl`));
|
|
219
223
|
}
|
|
220
224
|
return this.resolverMap[resolverKey];
|
|
221
225
|
};
|
|
222
|
-
this.generateListResolver = (ctx, type, typeName, fieldName) => {
|
|
226
|
+
this.generateListResolver = (ctx, type, typeName, fieldName, resolverLogicalId) => {
|
|
223
227
|
const isSyncEnabled = ctx.isProjectUsingDataStore();
|
|
224
228
|
const dataSource = this.datasourceMap[type.name.value];
|
|
225
229
|
const resolverKey = `List${resolvers_1.generateResolverKey(typeName, fieldName)}`;
|
|
226
230
|
if (!this.resolverMap[resolverKey]) {
|
|
227
|
-
this.resolverMap[resolverKey] = ctx.resolvers.generateQueryResolver(typeName, fieldName, dataSource, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(query_1.generateListRequestTemplate(), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateDefaultResponseMappingTemplate(isSyncEnabled), `${typeName}.${fieldName}.res.vtl`));
|
|
231
|
+
this.resolverMap[resolverKey] = ctx.resolvers.generateQueryResolver(typeName, fieldName, resolverLogicalId, dataSource, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(query_1.generateListRequestTemplate(), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateDefaultResponseMappingTemplate(isSyncEnabled), `${typeName}.${fieldName}.res.vtl`));
|
|
228
232
|
}
|
|
229
233
|
return this.resolverMap[resolverKey];
|
|
230
234
|
};
|
|
231
|
-
this.generateUpdateResolver = (ctx, type, typeName, fieldName) => {
|
|
235
|
+
this.generateUpdateResolver = (ctx, type, typeName, fieldName, resolverLogicalId) => {
|
|
232
236
|
const isSyncEnabled = ctx.isProjectUsingDataStore();
|
|
233
237
|
const dataSource = this.datasourceMap[type.name.value];
|
|
234
238
|
const resolverKey = `Update${resolvers_1.generateResolverKey(typeName, fieldName)}`;
|
|
235
239
|
if (!this.resolverMap[resolverKey]) {
|
|
236
|
-
const resolver = ctx.resolvers.generateMutationResolver(typeName, fieldName, dataSource, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateUpdateRequestTemplate(typeName, isSyncEnabled), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateDefaultResponseMappingTemplate(isSyncEnabled, true), `${typeName}.${fieldName}.res.vtl`));
|
|
240
|
+
const resolver = ctx.resolvers.generateMutationResolver(typeName, fieldName, resolverLogicalId, dataSource, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateUpdateRequestTemplate(typeName, isSyncEnabled), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateDefaultResponseMappingTemplate(isSyncEnabled, true), `${typeName}.${fieldName}.res.vtl`));
|
|
237
241
|
resolver.addToSlot('init', graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateUpdateInitSlotTemplate(type.name.value, this.modelDirectiveConfig.get(type.name.value)), `${typeName}.${fieldName}.{slotName}.{slotIndex}.req.vtl`));
|
|
238
242
|
this.resolverMap[resolverKey] = resolver;
|
|
239
243
|
}
|
|
240
244
|
return this.resolverMap[resolverKey];
|
|
241
245
|
};
|
|
242
|
-
this.generateDeleteResolver = (ctx, type, typeName, fieldName) => {
|
|
246
|
+
this.generateDeleteResolver = (ctx, type, typeName, fieldName, resolverLogicalId) => {
|
|
243
247
|
const isSyncEnabled = ctx.isProjectUsingDataStore();
|
|
244
248
|
const dataSource = this.datasourceMap[type.name.value];
|
|
245
249
|
const resolverKey = `delete${resolvers_1.generateResolverKey(typeName, fieldName)}`;
|
|
246
250
|
if (!this.resolverMap[resolverKey]) {
|
|
247
|
-
this.resolverMap[resolverKey] = ctx.resolvers.generateMutationResolver(typeName, fieldName, dataSource, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateDeleteRequestTemplate(isSyncEnabled), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateDefaultResponseMappingTemplate(isSyncEnabled, true), `${typeName}.${fieldName}.res.vtl`));
|
|
251
|
+
this.resolverMap[resolverKey] = ctx.resolvers.generateMutationResolver(typeName, fieldName, resolverLogicalId, dataSource, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateDeleteRequestTemplate(isSyncEnabled), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateDefaultResponseMappingTemplate(isSyncEnabled, true), `${typeName}.${fieldName}.res.vtl`));
|
|
248
252
|
}
|
|
249
253
|
return this.resolverMap[resolverKey];
|
|
250
254
|
};
|
|
251
|
-
this.generateOnCreateResolver = (ctx, type, typeName, fieldName) => {
|
|
255
|
+
this.generateOnCreateResolver = (ctx, type, typeName, fieldName, resolverLogicalId) => {
|
|
252
256
|
const resolverKey = `OnCreate${resolvers_1.generateResolverKey(typeName, fieldName)}`;
|
|
253
257
|
if (!this.resolverMap[resolverKey]) {
|
|
254
|
-
this.resolverMap[resolverKey] = ctx.resolvers.generateSubscriptionResolver(typeName, fieldName, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateSubscriptionRequestTemplate(), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateSubscriptionResponseTemplate(), `${typeName}.${fieldName}.res.vtl`));
|
|
258
|
+
this.resolverMap[resolverKey] = ctx.resolvers.generateSubscriptionResolver(typeName, fieldName, resolverLogicalId, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateSubscriptionRequestTemplate(), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateSubscriptionResponseTemplate(), `${typeName}.${fieldName}.res.vtl`));
|
|
255
259
|
}
|
|
256
260
|
return this.resolverMap[resolverKey];
|
|
257
261
|
};
|
|
258
|
-
this.generateOnUpdateResolver = (ctx, type, typeName, fieldName) => {
|
|
262
|
+
this.generateOnUpdateResolver = (ctx, type, typeName, fieldName, resolverLogicalId) => {
|
|
259
263
|
const resolverKey = `OnUpdate${resolvers_1.generateResolverKey(typeName, fieldName)}`;
|
|
260
264
|
if (!this.resolverMap[resolverKey]) {
|
|
261
|
-
this.resolverMap[resolverKey] = ctx.resolvers.generateSubscriptionResolver(typeName, fieldName, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateSubscriptionRequestTemplate(), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateSubscriptionResponseTemplate(), `${typeName}.${fieldName}.res.vtl`));
|
|
265
|
+
this.resolverMap[resolverKey] = ctx.resolvers.generateSubscriptionResolver(typeName, fieldName, resolverLogicalId, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateSubscriptionRequestTemplate(), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateSubscriptionResponseTemplate(), `${typeName}.${fieldName}.res.vtl`));
|
|
262
266
|
}
|
|
263
267
|
return this.resolverMap[resolverKey];
|
|
264
268
|
};
|
|
265
|
-
this.generateOnDeleteResolver = (ctx, type, typeName, fieldName) => {
|
|
269
|
+
this.generateOnDeleteResolver = (ctx, type, typeName, fieldName, resolverLogicalId) => {
|
|
266
270
|
const resolverKey = `OnDelete${resolvers_1.generateResolverKey(typeName, fieldName)}`;
|
|
267
271
|
if (!this.resolverMap[resolverKey]) {
|
|
268
|
-
this.resolverMap[resolverKey] = ctx.resolvers.generateSubscriptionResolver(typeName, fieldName, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateSubscriptionRequestTemplate(), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateSubscriptionResponseTemplate(), `${typeName}.${fieldName}.res.vtl`));
|
|
272
|
+
this.resolverMap[resolverKey] = ctx.resolvers.generateSubscriptionResolver(typeName, fieldName, resolverLogicalId, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateSubscriptionRequestTemplate(), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateSubscriptionResponseTemplate(), `${typeName}.${fieldName}.res.vtl`));
|
|
269
273
|
}
|
|
270
274
|
return this.resolverMap[resolverKey];
|
|
271
275
|
};
|
|
272
|
-
this.generateSyncResolver = (ctx, type, typeName, fieldName) => {
|
|
276
|
+
this.generateSyncResolver = (ctx, type, typeName, fieldName, resolverLogicalId) => {
|
|
273
277
|
const isSyncEnabled = ctx.isProjectUsingDataStore();
|
|
274
278
|
const dataSource = this.datasourceMap[type.name.value];
|
|
275
279
|
const resolverKey = `Sync${resolvers_1.generateResolverKey(typeName, fieldName)}`;
|
|
276
280
|
if (!this.resolverMap[resolverKey]) {
|
|
277
|
-
this.resolverMap[resolverKey] = ctx.resolvers.generateQueryResolver(typeName, fieldName, dataSource, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(query_1.generateSyncRequestTemplate(), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateDefaultResponseMappingTemplate(isSyncEnabled), `${typeName}.${fieldName}.res.vtl`));
|
|
281
|
+
this.resolverMap[resolverKey] = ctx.resolvers.generateQueryResolver(typeName, fieldName, resolverLogicalId, dataSource, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(query_1.generateSyncRequestTemplate(), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateDefaultResponseMappingTemplate(isSyncEnabled), `${typeName}.${fieldName}.res.vtl`));
|
|
278
282
|
}
|
|
279
283
|
return this.resolverMap[resolverKey];
|
|
280
284
|
};
|
|
@@ -288,6 +292,7 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
288
292
|
typeName: 'Query',
|
|
289
293
|
fieldName: modelDirectiveConfig.queries.get || graphql_transformer_common_1.toCamelCase(['get', typeName]),
|
|
290
294
|
type: graphql_transformer_interfaces_1.QueryFieldType.GET,
|
|
295
|
+
resolverLogicalId: graphql_transformer_common_1.ResolverResourceIDs.DynamoDBGetResolverResourceID(typeName),
|
|
291
296
|
});
|
|
292
297
|
}
|
|
293
298
|
if ((_b = modelDirectiveConfig === null || modelDirectiveConfig === void 0 ? void 0 : modelDirectiveConfig.queries) === null || _b === void 0 ? void 0 : _b.list) {
|
|
@@ -295,6 +300,7 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
295
300
|
typeName: 'Query',
|
|
296
301
|
fieldName: modelDirectiveConfig.queries.list || graphql_transformer_common_1.toCamelCase(['list', typeName]),
|
|
297
302
|
type: graphql_transformer_interfaces_1.QueryFieldType.LIST,
|
|
303
|
+
resolverLogicalId: graphql_transformer_common_1.ResolverResourceIDs.DynamoDBListResolverResourceID(typeName),
|
|
298
304
|
});
|
|
299
305
|
}
|
|
300
306
|
if ((_c = modelDirectiveConfig === null || modelDirectiveConfig === void 0 ? void 0 : modelDirectiveConfig.queries) === null || _c === void 0 ? void 0 : _c.sync) {
|
|
@@ -302,6 +308,7 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
302
308
|
typeName: 'Query',
|
|
303
309
|
fieldName: modelDirectiveConfig.queries.sync || graphql_transformer_common_1.toCamelCase(['sync', typeName]),
|
|
304
310
|
type: graphql_transformer_interfaces_1.QueryFieldType.SYNC,
|
|
311
|
+
resolverLogicalId: graphql_transformer_common_1.ResolverResourceIDs.SyncResolverResourceID(typeName),
|
|
305
312
|
});
|
|
306
313
|
}
|
|
307
314
|
return fields;
|
|
@@ -321,6 +328,18 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
321
328
|
throw new Error('Unknown mutation type');
|
|
322
329
|
}
|
|
323
330
|
};
|
|
331
|
+
const getMutationResolverLogicalId = (type) => {
|
|
332
|
+
switch (type) {
|
|
333
|
+
case 'create':
|
|
334
|
+
return graphql_transformer_common_1.ResolverResourceIDs.DynamoDBCreateResolverResourceID(typeName);
|
|
335
|
+
case 'update':
|
|
336
|
+
return graphql_transformer_common_1.ResolverResourceIDs.DynamoDBUpdateResolverResourceID(typeName);
|
|
337
|
+
case 'delete':
|
|
338
|
+
return graphql_transformer_common_1.ResolverResourceIDs.DynamoDBDeleteResolverResourceID(typeName);
|
|
339
|
+
default:
|
|
340
|
+
throw new Error('Unknown mutation type');
|
|
341
|
+
}
|
|
342
|
+
};
|
|
324
343
|
const fieldNames = new Set();
|
|
325
344
|
for (let [mutationType, mutationName] of Object.entries((modelDirectiveConfig === null || modelDirectiveConfig === void 0 ? void 0 : modelDirectiveConfig.mutations) || {})) {
|
|
326
345
|
if (mutationName) {
|
|
@@ -328,6 +347,7 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
328
347
|
typeName: 'Mutation',
|
|
329
348
|
fieldName: mutationName,
|
|
330
349
|
type: getMutationType(mutationType),
|
|
350
|
+
resolverLogicalId: getMutationResolverLogicalId(mutationType),
|
|
331
351
|
});
|
|
332
352
|
}
|
|
333
353
|
}
|
|
@@ -402,6 +422,7 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
402
422
|
typeName: 'Subscription',
|
|
403
423
|
fieldName: fieldName,
|
|
404
424
|
type: graphql_transformer_interfaces_1.SubscriptionFieldType.ON_CREATE,
|
|
425
|
+
resolverLogicalId: graphql_transformer_common_1.ModelResourceIDs.ModelOnCreateSubscriptionName(type.name.value),
|
|
405
426
|
});
|
|
406
427
|
}
|
|
407
428
|
}
|
|
@@ -411,6 +432,7 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
411
432
|
typeName: 'Subscription',
|
|
412
433
|
fieldName: fieldName,
|
|
413
434
|
type: graphql_transformer_interfaces_1.SubscriptionFieldType.ON_UPDATE,
|
|
435
|
+
resolverLogicalId: graphql_transformer_common_1.ModelResourceIDs.ModelOnUpdateSubscriptionName(type.name.value),
|
|
414
436
|
});
|
|
415
437
|
}
|
|
416
438
|
}
|
|
@@ -420,6 +442,7 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
420
442
|
typeName: 'Subscription',
|
|
421
443
|
fieldName: fieldName,
|
|
422
444
|
type: graphql_transformer_interfaces_1.SubscriptionFieldType.ON_DELETE,
|
|
445
|
+
resolverLogicalId: graphql_transformer_common_1.ModelResourceIDs.ModelOnDeleteSubscriptionName(type.name.value),
|
|
423
446
|
});
|
|
424
447
|
}
|
|
425
448
|
}
|
|
@@ -432,12 +455,12 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
432
455
|
this.getDataSourceType = () => {
|
|
433
456
|
return graphql_transformer_interfaces_1.AppSyncDataSourceType.AMAZON_DYNAMODB;
|
|
434
457
|
};
|
|
435
|
-
this.generateCreateResolver = (ctx, type, typeName, fieldName) => {
|
|
458
|
+
this.generateCreateResolver = (ctx, type, typeName, fieldName, resolverLogicalId) => {
|
|
436
459
|
const isSyncEnabled = ctx.isProjectUsingDataStore();
|
|
437
460
|
const dataSource = this.datasourceMap[type.name.value];
|
|
438
461
|
const resolverKey = `Create${resolvers_1.generateResolverKey(typeName, fieldName)}`;
|
|
439
462
|
if (!this.resolverMap[resolverKey]) {
|
|
440
|
-
const resolver = ctx.resolvers.generateMutationResolver(typeName, fieldName, dataSource, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateCreateRequestTemplate(type.name.value), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateDefaultResponseMappingTemplate(isSyncEnabled, true), `${typeName}.${fieldName}.res.vtl`));
|
|
463
|
+
const resolver = ctx.resolvers.generateMutationResolver(typeName, fieldName, resolverLogicalId, dataSource, graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateCreateRequestTemplate(type.name.value), `${typeName}.${fieldName}.req.vtl`), graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateDefaultResponseMappingTemplate(isSyncEnabled, true), `${typeName}.${fieldName}.res.vtl`));
|
|
441
464
|
this.resolverMap[resolverKey] = resolver;
|
|
442
465
|
resolver.addToSlot('init', graphql_transformer_core_1.MappingTemplate.s3MappingTemplateFromString(resolvers_1.generateCreateInitSlotTemplate(type.name.value, this.modelDirectiveConfig.get(type.name.value)), `${typeName}.${fieldName}.{slotName}.{slotIndex}.req.vtl`));
|
|
443
466
|
}
|
|
@@ -640,6 +663,11 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
640
663
|
...options,
|
|
641
664
|
};
|
|
642
665
|
};
|
|
666
|
+
this.ensureValidSubscriptionName = (name) => {
|
|
667
|
+
if (name.length <= 50)
|
|
668
|
+
return name;
|
|
669
|
+
return name.slice(0, 45) + md5_1.default(name).slice(0, 5);
|
|
670
|
+
};
|
|
643
671
|
this.options = this.getOptions(options);
|
|
644
672
|
}
|
|
645
673
|
createModelTable(stack, def, context) {
|
|
@@ -696,7 +724,7 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
696
724
|
stream: aws_dynamodb_1.StreamViewType.NEW_AND_OLD_IMAGES,
|
|
697
725
|
encryption: aws_dynamodb_1.TableEncryption.DEFAULT,
|
|
698
726
|
removalPolicy: removalPolicy,
|
|
699
|
-
...(
|
|
727
|
+
...(context.isProjectUsingDataStore() ? { timeToLiveAttribute: '_ttl' } : undefined),
|
|
700
728
|
});
|
|
701
729
|
const cfnTable = table.node.defaultChild;
|
|
702
730
|
cfnTable.provisionedThroughput = cdk.Fn.conditionIf(usePayPerRequestBilling.logicalId, cdk.Fn.ref('AWS::NoValue'), {
|
|
@@ -729,7 +757,8 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
729
757
|
const dataSource = context.api.host.addDynamoDbDataSource(datasourceRoleLogicalID, table, { name: tableLogicalName, serviceRole: role }, stack);
|
|
730
758
|
const cfnDataSource = dataSource.node.defaultChild;
|
|
731
759
|
cfnDataSource.addDependsOn(role.node.defaultChild);
|
|
732
|
-
|
|
760
|
+
cfnDataSource.overrideLogicalId(datasourceRoleLogicalID);
|
|
761
|
+
if (context.isProjectUsingDataStore()) {
|
|
733
762
|
const datasourceDynamoDb = cfnDataSource.dynamoDbConfig;
|
|
734
763
|
datasourceDynamoDb.deltaSyncConfig = {
|
|
735
764
|
deltaSyncTableName: context.resourceHelper.generateResourceName(graphql_transformer_common_1.SyncResourceIDs.syncTableName),
|
|
@@ -748,7 +777,7 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
748
777
|
this.datasourceMap[def.name.value] = dataSource;
|
|
749
778
|
}
|
|
750
779
|
createIAMRole(context, def, stack, tableName) {
|
|
751
|
-
const roleName = context.resourceHelper.
|
|
780
|
+
const roleName = context.resourceHelper.generateIAMRoleName(graphql_transformer_common_1.ModelResourceIDs.ModelTableIAMRoleID(def.name.value));
|
|
752
781
|
const role = new iam.Role(stack, graphql_transformer_common_1.ModelResourceIDs.ModelTableIAMRoleID(def.name.value), {
|
|
753
782
|
roleName: roleName,
|
|
754
783
|
assumedBy: new iam.ServicePrincipal('appsync.amazonaws.com'),
|
|
@@ -775,7 +804,7 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
775
804
|
cdk.Fn.sub('arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}/*', {
|
|
776
805
|
tablename: tableName,
|
|
777
806
|
}),
|
|
778
|
-
...(
|
|
807
|
+
...(context.isProjectUsingDataStore()
|
|
779
808
|
? [
|
|
780
809
|
cdk.Fn.sub('arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}', {
|
|
781
810
|
tablename: amplifyDataStoreTableName,
|
|
@@ -789,8 +818,9 @@ class ModelTransformer extends graphql_transformer_core_1.TransformerModelBase {
|
|
|
789
818
|
}),
|
|
790
819
|
],
|
|
791
820
|
}));
|
|
792
|
-
|
|
793
|
-
|
|
821
|
+
const syncConfig = graphql_transformer_core_1.SyncUtils.getSyncConfig(context, def.name.value);
|
|
822
|
+
if (syncConfig && graphql_transformer_core_1.SyncUtils.isLambdaSyncConfig(syncConfig)) {
|
|
823
|
+
role.attachInlinePolicy(graphql_transformer_core_1.SyncUtils.createSyncLambdaIAMPolicy(stack, syncConfig.LambdaConflictHandler.name, syncConfig.LambdaConflictHandler.region));
|
|
794
824
|
}
|
|
795
825
|
return role;
|
|
796
826
|
}
|