@aws-amplify/graphql-model-transformer 1.5.0-rds.0 → 2.1.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/API.md +15 -15
- package/CHANGELOG.md +2 -7
- package/lib/graphql-types/mutation.d.ts.map +1 -1
- package/lib/graphql-types/mutation.js +2 -9
- package/lib/graphql-types/mutation.js.map +1 -1
- package/lib/rds-lambda.zip +0 -0
- package/lib/rds-notification-lambda.zip +0 -0
- package/lib/rds-patching-lambda.zip +0 -0
- package/lib/resolvers/generators/dynamodb-vtl-generator.d.ts +5 -6
- package/lib/resolvers/generators/dynamodb-vtl-generator.d.ts.map +1 -1
- package/lib/resolvers/generators/dynamodb-vtl-generator.js +5 -5
- package/lib/resolvers/generators/dynamodb-vtl-generator.js.map +1 -1
- package/lib/resolvers/generators/rds-vtl-generator.d.ts +5 -6
- package/lib/resolvers/generators/rds-vtl-generator.d.ts.map +1 -1
- package/lib/resolvers/generators/rds-vtl-generator.js +10 -10
- package/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
- package/lib/resolvers/generators/vtl-generator.d.ts +5 -6
- package/lib/resolvers/generators/vtl-generator.d.ts.map +1 -1
- package/lib/resolvers/rds/mutation.d.ts +3 -4
- package/lib/resolvers/rds/mutation.d.ts.map +1 -1
- package/lib/resolvers/rds/mutation.js +3 -7
- package/lib/resolvers/rds/mutation.js.map +1 -1
- package/lib/resolvers/rds/query.d.ts +1 -2
- package/lib/resolvers/rds/query.d.ts.map +1 -1
- package/lib/resolvers/rds/query.js +1 -3
- package/lib/resolvers/rds/query.js.map +1 -1
- package/lib/resolvers/rds/resolver.d.ts +7 -11
- package/lib/resolvers/rds/resolver.d.ts.map +1 -1
- package/lib/resolvers/rds/resolver.js +39 -50
- package/lib/resolvers/rds/resolver.js.map +1 -1
- package/lib/resources/dynamo-model-resource-generator.d.ts +2 -2
- package/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
- package/lib/resources/dynamo-model-resource-generator.js +48 -43
- package/lib/resources/dynamo-model-resource-generator.js.map +1 -1
- package/lib/resources/model-resource-generator.js +8 -8
- package/lib/resources/model-resource-generator.js.map +1 -1
- package/lib/resources/rds-model-resource-generator.js +13 -13
- package/package.json +6 -5
- package/publish-notification-lambda/node_modules/.package-lock.json +3 -3
- package/publish-notification-lambda/node_modules/@types/node/README.md +1 -1
- package/publish-notification-lambda/node_modules/@types/node/package.json +2 -2
- package/publish-notification-lambda/package-lock.json +3 -3
- package/rds-lambda/handler.ts +1 -2
- package/rds-lambda/node_modules/.package-lock.json +6 -6
- package/rds-lambda/node_modules/@types/node/README.md +1 -1
- package/rds-lambda/node_modules/@types/node/package.json +2 -2
- package/rds-lambda/node_modules/electron-to-chromium/full-chromium-versions.json +1 -1
- package/rds-lambda/node_modules/electron-to-chromium/full-versions.json +1 -1
- package/rds-lambda/node_modules/electron-to-chromium/package.json +1 -1
- package/rds-lambda/package-lock.json +6 -6
- package/rds-patching-lambda/node_modules/.package-lock.json +3 -3
- package/rds-patching-lambda/node_modules/@types/node/README.md +1 -1
- package/rds-patching-lambda/node_modules/@types/node/package.json +2 -2
- package/rds-patching-lambda/package-lock.json +3 -3
- package/src/__tests__/__snapshots__/model-transformer.test.ts.snap +0 -688
- package/src/__tests__/model-directive-arguments.test.ts +23 -28
- package/src/__tests__/model-transformer.test.ts +137 -216
- package/src/graphql-types/mutation.ts +3 -11
- package/src/resolvers/generators/dynamodb-vtl-generator.ts +5 -7
- package/src/resolvers/generators/rds-vtl-generator.ts +10 -12
- package/src/resolvers/generators/vtl-generator.ts +5 -6
- package/src/resolvers/rds/mutation.ts +3 -18
- package/src/resolvers/rds/query.ts +1 -9
- package/src/resolvers/rds/resolver.ts +45 -62
- package/src/resources/dynamo-model-resource-generator.ts +50 -47
- package/src/resources/model-resource-generator.ts +8 -8
- package/src/resources/rds-model-resource-generator.ts +13 -13
- package/tsconfig.tsbuildinfo +1 -1
@@ -1,14 +1,9 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
ConflictHandlerType,
|
4
|
-
DatasourceType,
|
5
|
-
GraphQLTransform,
|
6
|
-
SyncConfig,
|
7
|
-
validateModelSchema,
|
8
|
-
} from '@aws-amplify/graphql-transformer-core';
|
1
|
+
import { ConflictHandlerType, DatasourceType, GraphQLTransform, validateModelSchema } from '@aws-amplify/graphql-transformer-core';
|
9
2
|
import { InputObjectTypeDefinitionNode, InputValueDefinitionNode, NamedTypeNode, parse } from 'graphql';
|
10
3
|
import { getBaseType } from 'graphql-transformer-common';
|
11
4
|
import { Template } from 'aws-cdk-lib/assertions';
|
5
|
+
import { testTransform } from '@aws-amplify/graphql-transformer-test-utils';
|
6
|
+
import { ModelTransformer } from '../graphql-model-transformer';
|
12
7
|
import {
|
13
8
|
doNotExpectFields,
|
14
9
|
expectFields,
|
@@ -30,10 +25,10 @@ describe('ModelTransformer: ', () => {
|
|
30
25
|
}
|
31
26
|
`;
|
32
27
|
|
33
|
-
const
|
28
|
+
const out = testTransform({
|
29
|
+
schema: validSchema,
|
34
30
|
transformers: [new ModelTransformer()],
|
35
31
|
});
|
36
|
-
const out = transformer.transform(validSchema);
|
37
32
|
expect(out).toBeDefined();
|
38
33
|
|
39
34
|
validateModelSchema(parse(out.schema));
|
@@ -48,10 +43,10 @@ describe('ModelTransformer: ', () => {
|
|
48
43
|
title: String!
|
49
44
|
}
|
50
45
|
`;
|
51
|
-
const
|
46
|
+
const out = testTransform({
|
47
|
+
schema: validSchema,
|
52
48
|
transformers: [new ModelTransformer()],
|
53
49
|
});
|
54
|
-
const out = transformer.transform(validSchema);
|
55
50
|
expect(out).toBeDefined();
|
56
51
|
|
57
52
|
validateModelSchema(parse(out.schema));
|
@@ -71,7 +66,8 @@ describe('ModelTransformer: ', () => {
|
|
71
66
|
title: String!
|
72
67
|
}
|
73
68
|
`;
|
74
|
-
const
|
69
|
+
const out = testTransform({
|
70
|
+
schema: alsoValidSchema,
|
75
71
|
transformers: [new ModelTransformer()],
|
76
72
|
resolverConfig: {
|
77
73
|
project: {
|
@@ -80,7 +76,6 @@ describe('ModelTransformer: ', () => {
|
|
80
76
|
},
|
81
77
|
},
|
82
78
|
});
|
83
|
-
const out = transformer.transform(alsoValidSchema);
|
84
79
|
expect(out).toBeDefined();
|
85
80
|
|
86
81
|
validateModelSchema(parse(out.schema));
|
@@ -89,29 +84,6 @@ describe('ModelTransformer: ', () => {
|
|
89
84
|
expect(out.schema).toContain('input NonModelTypeInput');
|
90
85
|
});
|
91
86
|
|
92
|
-
it('id with non string type should require the field on create mutation', async () => {
|
93
|
-
const validSchema = `
|
94
|
-
type Task @model {
|
95
|
-
id: Int!
|
96
|
-
title: String!
|
97
|
-
}
|
98
|
-
`;
|
99
|
-
const transformer = new GraphQLTransform({
|
100
|
-
transformers: [new ModelTransformer()],
|
101
|
-
});
|
102
|
-
const out = transformer.transform(validSchema);
|
103
|
-
expect(out).toBeDefined();
|
104
|
-
|
105
|
-
validateModelSchema(parse(out.schema));
|
106
|
-
const schema = parse(out.schema);
|
107
|
-
expect(out.schema).toMatchSnapshot();
|
108
|
-
const createTaskInput = getInputType(schema, 'CreateTaskInput');
|
109
|
-
expectFieldsOnInputType(createTaskInput!, ['id', 'title']);
|
110
|
-
const idField = createTaskInput!.fields!.find((f) => f.name.value === 'id');
|
111
|
-
expect(idField).toBeDefined();
|
112
|
-
expect(idField?.type.kind).toEqual('NonNullType');
|
113
|
-
});
|
114
|
-
|
115
87
|
it('should support custom query overrides', () => {
|
116
88
|
const validSchema = `type Post @model(queries: { get: "customGetPost", list: "customListPost" }) {
|
117
89
|
id: ID!
|
@@ -121,11 +93,10 @@ describe('ModelTransformer: ', () => {
|
|
121
93
|
}
|
122
94
|
`;
|
123
95
|
|
124
|
-
const
|
96
|
+
const out = testTransform({
|
97
|
+
schema: validSchema,
|
125
98
|
transformers: [new ModelTransformer()],
|
126
99
|
});
|
127
|
-
|
128
|
-
const out = transformer.transform(validSchema);
|
129
100
|
expect(out).toBeDefined();
|
130
101
|
|
131
102
|
const definition = out.schema;
|
@@ -164,11 +135,10 @@ describe('ModelTransformer: ', () => {
|
|
164
135
|
}
|
165
136
|
`;
|
166
137
|
|
167
|
-
const
|
138
|
+
const out = testTransform({
|
139
|
+
schema: validSchema,
|
168
140
|
transformers: [new ModelTransformer()],
|
169
141
|
});
|
170
|
-
|
171
|
-
const out = transformer.transform(validSchema);
|
172
142
|
expect(out).toBeDefined();
|
173
143
|
const definition = out.schema;
|
174
144
|
expect(definition).toBeDefined();
|
@@ -187,10 +157,10 @@ describe('ModelTransformer: ', () => {
|
|
187
157
|
updatedAt: String
|
188
158
|
}
|
189
159
|
`;
|
190
|
-
const
|
160
|
+
const out = testTransform({
|
161
|
+
schema: validSchema,
|
191
162
|
transformers: [new ModelTransformer()],
|
192
163
|
});
|
193
|
-
const out = transformer.transform(validSchema);
|
194
164
|
expect(out).toBeDefined();
|
195
165
|
const definition = out.schema;
|
196
166
|
expect(definition).toBeDefined();
|
@@ -208,11 +178,10 @@ describe('ModelTransformer: ', () => {
|
|
208
178
|
updatedAt: String
|
209
179
|
}
|
210
180
|
`;
|
211
|
-
const
|
181
|
+
const out = testTransform({
|
182
|
+
schema: validSchema,
|
212
183
|
transformers: [new ModelTransformer()],
|
213
184
|
});
|
214
|
-
|
215
|
-
const out = transformer.transform(validSchema);
|
216
185
|
expect(out).toBeDefined();
|
217
186
|
const definition = out.schema;
|
218
187
|
expect(definition).toBeDefined();
|
@@ -232,10 +201,10 @@ describe('ModelTransformer: ', () => {
|
|
232
201
|
updatedAt: String
|
233
202
|
}
|
234
203
|
`;
|
235
|
-
const
|
204
|
+
const out = testTransform({
|
205
|
+
schema: validSchema,
|
236
206
|
transformers: [new ModelTransformer()],
|
237
207
|
});
|
238
|
-
const out = transformer.transform(validSchema);
|
239
208
|
expect(out).toBeDefined();
|
240
209
|
const definition = out.schema;
|
241
210
|
expect(definition).toBeDefined();
|
@@ -257,10 +226,10 @@ describe('ModelTransformer: ', () => {
|
|
257
226
|
updatedAt: String
|
258
227
|
}
|
259
228
|
`;
|
260
|
-
const
|
229
|
+
const out = testTransform({
|
230
|
+
schema: validSchema,
|
261
231
|
transformers: [new ModelTransformer()],
|
262
232
|
});
|
263
|
-
const out = transformer.transform(validSchema);
|
264
233
|
expect(out).toBeDefined();
|
265
234
|
const definition = out.schema;
|
266
235
|
expect(definition).toBeDefined();
|
@@ -291,10 +260,10 @@ describe('ModelTransformer: ', () => {
|
|
291
260
|
different3: String
|
292
261
|
}
|
293
262
|
`;
|
294
|
-
const
|
263
|
+
const out = testTransform({
|
264
|
+
schema: validSchema,
|
295
265
|
transformers: [new ModelTransformer()],
|
296
266
|
});
|
297
|
-
const out = transformer.transform(validSchema);
|
298
267
|
expect(out).toBeDefined();
|
299
268
|
const definition = out.schema;
|
300
269
|
expect(definition).toBeDefined();
|
@@ -326,10 +295,10 @@ describe('ModelTransformer: ', () => {
|
|
326
295
|
different3: String
|
327
296
|
}
|
328
297
|
`;
|
329
|
-
const
|
298
|
+
const out = testTransform({
|
299
|
+
schema: validSchema,
|
330
300
|
transformers: [new ModelTransformer()],
|
331
301
|
});
|
332
|
-
const out = transformer.transform(validSchema);
|
333
302
|
expect(out).toBeDefined();
|
334
303
|
const definition = out.schema;
|
335
304
|
expect(definition).toBeDefined();
|
@@ -350,10 +319,10 @@ describe('ModelTransformer: ', () => {
|
|
350
319
|
str: String
|
351
320
|
}
|
352
321
|
`;
|
353
|
-
const
|
322
|
+
const result = testTransform({
|
323
|
+
schema: validSchema,
|
354
324
|
transformers: [new ModelTransformer()],
|
355
325
|
});
|
356
|
-
const result = transformer.transform(validSchema);
|
357
326
|
expect(result).toBeDefined();
|
358
327
|
expect(result.schema).toBeDefined();
|
359
328
|
const schema = parse(result.schema);
|
@@ -383,10 +352,10 @@ describe('ModelTransformer: ', () => {
|
|
383
352
|
query: Query
|
384
353
|
}
|
385
354
|
`;
|
386
|
-
const
|
355
|
+
const out = testTransform({
|
356
|
+
schema: validSchema,
|
387
357
|
transformers: [new ModelTransformer()],
|
388
358
|
});
|
389
|
-
const out = transformer.transform(validSchema);
|
390
359
|
expect(out).toBeDefined();
|
391
360
|
const parsed = parse(out.schema);
|
392
361
|
validateModelSchema(parsed);
|
@@ -410,10 +379,10 @@ describe('ModelTransformer: ', () => {
|
|
410
379
|
text: String!
|
411
380
|
}
|
412
381
|
`;
|
413
|
-
const
|
382
|
+
const out = testTransform({
|
383
|
+
schema: validSchema,
|
414
384
|
transformers: [new ModelTransformer()],
|
415
385
|
});
|
416
|
-
const out = transformer.transform(validSchema);
|
417
386
|
expect(out).toBeDefined();
|
418
387
|
const definition = out.schema;
|
419
388
|
expect(definition).toBeDefined();
|
@@ -437,12 +406,12 @@ describe('ModelTransformer: ', () => {
|
|
437
406
|
str: String
|
438
407
|
}
|
439
408
|
`;
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
);
|
409
|
+
expect(() =>
|
410
|
+
testTransform({
|
411
|
+
schema: invalidSchema,
|
412
|
+
transformers: [new ModelTransformer()],
|
413
|
+
}),
|
414
|
+
).toThrowError("'Subscription' is a reserved type name and currently in use within the default schema element.");
|
446
415
|
});
|
447
416
|
|
448
417
|
it('should not add default primary key when ID is defined', () => {
|
@@ -452,10 +421,10 @@ describe('ModelTransformer: ', () => {
|
|
452
421
|
str: String
|
453
422
|
}
|
454
423
|
`;
|
455
|
-
const
|
424
|
+
const result = testTransform({
|
425
|
+
schema: validSchema,
|
456
426
|
transformers: [new ModelTransformer()],
|
457
427
|
});
|
458
|
-
const result = transformer.transform(validSchema);
|
459
428
|
expect(result).toBeDefined();
|
460
429
|
expect(result.schema).toBeDefined();
|
461
430
|
const schema = parse(result.schema);
|
@@ -480,14 +449,14 @@ describe('ModelTransformer: ', () => {
|
|
480
449
|
updatedAt: String
|
481
450
|
}
|
482
451
|
`;
|
483
|
-
|
452
|
+
|
453
|
+
const out = testTransform({
|
454
|
+
schema: validSchema,
|
484
455
|
transformers: [new ModelTransformer()],
|
485
456
|
transformParameters: {
|
486
457
|
shouldDeepMergeDirectiveConfigDefaults: false,
|
487
458
|
},
|
488
459
|
});
|
489
|
-
|
490
|
-
const out = transformer.transform(validSchema);
|
491
460
|
expect(out).toBeDefined();
|
492
461
|
const definition = out.schema;
|
493
462
|
expect(definition).toBeDefined();
|
@@ -514,11 +483,10 @@ describe('ModelTransformer: ', () => {
|
|
514
483
|
name: String!
|
515
484
|
}
|
516
485
|
`;
|
517
|
-
const
|
486
|
+
const out = testTransform({
|
487
|
+
schema: validSchema,
|
518
488
|
transformers: [new ModelTransformer()],
|
519
489
|
});
|
520
|
-
|
521
|
-
const out = transformer.transform(validSchema);
|
522
490
|
expect(out).toBeDefined();
|
523
491
|
|
524
492
|
const definition = out.schema;
|
@@ -563,11 +531,10 @@ describe('ModelTransformer: ', () => {
|
|
563
531
|
lastStatus: Status!
|
564
532
|
}
|
565
533
|
`;
|
566
|
-
const
|
534
|
+
const out = testTransform({
|
535
|
+
schema: validSchema,
|
567
536
|
transformers: [new ModelTransformer()],
|
568
537
|
});
|
569
|
-
|
570
|
-
const out = transformer.transform(validSchema);
|
571
538
|
expect(out).toBeDefined();
|
572
539
|
const definition = out.schema;
|
573
540
|
expect(definition).toBeDefined();
|
@@ -604,10 +571,10 @@ describe('ModelTransformer: ', () => {
|
|
604
571
|
JEDI
|
605
572
|
}
|
606
573
|
`;
|
607
|
-
const
|
574
|
+
const out = testTransform({
|
575
|
+
schema: validSchema,
|
608
576
|
transformers: [new ModelTransformer()],
|
609
577
|
});
|
610
|
-
const out = transformer.transform(validSchema);
|
611
578
|
expect(out).toBeDefined();
|
612
579
|
|
613
580
|
const definition = out.schema;
|
@@ -644,10 +611,10 @@ describe('ModelTransformer: ', () => {
|
|
644
611
|
createdAt: String
|
645
612
|
updatedAt: String
|
646
613
|
}`;
|
647
|
-
const
|
614
|
+
const out = testTransform({
|
615
|
+
schema: validSchema,
|
648
616
|
transformers: [new ModelTransformer()],
|
649
617
|
});
|
650
|
-
const out = transformer.transform(validSchema);
|
651
618
|
expect(out).toBeDefined();
|
652
619
|
|
653
620
|
const definition = out.schema;
|
@@ -677,10 +644,10 @@ describe('ModelTransformer: ', () => {
|
|
677
644
|
title: String!
|
678
645
|
}
|
679
646
|
`;
|
680
|
-
const
|
647
|
+
const out = testTransform({
|
648
|
+
schema: validSchema,
|
681
649
|
transformers: [new ModelTransformer()],
|
682
650
|
});
|
683
|
-
const out = transformer.transform(validSchema);
|
684
651
|
expect(out).toBeDefined();
|
685
652
|
const definition = out.schema;
|
686
653
|
expect(definition).toBeDefined();
|
@@ -704,10 +671,10 @@ describe('ModelTransformer: ', () => {
|
|
704
671
|
updatedAt: String
|
705
672
|
}
|
706
673
|
`;
|
707
|
-
const
|
674
|
+
const out = testTransform({
|
675
|
+
schema: validSchema,
|
708
676
|
transformers: [new ModelTransformer()],
|
709
677
|
});
|
710
|
-
const out = transformer.transform(validSchema);
|
711
678
|
expect(out).toBeDefined();
|
712
679
|
const definition = out.schema;
|
713
680
|
expect(definition).toBeDefined();
|
@@ -726,13 +693,13 @@ describe('ModelTransformer: ', () => {
|
|
726
693
|
str: String
|
727
694
|
}
|
728
695
|
`;
|
729
|
-
const
|
696
|
+
const result = testTransform({
|
697
|
+
schema: validSchema,
|
730
698
|
transformers: [new ModelTransformer()],
|
731
699
|
transformParameters: {
|
732
700
|
shouldDeepMergeDirectiveConfigDefaults: false,
|
733
701
|
},
|
734
702
|
});
|
735
|
-
const result = transformer.transform(validSchema);
|
736
703
|
expect(result).toBeDefined();
|
737
704
|
expect(result.schema).toBeDefined();
|
738
705
|
expect(result.schema).toMatchSnapshot();
|
@@ -747,7 +714,8 @@ describe('ModelTransformer: ', () => {
|
|
747
714
|
str: String
|
748
715
|
}
|
749
716
|
`;
|
750
|
-
const
|
717
|
+
const result = testTransform({
|
718
|
+
schema: validSchema,
|
751
719
|
transformers: [new ModelTransformer()],
|
752
720
|
resolverConfig: {
|
753
721
|
project: {
|
@@ -756,7 +724,6 @@ describe('ModelTransformer: ', () => {
|
|
756
724
|
},
|
757
725
|
},
|
758
726
|
});
|
759
|
-
const result = transformer.transform(validSchema);
|
760
727
|
expect(result).toBeDefined();
|
761
728
|
expect(result.schema).toBeDefined();
|
762
729
|
expect(result.schema).toMatchSnapshot();
|
@@ -776,7 +743,8 @@ describe('ModelTransformer: ', () => {
|
|
776
743
|
updatedAt: AWSTimestamp
|
777
744
|
}
|
778
745
|
`;
|
779
|
-
const
|
746
|
+
const result = testTransform({
|
747
|
+
schema: validSchema,
|
780
748
|
transformers: [new ModelTransformer()],
|
781
749
|
resolverConfig: {
|
782
750
|
project: {
|
@@ -785,7 +753,6 @@ describe('ModelTransformer: ', () => {
|
|
785
753
|
},
|
786
754
|
},
|
787
755
|
});
|
788
|
-
const result = transformer.transform(validSchema);
|
789
756
|
expect(result).toBeDefined();
|
790
757
|
expect(result.schema).toBeDefined();
|
791
758
|
expect(result.schema).toMatchSnapshot();
|
@@ -805,7 +772,8 @@ describe('ModelTransformer: ', () => {
|
|
805
772
|
updatedAt: AWSDateTime!
|
806
773
|
}
|
807
774
|
`;
|
808
|
-
const
|
775
|
+
const result = testTransform({
|
776
|
+
schema: validSchema,
|
809
777
|
transformers: [new ModelTransformer()],
|
810
778
|
resolverConfig: {
|
811
779
|
project: {
|
@@ -814,8 +782,6 @@ describe('ModelTransformer: ', () => {
|
|
814
782
|
},
|
815
783
|
},
|
816
784
|
});
|
817
|
-
|
818
|
-
const result = transformer.transform(validSchema);
|
819
785
|
expect(result).toBeDefined();
|
820
786
|
expect(result.schema).toBeDefined();
|
821
787
|
expect(result.schema).toMatchSnapshot();
|
@@ -833,7 +799,8 @@ describe('ModelTransformer: ', () => {
|
|
833
799
|
str: String
|
834
800
|
}
|
835
801
|
`;
|
836
|
-
const
|
802
|
+
const result = testTransform({
|
803
|
+
schema: validSchema,
|
837
804
|
transformers: [new ModelTransformer()],
|
838
805
|
resolverConfig: {
|
839
806
|
project: {
|
@@ -842,7 +809,6 @@ describe('ModelTransformer: ', () => {
|
|
842
809
|
},
|
843
810
|
},
|
844
811
|
});
|
845
|
-
const result = transformer.transform(validSchema);
|
846
812
|
expect(result).toBeDefined();
|
847
813
|
expect(result.schema).toBeDefined();
|
848
814
|
expect(result.schema).toMatchSnapshot();
|
@@ -864,7 +830,8 @@ describe('ModelTransformer: ', () => {
|
|
864
830
|
id: ID!
|
865
831
|
}
|
866
832
|
`;
|
867
|
-
const
|
833
|
+
const result = testTransform({
|
834
|
+
schema: validSchema,
|
868
835
|
transformers: [new ModelTransformer()],
|
869
836
|
resolverConfig: {
|
870
837
|
project: {
|
@@ -873,8 +840,6 @@ describe('ModelTransformer: ', () => {
|
|
873
840
|
},
|
874
841
|
},
|
875
842
|
});
|
876
|
-
|
877
|
-
const result = transformer.transform(validSchema);
|
878
843
|
expect(result).toBeDefined();
|
879
844
|
expect(result.schema).toBeDefined();
|
880
845
|
expect(result.schema).toMatchSnapshot();
|
@@ -934,7 +899,8 @@ describe('ModelTransformer: ', () => {
|
|
934
899
|
}
|
935
900
|
`;
|
936
901
|
|
937
|
-
const
|
902
|
+
const result = testTransform({
|
903
|
+
schema: validSchema,
|
938
904
|
transformers: [new ModelTransformer()],
|
939
905
|
resolverConfig: {
|
940
906
|
project: {
|
@@ -943,7 +909,6 @@ describe('ModelTransformer: ', () => {
|
|
943
909
|
},
|
944
910
|
},
|
945
911
|
});
|
946
|
-
const result = transformer.transform(validSchema);
|
947
912
|
expect(result).toBeDefined();
|
948
913
|
expect(result.schema).toBeDefined();
|
949
914
|
const schema = parse(result.schema);
|
@@ -972,10 +937,10 @@ describe('ModelTransformer: ', () => {
|
|
972
937
|
jsonField: AWSJSON
|
973
938
|
}
|
974
939
|
`;
|
975
|
-
const
|
940
|
+
const out = testTransform({
|
941
|
+
schema: validSchema,
|
976
942
|
transformers: [new ModelTransformer()],
|
977
943
|
});
|
978
|
-
const out = transformer.transform(validSchema);
|
979
944
|
expect(out).toBeDefined();
|
980
945
|
validateModelSchema(parse(out.schema));
|
981
946
|
});
|
@@ -988,18 +953,16 @@ describe('ModelTransformer: ', () => {
|
|
988
953
|
}
|
989
954
|
`;
|
990
955
|
|
991
|
-
const
|
992
|
-
|
993
|
-
ConflictHandler: ConflictHandlerType.AUTOMERGE,
|
994
|
-
};
|
995
|
-
|
996
|
-
const transformer = new GraphQLTransform({
|
956
|
+
const out = testTransform({
|
957
|
+
schema: validSchema,
|
997
958
|
transformers: [new ModelTransformer()],
|
998
959
|
resolverConfig: {
|
999
|
-
project:
|
960
|
+
project: {
|
961
|
+
ConflictDetection: 'VERSION',
|
962
|
+
ConflictHandler: ConflictHandlerType.AUTOMERGE,
|
963
|
+
},
|
1000
964
|
},
|
1001
965
|
});
|
1002
|
-
const out = transformer.transform(validSchema);
|
1003
966
|
expect(out).toBeDefined();
|
1004
967
|
|
1005
968
|
const definition = out.schema;
|
@@ -1019,21 +982,19 @@ describe('ModelTransformer: ', () => {
|
|
1019
982
|
}
|
1020
983
|
`;
|
1021
984
|
|
1022
|
-
const
|
1023
|
-
|
1024
|
-
ConflictHandler: ConflictHandlerType.LAMBDA,
|
1025
|
-
LambdaConflictHandler: {
|
1026
|
-
name: 'myLambdaConflictHandler',
|
1027
|
-
},
|
1028
|
-
};
|
1029
|
-
|
1030
|
-
const transformer = new GraphQLTransform({
|
985
|
+
const out = testTransform({
|
986
|
+
schema: validSchema,
|
1031
987
|
transformers: [new ModelTransformer()],
|
1032
988
|
resolverConfig: {
|
1033
|
-
project:
|
989
|
+
project: {
|
990
|
+
ConflictDetection: 'VERSION',
|
991
|
+
ConflictHandler: ConflictHandlerType.LAMBDA,
|
992
|
+
LambdaConflictHandler: {
|
993
|
+
name: 'myLambdaConflictHandler',
|
994
|
+
},
|
995
|
+
},
|
1034
996
|
},
|
1035
997
|
});
|
1036
|
-
const out = transformer.transform(validSchema);
|
1037
998
|
expect(out).toBeDefined();
|
1038
999
|
|
1039
1000
|
const definition = out.schema;
|
@@ -1052,19 +1013,16 @@ describe('ModelTransformer: ', () => {
|
|
1052
1013
|
updatedAt: String
|
1053
1014
|
}
|
1054
1015
|
`;
|
1055
|
-
|
1056
|
-
|
1057
|
-
ConflictDetection: 'VERSION',
|
1058
|
-
ConflictHandler: ConflictHandlerType.OPTIMISTIC,
|
1059
|
-
};
|
1060
|
-
|
1061
|
-
const transformer = new GraphQLTransform({
|
1016
|
+
const out = testTransform({
|
1017
|
+
schema: validSchema,
|
1062
1018
|
transformers: [new ModelTransformer()],
|
1063
1019
|
resolverConfig: {
|
1064
|
-
project:
|
1020
|
+
project: {
|
1021
|
+
ConflictDetection: 'VERSION',
|
1022
|
+
ConflictHandler: ConflictHandlerType.OPTIMISTIC,
|
1023
|
+
},
|
1065
1024
|
},
|
1066
1025
|
});
|
1067
|
-
const out = transformer.transform(validSchema);
|
1068
1026
|
expect(out).toBeDefined();
|
1069
1027
|
|
1070
1028
|
const definition = out.schema;
|
@@ -1082,18 +1040,16 @@ describe('ModelTransformer: ', () => {
|
|
1082
1040
|
}
|
1083
1041
|
`;
|
1084
1042
|
|
1085
|
-
const
|
1086
|
-
|
1087
|
-
ConflictHandler: ConflictHandlerType.AUTOMERGE,
|
1088
|
-
};
|
1089
|
-
|
1090
|
-
const transformer = new GraphQLTransform({
|
1043
|
+
const out = testTransform({
|
1044
|
+
schema: validSchema,
|
1091
1045
|
transformers: [new ModelTransformer()],
|
1092
1046
|
resolverConfig: {
|
1093
|
-
project:
|
1047
|
+
project: {
|
1048
|
+
ConflictDetection: 'VERSION',
|
1049
|
+
ConflictHandler: ConflictHandlerType.AUTOMERGE,
|
1050
|
+
},
|
1094
1051
|
},
|
1095
1052
|
});
|
1096
|
-
const out = transformer.transform(validSchema);
|
1097
1053
|
expect(out).toBeDefined();
|
1098
1054
|
|
1099
1055
|
const definition = out.schema;
|
@@ -1147,11 +1103,10 @@ describe('ModelTransformer: ', () => {
|
|
1147
1103
|
name: String
|
1148
1104
|
}`;
|
1149
1105
|
|
1150
|
-
const
|
1106
|
+
const out = testTransform({
|
1107
|
+
schema: validSchema,
|
1151
1108
|
transformers: [new ModelTransformer()],
|
1152
1109
|
});
|
1153
|
-
|
1154
|
-
const out = transformer.transform(validSchema);
|
1155
1110
|
expect(out).toBeDefined();
|
1156
1111
|
|
1157
1112
|
const definition = out.schema;
|
@@ -1180,19 +1135,19 @@ describe('ModelTransformer: ', () => {
|
|
1180
1135
|
name: String
|
1181
1136
|
}`;
|
1182
1137
|
|
1183
|
-
const
|
1138
|
+
const out = testTransform({
|
1139
|
+
schema: validSchema,
|
1140
|
+
transformers: [new ModelTransformer()],
|
1141
|
+
transformParameters: {
|
1142
|
+
sandboxModeEnabled: true,
|
1143
|
+
},
|
1184
1144
|
resolverConfig: {
|
1185
1145
|
project: {
|
1186
1146
|
ConflictDetection: 'VERSION',
|
1187
1147
|
ConflictHandler: ConflictHandlerType.AUTOMERGE,
|
1188
1148
|
},
|
1189
1149
|
},
|
1190
|
-
transformers: [new ModelTransformer()],
|
1191
|
-
transformParameters: {
|
1192
|
-
sandboxModeEnabled: true,
|
1193
|
-
},
|
1194
1150
|
});
|
1195
|
-
const out = transformer.transform(validSchema);
|
1196
1151
|
expect(out).toBeDefined();
|
1197
1152
|
const schema = parse(out.schema);
|
1198
1153
|
validateModelSchema(schema);
|
@@ -1259,7 +1214,12 @@ describe('ModelTransformer: ', () => {
|
|
1259
1214
|
}
|
1260
1215
|
`;
|
1261
1216
|
|
1262
|
-
const
|
1217
|
+
const out = testTransform({
|
1218
|
+
schema: validSchema,
|
1219
|
+
transformers: [new ModelTransformer()],
|
1220
|
+
transformParameters: {
|
1221
|
+
sandboxModeEnabled: true,
|
1222
|
+
},
|
1263
1223
|
resolverConfig: {
|
1264
1224
|
project: {
|
1265
1225
|
ConflictDetection: 'VERSION',
|
@@ -1279,12 +1239,7 @@ describe('ModelTransformer: ', () => {
|
|
1279
1239
|
},
|
1280
1240
|
},
|
1281
1241
|
},
|
1282
|
-
transformers: [new ModelTransformer()],
|
1283
|
-
transformParameters: {
|
1284
|
-
sandboxModeEnabled: true,
|
1285
|
-
},
|
1286
1242
|
});
|
1287
|
-
const out = transformer.transform(validSchema);
|
1288
1243
|
expect(out).toBeDefined();
|
1289
1244
|
const schema = parse(out.schema);
|
1290
1245
|
validateModelSchema(schema);
|
@@ -1360,13 +1315,13 @@ describe('ModelTransformer: ', () => {
|
|
1360
1315
|
const validSchema = `type Todo @model {
|
1361
1316
|
name: String
|
1362
1317
|
}`;
|
1363
|
-
const
|
1318
|
+
const out = testTransform({
|
1319
|
+
schema: validSchema,
|
1364
1320
|
transformers: [new ModelTransformer()],
|
1365
1321
|
transformParameters: {
|
1366
1322
|
sandboxModeEnabled: true,
|
1367
1323
|
},
|
1368
1324
|
});
|
1369
|
-
const out = transformer.transform(validSchema);
|
1370
1325
|
|
1371
1326
|
const rootStack = out.rootStack;
|
1372
1327
|
expect(rootStack).toBeDefined();
|
@@ -1389,7 +1344,12 @@ describe('ModelTransformer: ', () => {
|
|
1389
1344
|
id: ID
|
1390
1345
|
tags: [Tag]
|
1391
1346
|
}`;
|
1392
|
-
const
|
1347
|
+
const out = testTransform({
|
1348
|
+
schema: validSchema,
|
1349
|
+
transformers: [new ModelTransformer()],
|
1350
|
+
transformParameters: {
|
1351
|
+
sandboxModeEnabled: true,
|
1352
|
+
},
|
1393
1353
|
authConfig: {
|
1394
1354
|
defaultAuthentication: {
|
1395
1355
|
authenticationType: 'AMAZON_COGNITO_USER_POOLS',
|
@@ -1400,12 +1360,7 @@ describe('ModelTransformer: ', () => {
|
|
1400
1360
|
},
|
1401
1361
|
],
|
1402
1362
|
},
|
1403
|
-
transformers: [new ModelTransformer()],
|
1404
|
-
transformParameters: {
|
1405
|
-
sandboxModeEnabled: true,
|
1406
|
-
},
|
1407
1363
|
});
|
1408
|
-
const out = transformer.transform(validSchema);
|
1409
1364
|
expect(out).toBeDefined();
|
1410
1365
|
|
1411
1366
|
const schema = parse(out.schema);
|
@@ -1441,15 +1396,14 @@ describe('ModelTransformer: ', () => {
|
|
1441
1396
|
name: String!
|
1442
1397
|
}
|
1443
1398
|
`;
|
1444
|
-
const
|
1399
|
+
const result = testTransform({
|
1400
|
+
schema: inputSchema,
|
1445
1401
|
transformers: [new ModelTransformer()],
|
1446
1402
|
stackMapping: {
|
1447
1403
|
CreateBlogResolver: 'myCustomStack1',
|
1448
1404
|
UpdateBlogResolver: 'myCustomStack2',
|
1449
1405
|
},
|
1450
1406
|
});
|
1451
|
-
|
1452
|
-
const result = transformer.transform(inputSchema);
|
1453
1407
|
expect(Object.keys(result.stacks.myCustomStack1.Resources!).includes('CreateBlogResolver')).toBe(true);
|
1454
1408
|
expect(Object.keys(result.stacks.myCustomStack2.Resources!).includes('UpdateBlogResolver')).toBe(true);
|
1455
1409
|
|
@@ -1472,10 +1426,10 @@ describe('ModelTransformer: ', () => {
|
|
1472
1426
|
type Query {
|
1473
1427
|
todo: Todo @aws_lambda
|
1474
1428
|
}`;
|
1475
|
-
const
|
1429
|
+
const out = testTransform({
|
1430
|
+
schema: validSchema,
|
1476
1431
|
transformers: [new ModelTransformer()],
|
1477
1432
|
});
|
1478
|
-
const out = transformer.transform(validSchema);
|
1479
1433
|
expect(out).toBeDefined();
|
1480
1434
|
|
1481
1435
|
const schema = parse(out.schema);
|
@@ -1491,10 +1445,10 @@ describe('ModelTransformer: ', () => {
|
|
1491
1445
|
id: ID!
|
1492
1446
|
}
|
1493
1447
|
`;
|
1494
|
-
const
|
1448
|
+
const out = testTransform({
|
1449
|
+
schema: validSchema,
|
1495
1450
|
transformers: [new ModelTransformer()],
|
1496
1451
|
});
|
1497
|
-
const out = transformer.transform(validSchema);
|
1498
1452
|
expect(out).toBeDefined();
|
1499
1453
|
const definition = out.schema;
|
1500
1454
|
expect(definition).toBeDefined();
|
@@ -1515,10 +1469,10 @@ describe('ModelTransformer: ', () => {
|
|
1515
1469
|
}
|
1516
1470
|
`;
|
1517
1471
|
|
1518
|
-
const
|
1472
|
+
const out = testTransform({
|
1473
|
+
schema: validSchema,
|
1519
1474
|
transformers: [new ModelTransformer()],
|
1520
1475
|
});
|
1521
|
-
const out = transformer.transform(validSchema);
|
1522
1476
|
expect(out).toBeDefined();
|
1523
1477
|
const definition = out.schema;
|
1524
1478
|
expect(definition).toBeDefined();
|
@@ -1542,54 +1496,21 @@ describe('ModelTransformer: ', () => {
|
|
1542
1496
|
}
|
1543
1497
|
`;
|
1544
1498
|
|
1545
|
-
const
|
1499
|
+
const out = testTransform({
|
1500
|
+
schema: validSchema,
|
1546
1501
|
transformers: [new ModelTransformer()],
|
1547
|
-
|
1548
|
-
|
1549
|
-
|
1550
|
-
|
1551
|
-
|
1552
|
-
|
1553
|
-
|
1554
|
-
|
1555
|
-
});
|
1556
|
-
expect(out).toBeDefined();
|
1557
|
-
|
1558
|
-
validateModelSchema(parse(out.schema));
|
1559
|
-
parse(out.schema);
|
1560
|
-
});
|
1561
|
-
|
1562
|
-
it('should successfully transform rds schema with array and object fields', async () => {
|
1563
|
-
const validSchema = `
|
1564
|
-
type Note @model {
|
1565
|
-
id: ID!
|
1566
|
-
content: String!
|
1567
|
-
tags: [String!]
|
1568
|
-
attachments: Attachment
|
1569
|
-
}
|
1570
|
-
|
1571
|
-
type Attachment {
|
1572
|
-
report: String!
|
1573
|
-
image: String!
|
1574
|
-
}
|
1575
|
-
`;
|
1576
|
-
|
1577
|
-
const transformer = new GraphQLTransform({
|
1578
|
-
transformers: [new ModelTransformer()],
|
1579
|
-
});
|
1580
|
-
const modelToDatasourceMap = new Map<string, DatasourceType>();
|
1581
|
-
modelToDatasourceMap.set('Note', {
|
1582
|
-
dbType: 'MySQL',
|
1583
|
-
provisionDB: false,
|
1584
|
-
});
|
1585
|
-
const out = transformer.transform(validSchema, {
|
1586
|
-
modelToDatasourceMap,
|
1502
|
+
modelToDatasourceMap: new Map(
|
1503
|
+
Object.entries({
|
1504
|
+
Post: {
|
1505
|
+
dbType: 'MySQL',
|
1506
|
+
provisionDB: false,
|
1507
|
+
},
|
1508
|
+
}),
|
1509
|
+
),
|
1587
1510
|
});
|
1588
1511
|
expect(out).toBeDefined();
|
1589
1512
|
|
1590
1513
|
validateModelSchema(parse(out.schema));
|
1591
1514
|
parse(out.schema);
|
1592
|
-
expect(out.schema).toMatchSnapshot();
|
1593
|
-
expect(out.resolvers).toMatchSnapshot();
|
1594
1515
|
});
|
1595
1516
|
});
|