@aws-amplify/graphql-model-transformer 0.16.2 → 0.16.3-delta-table-improvements.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.
@@ -52,7 +52,7 @@ const generateListRequestTemplate = () => {
52
52
  const indexNameVariable = 'ctx.stash.metadata.index';
53
53
  const expression = (0, graphql_mapping_template_1.compoundExpression)([
54
54
  graphql_transformer_common_1.setArgs,
55
- (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('limit'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)(`util.defaultIfNull`), (0, graphql_mapping_template_1.ref)('args.limit'), (0, graphql_mapping_template_1.int)(100))),
55
+ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('limit'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.defaultIfNull'), (0, graphql_mapping_template_1.ref)('args.limit'), (0, graphql_mapping_template_1.int)(100))),
56
56
  (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)(requestVariable), (0, graphql_mapping_template_1.obj)({
57
57
  version: (0, graphql_mapping_template_1.str)('2018-05-29'),
58
58
  limit: (0, graphql_mapping_template_1.ref)('limit'),
@@ -63,11 +63,11 @@ const generateListRequestTemplate = () => {
63
63
  (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.isNullOrEmpty)((0, graphql_mapping_template_1.ref)('args.filter'))), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('filter'), (0, graphql_mapping_template_1.obj)({ and: (0, graphql_mapping_template_1.list)([(0, graphql_mapping_template_1.ref)('filter'), (0, graphql_mapping_template_1.ref)('args.filter')]) }))),
64
64
  ]), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.isNullOrEmpty)((0, graphql_mapping_template_1.ref)('args.filter'))), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('filter'), (0, graphql_mapping_template_1.ref)('args.filter')))),
65
65
  (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.isNullOrEmpty)((0, graphql_mapping_template_1.ref)('filter'))), (0, graphql_mapping_template_1.compoundExpression)([
66
- (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)(`filterExpression`), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.parseJson'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.transform.toDynamoDBFilterExpression'), (0, graphql_mapping_template_1.ref)('filter')))),
66
+ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('filterExpression'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.parseJson'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.transform.toDynamoDBFilterExpression'), (0, graphql_mapping_template_1.ref)('filter')))),
67
67
  (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.isNullOrEmpty)((0, graphql_mapping_template_1.ref)('filterExpression')), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.error'), (0, graphql_mapping_template_1.str)('Unable to process the filter expression'), (0, graphql_mapping_template_1.str)('Unrecognized Filter'))),
68
68
  (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.isNullOrBlank'), (0, graphql_mapping_template_1.ref)('filterExpression.expression'))), (0, graphql_mapping_template_1.compoundExpression)([
69
69
  (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.equals)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('filterExpression.expressionValues.size')), (0, graphql_mapping_template_1.int)(0)), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('filterExpression.remove'), (0, graphql_mapping_template_1.str)('expressionValues')))),
70
- (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)(`${requestVariable}.filter`), (0, graphql_mapping_template_1.ref)(`filterExpression`)),
70
+ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)(`${requestVariable}.filter`), (0, graphql_mapping_template_1.ref)('filterExpression')),
71
71
  ])),
72
72
  ])),
73
73
  (0, graphql_mapping_template_1.ifElse)((0, graphql_mapping_template_1.and)([
@@ -84,29 +84,34 @@ const generateListRequestTemplate = () => {
84
84
  return (0, graphql_mapping_template_1.printBlock)('List Request')(expression);
85
85
  };
86
86
  exports.generateListRequestTemplate = generateListRequestTemplate;
87
- const generateSyncRequestTemplate = () => {
88
- return (0, graphql_mapping_template_1.printBlock)('Sync Request template')((0, graphql_mapping_template_1.compoundExpression)([
89
- graphql_transformer_common_1.setArgs,
90
- (0, graphql_mapping_template_1.ifElse)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.isNullOrEmpty)(authFilter)), (0, graphql_mapping_template_1.compoundExpression)([
91
- (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('filter'), authFilter),
92
- (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.isNullOrEmpty)((0, graphql_mapping_template_1.ref)('args.filter'))), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('filter'), (0, graphql_mapping_template_1.obj)({ and: (0, graphql_mapping_template_1.list)([(0, graphql_mapping_template_1.ref)('filter'), (0, graphql_mapping_template_1.ref)('args.filter')]) }))),
93
- ]), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.isNullOrEmpty)((0, graphql_mapping_template_1.ref)('args.filter'))), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('filter'), (0, graphql_mapping_template_1.ref)('args.filter')))),
94
- (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.isNullOrEmpty)((0, graphql_mapping_template_1.ref)('filter'))), (0, graphql_mapping_template_1.compoundExpression)([
95
- (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)(`filterExpression`), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.parseJson'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.transform.toDynamoDBFilterExpression'), (0, graphql_mapping_template_1.ref)('filter')))),
96
- (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.isNullOrBlank'), (0, graphql_mapping_template_1.ref)('filterExpression.expression'))), (0, graphql_mapping_template_1.compoundExpression)([
97
- (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.equals)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('filterExpression.expressionValues.size')), (0, graphql_mapping_template_1.int)(0)), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('filterExpression.remove'), (0, graphql_mapping_template_1.str)('expressionValues')))),
98
- (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('filter'), (0, graphql_mapping_template_1.ref)('filterExpression')),
99
- ])),
87
+ const generateSyncRequestTemplate = (hasCustomPrimaryKey, partitionKeyName) => (0, graphql_mapping_template_1.printBlock)('Sync Request template')((0, graphql_mapping_template_1.compoundExpression)([
88
+ graphql_transformer_common_1.setArgs,
89
+ (0, graphql_mapping_template_1.ifElse)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.isNullOrEmpty)(authFilter)), (0, graphql_mapping_template_1.compoundExpression)([
90
+ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('filter'), authFilter),
91
+ (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.isNullOrEmpty)((0, graphql_mapping_template_1.ref)('args.filter'))), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('filter'), (0, graphql_mapping_template_1.obj)({ and: (0, graphql_mapping_template_1.list)([(0, graphql_mapping_template_1.ref)('filter'), (0, graphql_mapping_template_1.ref)('args.filter')]) }))),
92
+ ]), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.isNullOrEmpty)((0, graphql_mapping_template_1.ref)('args.filter'))), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('filter'), (0, graphql_mapping_template_1.ref)('args.filter')))),
93
+ (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.isNullOrEmpty)((0, graphql_mapping_template_1.ref)('filter'))), (0, graphql_mapping_template_1.compoundExpression)([
94
+ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('filterExpression'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.parseJson'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.transform.toDynamoDBFilterExpression'), (0, graphql_mapping_template_1.ref)('filter')))),
95
+ (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.not)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.isNullOrBlank'), (0, graphql_mapping_template_1.ref)('filterExpression.expression'))), (0, graphql_mapping_template_1.compoundExpression)([
96
+ (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.equals)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('filterExpression.expressionValues.size')), (0, graphql_mapping_template_1.int)(0)), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('filterExpression.remove'), (0, graphql_mapping_template_1.str)('expressionValues')))),
97
+ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('filter'), (0, graphql_mapping_template_1.ref)('filterExpression')),
100
98
  ])),
101
- (0, graphql_mapping_template_1.obj)({
102
- version: (0, graphql_mapping_template_1.str)('2018-05-29'),
103
- operation: (0, graphql_mapping_template_1.str)('Sync'),
104
- filter: (0, graphql_mapping_template_1.ifElse)((0, graphql_mapping_template_1.ref)('filter'), (0, graphql_mapping_template_1.ref)('util.toJson($filter)'), (0, graphql_mapping_template_1.nul)()),
105
- limit: (0, graphql_mapping_template_1.ref)(`util.defaultIfNull($args.limit, ${graphql_transformer_common_1.ResourceConstants.DEFAULT_SYNC_QUERY_PAGE_LIMIT})`),
106
- lastSync: (0, graphql_mapping_template_1.ref)('util.toJson($util.defaultIfNull($args.lastSync, null))'),
107
- nextToken: (0, graphql_mapping_template_1.ref)('util.toJson($util.defaultIfNull($args.nextToken, null))'),
99
+ ])),
100
+ (0, graphql_mapping_template_1.obj)({
101
+ version: (0, graphql_mapping_template_1.str)('2018-05-29'),
102
+ operation: (0, graphql_mapping_template_1.str)('Sync'),
103
+ filter: (0, graphql_mapping_template_1.ifElse)((0, graphql_mapping_template_1.ref)('filter'), (0, graphql_mapping_template_1.ref)('util.toJson($filter)'), (0, graphql_mapping_template_1.nul)(), true),
104
+ limit: (0, graphql_mapping_template_1.ref)(`util.defaultIfNull($args.limit, ${graphql_transformer_common_1.ResourceConstants.DEFAULT_SYNC_QUERY_PAGE_LIMIT})`),
105
+ lastSync: (0, graphql_mapping_template_1.ref)('util.toJson($util.defaultIfNull($args.lastSync, null))'),
106
+ nextToken: (0, graphql_mapping_template_1.ref)('util.toJson($util.defaultIfNull($args.nextToken, null))'),
107
+ ...(hasCustomPrimaryKey && {
108
+ basePartitionKey: (0, graphql_mapping_template_1.ifElse)((0, graphql_mapping_template_1.and)([
109
+ (0, graphql_mapping_template_1.ref)('filter'),
110
+ (0, graphql_mapping_template_1.ref)(`$filter.${partitionKeyName}`),
111
+ ]), (0, graphql_mapping_template_1.raw)(`$filter.${partitionKeyName}.eq`), (0, graphql_mapping_template_1.nul)(), true),
112
+ deltaIndexName: (0, graphql_mapping_template_1.str)(graphql_transformer_common_1.SyncResourceIDs.syncGSIName),
108
113
  }),
109
- ]));
110
- };
114
+ }),
115
+ ]));
111
116
  exports.generateSyncRequestTemplate = generateSyncRequestTemplate;
112
117
  //# sourceMappingURL=query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/resolvers/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/resolvers/query.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/graphql-model-transformer",
3
- "version": "0.16.2",
3
+ "version": "0.16.3-delta-table-improvements.0",
4
4
  "description": "Amplify graphql @model transformer",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,7 +28,7 @@
28
28
  "test-watch": "jest --watch"
29
29
  },
30
30
  "dependencies": {
31
- "@aws-amplify/graphql-transformer-core": "0.17.14",
31
+ "@aws-amplify/graphql-transformer-core": "0.17.15-delta-table-improvements.0",
32
32
  "@aws-amplify/graphql-transformer-interfaces": "1.14.8",
33
33
  "@aws-cdk/aws-applicationautoscaling": "^1.159.0",
34
34
  "@aws-cdk/aws-appsync": "^1.159.0",
@@ -47,7 +47,7 @@
47
47
  "constructs": "^3.3.125",
48
48
  "graphql": "^14.5.8",
49
49
  "graphql-mapping-template": "4.20.5",
50
- "graphql-transformer-common": "4.24.0"
50
+ "graphql-transformer-common": "4.24.1-delta-table-improvements.0"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@aws-cdk/assert": "^1.159.0",
@@ -71,5 +71,5 @@
71
71
  "overrides"
72
72
  ]
73
73
  },
74
- "gitHead": "1c61fb08fea0b4972bc9fea7764403126587c535"
74
+ "gitHead": "af79e075209f918ed101e2f2c8fb842c1f8e41c7"
75
75
  }
@@ -1216,11 +1216,7 @@ $util.toJson({})
1216
1216
  {
1217
1217
  \\"version\\": \\"2018-05-29\\",
1218
1218
  \\"operation\\": \\"Sync\\",
1219
- \\"filter\\": #if( $filter )
1220
- $util.toJson($filter)
1221
- #else
1222
- null
1223
- #end,
1219
+ \\"filter\\": #if( $filter ) $util.toJson($filter) #else null #end,
1224
1220
  \\"limit\\": $util.defaultIfNull($args.limit, 100),
1225
1221
  \\"lastSync\\": $util.toJson($util.defaultIfNull($args.lastSync, null)),
1226
1222
  \\"nextToken\\": $util.toJson($util.defaultIfNull($args.nextToken, null))
@@ -1758,11 +1754,7 @@ $util.toJson({})
1758
1754
  {
1759
1755
  \\"version\\": \\"2018-05-29\\",
1760
1756
  \\"operation\\": \\"Sync\\",
1761
- \\"filter\\": #if( $filter )
1762
- $util.toJson($filter)
1763
- #else
1764
- null
1765
- #end,
1757
+ \\"filter\\": #if( $filter ) $util.toJson($filter) #else null #end,
1766
1758
  \\"limit\\": $util.defaultIfNull($args.limit, 100),
1767
1759
  \\"lastSync\\": $util.toJson($util.defaultIfNull($args.lastSync, null)),
1768
1760
  \\"nextToken\\": $util.toJson($util.defaultIfNull($args.nextToken, null))
@@ -2300,11 +2292,7 @@ $util.toJson({})
2300
2292
  {
2301
2293
  \\"version\\": \\"2018-05-29\\",
2302
2294
  \\"operation\\": \\"Sync\\",
2303
- \\"filter\\": #if( $filter )
2304
- $util.toJson($filter)
2305
- #else
2306
- null
2307
- #end,
2295
+ \\"filter\\": #if( $filter ) $util.toJson($filter) #else null #end,
2308
2296
  \\"limit\\": $util.defaultIfNull($args.limit, 100),
2309
2297
  \\"lastSync\\": $util.toJson($util.defaultIfNull($args.lastSync, null)),
2310
2298
  \\"nextToken\\": $util.toJson($util.defaultIfNull($args.nextToken, null))
@@ -4342,11 +4330,7 @@ exports[`ModelTransformer: the datastore table should be configured 1`] = `
4342
4330
  {
4343
4331
  \\"version\\": \\"2018-05-29\\",
4344
4332
  \\"operation\\": \\"Sync\\",
4345
- \\"filter\\": #if( $filter )
4346
- $util.toJson($filter)
4347
- #else
4348
- null
4349
- #end,
4333
+ \\"filter\\": #if( $filter ) $util.toJson($filter) #else null #end,
4350
4334
  \\"limit\\": $util.defaultIfNull($args.limit, 100),
4351
4335
  \\"lastSync\\": $util.toJson($util.defaultIfNull($args.lastSync, null)),
4352
4336
  \\"nextToken\\": $util.toJson($util.defaultIfNull($args.nextToken, null))
@@ -1143,8 +1143,34 @@ describe('ModelTransformer: ', () => {
1143
1143
  AttributeName: 'ds_sk',
1144
1144
  AttributeType: 'S',
1145
1145
  },
1146
+ {
1147
+ AttributeName: 'gsi_ds_pk',
1148
+ AttributeType: 'S',
1149
+ },
1150
+ {
1151
+ AttributeName: 'gsi_ds_sk',
1152
+ AttributeType: 'S',
1153
+ }
1146
1154
  ],
1147
1155
  BillingMode: 'PAY_PER_REQUEST',
1156
+ GlobalSecondaryIndexes: [
1157
+ {
1158
+ IndexName: "deltaSyncGSI",
1159
+ KeySchema: [
1160
+ {
1161
+ AttributeName: "gsi_ds_pk",
1162
+ KeyType: "HASH"
1163
+ },
1164
+ {
1165
+ AttributeName: "gsi_ds_sk",
1166
+ KeyType: "RANGE"
1167
+ }
1168
+ ],
1169
+ Projection: {
1170
+ ProjectionType: "ALL"
1171
+ }
1172
+ }
1173
+ ],
1148
1174
  StreamSpecification: {
1149
1175
  StreamViewType: 'NEW_AND_OLD_IMAGES',
1150
1176
  },
@@ -45,6 +45,7 @@ import {
45
45
  FieldDefinitionNode,
46
46
  InputObjectTypeDefinitionNode,
47
47
  InputValueDefinitionNode,
48
+ ListValueNode,
48
49
  ObjectTypeDefinitionNode,
49
50
  } from 'graphql';
50
51
  import {
@@ -143,6 +144,8 @@ type ModelTransformerOptions = {
143
144
  SyncConfig?: SyncConfig;
144
145
  };
145
146
 
147
+ const DEFAULT_ID_FIELD_NAME = 'id';
148
+
146
149
  /**
147
150
  * ModelTransformer
148
151
  */
@@ -504,13 +507,15 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
504
507
  const dataSource = this.datasourceMap[type.name.value];
505
508
  const resolverKey = `Update${generateResolverKey(typeName, fieldName)}`;
506
509
  if (!this.resolverMap[resolverKey]) {
510
+ const hasCustomPrimaryKey = this.hasCustomPrimaryKey(type);
511
+ const partitionKey = this.getPartitionKey(type);
507
512
  const resolver = ctx.resolvers.generateMutationResolver(
508
513
  typeName,
509
514
  fieldName,
510
515
  resolverLogicalId,
511
516
  dataSource,
512
517
  MappingTemplate.s3MappingTemplateFromString(
513
- generateUpdateRequestTemplate(typeName, isSyncEnabled),
518
+ generateUpdateRequestTemplate(typeName, isSyncEnabled, hasCustomPrimaryKey, partitionKey),
514
519
  `${typeName}.${fieldName}.req.vtl`,
515
520
  ),
516
521
  MappingTemplate.s3MappingTemplateFromString(
@@ -541,13 +546,15 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
541
546
  const isSyncEnabled = ctx.isProjectUsingDataStore();
542
547
  const dataSource = this.datasourceMap[type.name.value];
543
548
  const resolverKey = `delete${generateResolverKey(typeName, fieldName)}`;
549
+ const hasCustomPrimaryKey = this.hasCustomPrimaryKey(type);
550
+ const partitionKey = this.getPartitionKey(type);
544
551
  if (!this.resolverMap[resolverKey]) {
545
552
  this.resolverMap[resolverKey] = ctx.resolvers.generateMutationResolver(
546
553
  typeName,
547
554
  fieldName,
548
555
  resolverLogicalId,
549
556
  dataSource,
550
- MappingTemplate.s3MappingTemplateFromString(generateDeleteRequestTemplate(isSyncEnabled), `${typeName}.${fieldName}.req.vtl`),
557
+ MappingTemplate.s3MappingTemplateFromString(generateDeleteRequestTemplate(isSyncEnabled, hasCustomPrimaryKey, partitionKey), `${typeName}.${fieldName}.req.vtl`),
551
558
  MappingTemplate.s3MappingTemplateFromString(
552
559
  generateDefaultResponseMappingTemplate(isSyncEnabled, true),
553
560
  `${typeName}.${fieldName}.res.vtl`,
@@ -625,12 +632,14 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
625
632
  const dataSource = this.datasourceMap[type.name.value];
626
633
  const resolverKey = `Sync${generateResolverKey(typeName, fieldName)}`;
627
634
  if (!this.resolverMap[resolverKey]) {
635
+ const hasCustomPrimaryKey = this.hasCustomPrimaryKey(type);
636
+ const partitionKeyName = this.getPartitionKeyName(type);
628
637
  this.resolverMap[resolverKey] = ctx.resolvers.generateQueryResolver(
629
638
  typeName,
630
639
  fieldName,
631
640
  resolverLogicalId,
632
641
  dataSource,
633
- MappingTemplate.s3MappingTemplateFromString(generateSyncRequestTemplate(), `${typeName}.${fieldName}.req.vtl`),
642
+ MappingTemplate.s3MappingTemplateFromString(generateSyncRequestTemplate(hasCustomPrimaryKey, partitionKeyName), `${typeName}.${fieldName}.req.vtl`),
634
643
  MappingTemplate.s3MappingTemplateFromString(
635
644
  generateDefaultResponseMappingTemplate(isSyncEnabled),
636
645
  `${typeName}.${fieldName}.res.vtl`,
@@ -879,12 +888,14 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
879
888
  const resolverKey = `Create${generateResolverKey(typeName, fieldName)}`;
880
889
  const modelIndexFields = type.fields!.filter(field => field.directives?.some(it => it.name.value === 'index')).map(it => it.name.value);
881
890
  if (!this.resolverMap[resolverKey]) {
891
+ const hasCustomPrimaryKey = this.hasCustomPrimaryKey(type);
892
+ const partitionKey = this.getPartitionKey(type);
882
893
  const resolver = ctx.resolvers.generateMutationResolver(
883
894
  typeName,
884
895
  fieldName,
885
896
  resolverLogicalId,
886
897
  dataSource,
887
- MappingTemplate.s3MappingTemplateFromString(generateCreateRequestTemplate(type.name.value, modelIndexFields), `${typeName}.${fieldName}.req.vtl`),
898
+ MappingTemplate.s3MappingTemplateFromString(generateCreateRequestTemplate(type.name.value, modelIndexFields, hasCustomPrimaryKey, partitionKey), `${typeName}.${fieldName}.req.vtl`),
888
899
  MappingTemplate.s3MappingTemplateFromString(
889
900
  generateDefaultResponseMappingTemplate(isSyncEnabled, true),
890
901
  `${typeName}.${fieldName}.res.vtl`,
@@ -1391,4 +1402,56 @@ export class ModelTransformer extends TransformerModelBase implements Transforme
1391
1402
  EnableDeletionProtection: false,
1392
1403
  ...options,
1393
1404
  });
1405
+
1406
+ /**
1407
+ * Returns true if the model contains a custom primary key.
1408
+ * Custom Primary Key is a renamed partition key with at least one sort key.
1409
+ * @param obj ObjectTypeDefinitionNode
1410
+ * @returns a boolean
1411
+ */
1412
+ private hasCustomPrimaryKey = (obj: ObjectTypeDefinitionNode): boolean => {
1413
+ const primaryKeyField = obj.fields?.find(field => field.directives?.find(directive => directive.name.value === 'primaryKey'));
1414
+ if (!primaryKeyField || primaryKeyField.name.value === DEFAULT_ID_FIELD_NAME) {
1415
+ return false;
1416
+ }
1417
+
1418
+ // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
1419
+ const primaryKeyDirective = primaryKeyField.directives?.find(directive => directive.name.value === 'primaryKey')!;
1420
+ const sortKeysArgument = primaryKeyDirective.arguments?.find(arg => arg.name.value === 'sortKeyFields');
1421
+ if (sortKeysArgument && sortKeysArgument.value?.kind == 'StringValue') {
1422
+ return true;
1423
+ }
1424
+ if (!sortKeysArgument || (sortKeysArgument.value as ListValueNode)?.values?.length === 0) {
1425
+ return false;
1426
+ }
1427
+
1428
+ return true;
1429
+ }
1430
+
1431
+ /**
1432
+ * Returns partition key of the type
1433
+ * Custom Primary Key is a renamed partition key with at least one sort key.
1434
+ * @param obj ObjectTypeDefinitionNode
1435
+ * @returns a string
1436
+ */
1437
+ private getPartitionKey = (obj: ObjectTypeDefinitionNode): string => {
1438
+ const primaryKeyField = obj.fields?.find(field => field.directives?.find(directive => directive.name.value === 'primaryKey'));
1439
+ if (!primaryKeyField || primaryKeyField.name.value === DEFAULT_ID_FIELD_NAME) {
1440
+ return DEFAULT_ID_FIELD_NAME;
1441
+ }
1442
+ return primaryKeyField.name.value;
1443
+ }
1444
+
1445
+ /**
1446
+ * Returns the field name of the partition key.
1447
+ * @param obj ObjectTypeDefinitionNode
1448
+ * @returns a string
1449
+ */
1450
+ private getPartitionKeyName = (obj: ObjectTypeDefinitionNode): string => {
1451
+ const primaryKeyField = obj.fields?.find(field => field.directives?.find(directive => directive.name.value === 'primaryKey'));
1452
+ if (!primaryKeyField) {
1453
+ return DEFAULT_ID_FIELD_NAME;
1454
+ }
1455
+ return primaryKeyField.name.value;
1456
+ }
1394
1457
  }
@@ -26,7 +26,7 @@ import { generateConditionSlot } from './common';
26
26
  * Generates VTL template in update mutation
27
27
  * @param modelName Name of the model
28
28
  */
29
- export const generateUpdateRequestTemplate = (modelName: string, isSyncEnabled: boolean): string => {
29
+ export const generateUpdateRequestTemplate = (modelName: string, isSyncEnabled: boolean, hasCustomPrimaryKey: boolean, partitionKey: string): string => {
30
30
  const objectKeyVariable = 'ctx.stash.metadata.modelObjectKey';
31
31
  const keyFields: StringNode[] = [str('id')];
32
32
  if (isSyncEnabled) {
@@ -133,6 +133,10 @@ export const generateUpdateRequestTemplate = (modelName: string, isSyncEnabled:
133
133
  operation: str('UpdateItem'),
134
134
  key: ref('Key'),
135
135
  update: ref('update'),
136
+ ...(hasCustomPrimaryKey && {
137
+ customPartitionKey: str(`${partitionKey}`),
138
+ populateIndexFields: raw(`${hasCustomPrimaryKey}`),
139
+ }),
136
140
  ...(isSyncEnabled && { _version: ref('util.defaultIfNull($args.input["_version"], 0)') }),
137
141
  }),
138
142
  ),
@@ -152,7 +156,7 @@ export const generateUpdateRequestTemplate = (modelName: string, isSyncEnabled:
152
156
  * Generates VTL template in create mutation
153
157
  * @param modelName Name of the model
154
158
  */
155
- export const generateCreateRequestTemplate = (modelName: string, modelIndexFields: string[]): string => {
159
+ export const generateCreateRequestTemplate = (modelName: string, modelIndexFields: string[], hasCustomPrimaryKey: boolean, partitionKey: string): string => {
156
160
  const statements: Expression[] = [
157
161
  setArgs,
158
162
  // Generate conditions
@@ -182,6 +186,10 @@ export const generateCreateRequestTemplate = (modelName: string, modelIndexField
182
186
  operation: str('PutItem'),
183
187
  attributeValues: methodCall(ref('util.dynamodb.toMapValues'), ref('mergedValues')),
184
188
  condition: ref('condition'),
189
+ ...(hasCustomPrimaryKey && {
190
+ customPartitionKey: str(`${partitionKey}`),
191
+ populateIndexFields: raw(`${hasCustomPrimaryKey}`),
192
+ }),
185
193
  }),
186
194
  ),
187
195
 
@@ -256,7 +264,7 @@ export const generateCreateInitSlotTemplate = (modelConfig: ModelDirectiveConfig
256
264
  * Generates VTL template in delete mutation
257
265
  *
258
266
  */
259
- export const generateDeleteRequestTemplate = (isSyncEnabled: boolean): string => {
267
+ export const generateDeleteRequestTemplate = (isSyncEnabled: boolean, hasCustomPrimaryKey: boolean, partitionKey: string): string => {
260
268
  const statements: Expression[] = [
261
269
  setArgs,
262
270
  set(
@@ -264,6 +272,10 @@ export const generateDeleteRequestTemplate = (isSyncEnabled: boolean): string =>
264
272
  obj({
265
273
  version: str('2018-05-29'),
266
274
  operation: str('DeleteItem'),
275
+ ...(hasCustomPrimaryKey && {
276
+ customPartitionKey: str(`${partitionKey}`),
277
+ populateIndexFields: raw(`${hasCustomPrimaryKey}`),
278
+ }),
267
279
  }),
268
280
  ),
269
281
  ifElse(
@@ -20,12 +20,14 @@ import {
20
20
  list,
21
21
  forEach,
22
22
  nul,
23
+ raw,
23
24
  } from 'graphql-mapping-template';
24
- import { ResourceConstants, setArgs } from 'graphql-transformer-common';
25
+ import { ResourceConstants, setArgs, SyncResourceIDs } from 'graphql-transformer-common';
26
+
25
27
  const authFilter = ref('ctx.stash.authFilter');
26
28
 
27
29
  /**
28
- * Generate get query resolver template
30
+ * Generate get query resolver request template
29
31
  */
30
32
  export const generateGetRequestTemplate = (): string => {
31
33
  const statements: Expression[] = [
@@ -74,6 +76,9 @@ export const generateGetRequestTemplate = (): string => {
74
76
  return printBlock('Get Request template')(compoundExpression(statements));
75
77
  };
76
78
 
79
+ /**
80
+ * Generates the Get query response template
81
+ */
77
82
  export const generateGetResponseTemplate = (isSyncEnabled: boolean): string => {
78
83
  const statements = new Array<Expression>();
79
84
  if (isSyncEnabled) {
@@ -96,13 +101,16 @@ export const generateGetResponseTemplate = (isSyncEnabled: boolean): string => {
96
101
  return printBlock('Get Response template')(compoundExpression(statements));
97
102
  };
98
103
 
104
+ /**
105
+ * Generates the List query request template
106
+ */
99
107
  export const generateListRequestTemplate = (): string => {
100
108
  const requestVariable = 'ListRequest';
101
109
  const modelQueryObj = 'ctx.stash.modelQueryExpression';
102
110
  const indexNameVariable = 'ctx.stash.metadata.index';
103
111
  const expression = compoundExpression([
104
112
  setArgs,
105
- set(ref('limit'), methodCall(ref(`util.defaultIfNull`), ref('args.limit'), int(100))),
113
+ set(ref('limit'), methodCall(ref('util.defaultIfNull'), ref('args.limit'), int(100))),
106
114
  set(
107
115
  ref(requestVariable),
108
116
  obj({
@@ -123,7 +131,7 @@ export const generateListRequestTemplate = (): string => {
123
131
  not(isNullOrEmpty(ref('filter'))),
124
132
  compoundExpression([
125
133
  set(
126
- ref(`filterExpression`),
134
+ ref('filterExpression'),
127
135
  methodCall(ref('util.parseJson'), methodCall(ref('util.transform.toDynamoDBFilterExpression'), ref('filter'))),
128
136
  ),
129
137
  iff(
@@ -137,7 +145,7 @@ export const generateListRequestTemplate = (): string => {
137
145
  equals(methodCall(ref('filterExpression.expressionValues.size')), int(0)),
138
146
  qref(methodCall(ref('filterExpression.remove'), str('expressionValues'))),
139
147
  ),
140
- set(ref(`${requestVariable}.filter`), ref(`filterExpression`)),
148
+ set(ref(`${requestVariable}.filter`), ref('filterExpression')),
141
149
  ]),
142
150
  ),
143
151
  ]),
@@ -164,45 +172,58 @@ export const generateListRequestTemplate = (): string => {
164
172
  return printBlock('List Request')(expression);
165
173
  };
166
174
 
167
- export const generateSyncRequestTemplate = (): string => {
168
- return printBlock('Sync Request template')(
169
- compoundExpression([
170
- setArgs,
171
- ifElse(
172
- not(isNullOrEmpty(authFilter)),
173
- compoundExpression([
174
- set(ref('filter'), authFilter),
175
- iff(not(isNullOrEmpty(ref('args.filter'))), set(ref('filter'), obj({ and: list([ref('filter'), ref('args.filter')]) }))),
176
- ]),
177
- iff(not(isNullOrEmpty(ref('args.filter'))), set(ref('filter'), ref('args.filter'))),
178
- ),
179
- iff(
180
- not(isNullOrEmpty(ref('filter'))),
181
- compoundExpression([
182
- set(
183
- ref(`filterExpression`),
184
- methodCall(ref('util.parseJson'), methodCall(ref('util.transform.toDynamoDBFilterExpression'), ref('filter'))),
185
- ),
186
- iff(
187
- not(methodCall(ref('util.isNullOrBlank'), ref('filterExpression.expression'))),
188
- compoundExpression([
189
- iff(
190
- equals(methodCall(ref('filterExpression.expressionValues.size')), int(0)),
191
- qref(methodCall(ref('filterExpression.remove'), str('expressionValues'))),
192
- ),
193
- set(ref('filter'), ref('filterExpression')),
194
- ]),
195
- ),
196
- ]),
197
- ),
198
- obj({
199
- version: str('2018-05-29'),
200
- operation: str('Sync'),
201
- filter: ifElse(ref('filter'), ref('util.toJson($filter)'), nul()),
202
- limit: ref(`util.defaultIfNull($args.limit, ${ResourceConstants.DEFAULT_SYNC_QUERY_PAGE_LIMIT})`),
203
- lastSync: ref('util.toJson($util.defaultIfNull($args.lastSync, null))'),
204
- nextToken: ref('util.toJson($util.defaultIfNull($args.nextToken, null))'),
175
+ /**
176
+ * Generates the Sync query request template
177
+ */
178
+ export const generateSyncRequestTemplate = (hasCustomPrimaryKey: boolean, partitionKeyName: string): string => printBlock('Sync Request template')(
179
+ compoundExpression([
180
+ setArgs,
181
+ ifElse(
182
+ not(isNullOrEmpty(authFilter)),
183
+ compoundExpression([
184
+ set(ref('filter'), authFilter),
185
+ iff(not(isNullOrEmpty(ref('args.filter'))), set(ref('filter'), obj({ and: list([ref('filter'), ref('args.filter')]) }))),
186
+ ]),
187
+ iff(not(isNullOrEmpty(ref('args.filter'))), set(ref('filter'), ref('args.filter'))),
188
+ ),
189
+ iff(
190
+ not(isNullOrEmpty(ref('filter'))),
191
+ compoundExpression([
192
+ set(
193
+ ref('filterExpression'),
194
+ methodCall(ref('util.parseJson'), methodCall(ref('util.transform.toDynamoDBFilterExpression'), ref('filter'))),
195
+ ),
196
+ iff(
197
+ not(methodCall(ref('util.isNullOrBlank'), ref('filterExpression.expression'))),
198
+ compoundExpression([
199
+ iff(
200
+ equals(methodCall(ref('filterExpression.expressionValues.size')), int(0)),
201
+ qref(methodCall(ref('filterExpression.remove'), str('expressionValues'))),
202
+ ),
203
+ set(ref('filter'), ref('filterExpression')),
204
+ ]),
205
+ ),
206
+ ]),
207
+ ),
208
+ obj({
209
+ version: str('2018-05-29'),
210
+ operation: str('Sync'),
211
+ filter: ifElse(ref('filter'), ref('util.toJson($filter)'), nul(), true),
212
+ limit: ref(`util.defaultIfNull($args.limit, ${ResourceConstants.DEFAULT_SYNC_QUERY_PAGE_LIMIT})`),
213
+ lastSync: ref('util.toJson($util.defaultIfNull($args.lastSync, null))'),
214
+ nextToken: ref('util.toJson($util.defaultIfNull($args.nextToken, null))'),
215
+ ...(hasCustomPrimaryKey && {
216
+ basePartitionKey: ifElse(
217
+ and([
218
+ ref('filter'),
219
+ ref(`$filter.${partitionKeyName}`),
220
+ ]),
221
+ raw(`$filter.${partitionKeyName}.eq`),
222
+ nul(),
223
+ true,
224
+ ),
225
+ deltaIndexName: str(SyncResourceIDs.syncGSIName),
205
226
  }),
206
- ]),
207
- );
208
- };
227
+ }),
228
+ ]),
229
+ );