@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.
Files changed (36) hide show
  1. package/CHANGELOG.md +15 -27
  2. package/lib/graphql-model-transformer.d.ts +14 -9
  3. package/lib/graphql-model-transformer.d.ts.map +1 -1
  4. package/lib/graphql-model-transformer.js +71 -41
  5. package/lib/graphql-model-transformer.js.map +1 -1
  6. package/lib/graphql-types/mutation.d.ts.map +1 -1
  7. package/lib/graphql-types/mutation.js +2 -5
  8. package/lib/graphql-types/mutation.js.map +1 -1
  9. package/lib/graphql-types/query.js +1 -1
  10. package/lib/graphql-types/query.js.map +1 -1
  11. package/lib/resolvers/common.js +1 -1
  12. package/lib/resolvers/common.js.map +1 -1
  13. package/lib/resolvers/mutation.d.ts.map +1 -1
  14. package/lib/resolvers/mutation.js +0 -1
  15. package/lib/resolvers/mutation.js.map +1 -1
  16. package/lib/resolvers/query.d.ts.map +1 -1
  17. package/lib/resolvers/query.js +7 -5
  18. package/lib/resolvers/query.js.map +1 -1
  19. package/lib/resolvers/subscriptions.js +1 -1
  20. package/lib/resolvers/subscriptions.js.map +1 -1
  21. package/lib/wrappers/object-definition-wrapper.d.ts +2 -15
  22. package/lib/wrappers/object-definition-wrapper.d.ts.map +1 -1
  23. package/lib/wrappers/object-definition-wrapper.js +7 -43
  24. package/lib/wrappers/object-definition-wrapper.js.map +1 -1
  25. package/package.json +34 -32
  26. package/src/__tests__/__snapshots__/model-transformer.test.ts.snap +326 -796
  27. package/src/__tests__/model-transformer.test.ts +92 -6
  28. package/src/graphql-model-transformer.ts +106 -37
  29. package/src/graphql-types/mutation.ts +2 -4
  30. package/src/graphql-types/query.ts +1 -1
  31. package/src/resolvers/common.ts +1 -1
  32. package/src/resolvers/mutation.ts +0 -3
  33. package/src/resolvers/query.ts +10 -11
  34. package/src/resolvers/subscriptions.ts +1 -1
  35. package/src/wrappers/object-definition-wrapper.ts +2 -52
  36. package/tsconfig.tsbuildinfo +1 -1
@@ -34,13 +34,18 @@ export const generateGetRequestTemplate = (): string => {
34
34
  ref('ctx.stash.metadata.modelObjectKey'),
35
35
  compoundExpression([
36
36
  set(ref('expression'), str('')),
37
+ set(ref('expressionNames'), obj({})),
37
38
  set(ref('expressionValues'), obj({})),
38
39
  forEach(ref('item'), ref('ctx.stash.metadata.modelObjectKey.entrySet()'), [
39
- set(ref('expression'), str('$expression$item.key = :$item.key AND ')),
40
- qref(methodCall(ref('expressionValues.put'), str(':$item.key'), ref('item.value'))),
40
+ set(ref('expression'), str('$expression#keyCount$velocityCount = :valueCount$velocityCount AND ')),
41
+ qref(methodCall(ref('expressionNames.put'), str('#keyCount$velocityCount'), ref('item.key'))),
42
+ qref(methodCall(ref('expressionValues.put'), str(':valueCount$velocityCount'), ref('item.value'))),
41
43
  ]),
42
44
  set(ref('expression'), methodCall(ref('expression.replaceAll'), str('AND $'), str(''))),
43
- set(ref('query'), obj({ expression: ref('expression'), expressionValues: ref('expressionValues') })),
45
+ set(
46
+ ref('query'),
47
+ obj({ expression: ref('expression'), expressionNames: ref('expressionNames'), expressionValues: ref('expressionValues') }),
48
+ ),
44
49
  ]),
45
50
  set(
46
51
  ref('query'),
@@ -109,10 +114,7 @@ export const generateListRequestTemplate = (): string => {
109
114
  not(isNullOrEmpty(authFilter)),
110
115
  compoundExpression([
111
116
  set(ref('filter'), authFilter),
112
- iff(
113
- not(isNullOrEmpty(ref('ctx.args.filter'))),
114
- set(ref('filter'), list([obj({ and: list([ref('filter'), ref('ctx.args.filter')]) })])),
115
- ),
117
+ iff(not(isNullOrEmpty(ref('ctx.args.filter'))), set(ref('filter'), obj({ and: list([ref('filter'), ref('ctx.args.filter')]) }))),
116
118
  ]),
117
119
  iff(not(isNullOrEmpty(ref('ctx.args.filter'))), set(ref('filter'), ref('ctx.args.filter'))),
118
120
  ),
@@ -164,10 +166,7 @@ export const generateSyncRequestTemplate = (): string => {
164
166
  not(isNullOrEmpty(authFilter)),
165
167
  compoundExpression([
166
168
  set(ref('filter'), authFilter),
167
- iff(
168
- not(isNullOrEmpty(ref('ctx.args.filter'))),
169
- set(ref('filter'), list([obj({ and: list([ref('filter'), ref('ctx.args.filter')]) })])),
170
- ),
169
+ iff(not(isNullOrEmpty(ref('ctx.args.filter'))), set(ref('filter'), obj({ and: list([ref('filter'), ref('ctx.args.filter')]) }))),
171
170
  ]),
172
171
  iff(not(isNullOrEmpty(ref('ctx.args.filter'))), set(ref('filter'), ref('ctx.args.filter'))),
173
172
  ),
@@ -7,5 +7,5 @@ export const generateSubscriptionRequestTemplate = (): string => {
7
7
 
8
8
  export const generateSubscriptionResponseTemplate = (): string => {
9
9
  const statements: Expression[] = [toJson(nul())];
10
- return printBlock('Subscription Resonse template')(compoundExpression(statements));
10
+ return printBlock('Subscription Response template')(compoundExpression(statements));
11
11
  };
@@ -1,5 +1,5 @@
1
+ import { DirectiveWrapper } from '@aws-amplify/graphql-transformer-core';
1
2
  import {
2
- ArgumentNode,
3
3
  DirectiveNode,
4
4
  DocumentNode,
5
5
  EnumTypeDefinitionNode,
@@ -11,13 +11,10 @@ import {
11
11
  ListTypeNode,
12
12
  Location,
13
13
  NamedTypeNode,
14
- NameNode,
15
14
  NonNullTypeNode,
16
15
  ObjectTypeDefinitionNode,
17
16
  StringValueNode,
18
17
  TypeNode,
19
- valueFromASTUntyped,
20
- ValueNode,
21
18
  } from 'graphql';
22
19
  import {
23
20
  DEFAULT_SCALARS,
@@ -29,53 +26,6 @@ import {
29
26
  withNamedNodeNamed,
30
27
  } from 'graphql-transformer-common';
31
28
 
32
- // Todo: to be moved to core later. context.output.getObject would return wrapper type so its easier to manipulate
33
- // objects
34
-
35
- export class ArgumentWrapper {
36
- public readonly name: NameNode;
37
- public readonly value: ValueNode;
38
- constructor(argument: ArgumentNode) {
39
- this.name = argument.name;
40
- this.value = argument.value;
41
- }
42
- serialize = (): ArgumentNode => {
43
- return {
44
- kind: 'Argument',
45
- name: this.name,
46
- value: this.value,
47
- };
48
- };
49
- }
50
-
51
- export class DirectiveWrapper {
52
- private arguments: ArgumentWrapper[] = [];
53
- private name: NameNode;
54
- private location?: Location;
55
- constructor(node: DirectiveNode) {
56
- this.name = node.name;
57
- this.arguments = (node.arguments || []).map(arg => new ArgumentWrapper(arg));
58
- this.location = this.location;
59
- }
60
- public serialize = (): DirectiveNode => {
61
- return {
62
- kind: 'Directive',
63
- name: this.name,
64
- arguments: this.arguments.map(arg => arg.serialize()),
65
- };
66
- };
67
- public getArguments = <T>(defaultValue: Required<T>): Required<T> => {
68
- const argValues = this.arguments.reduce(
69
- (acc: Record<string, any>, arg: ArgumentWrapper) => ({
70
- ...acc,
71
- [arg.name.value]: valueFromASTUntyped(arg.value),
72
- }),
73
- {},
74
- );
75
- return Object.assign(defaultValue, argValues);
76
- };
77
- }
78
-
79
29
  export class GenericFieldWrapper {
80
30
  protected type: TypeNode;
81
31
  public readonly directives: DirectiveWrapper[];
@@ -295,7 +245,7 @@ export class FieldWrapper extends GenericFieldWrapper {
295
245
  field.makeNonNullable();
296
246
  }
297
247
  if (isList) {
298
- field.wrapListType();
248
+ field.wrapListType().makeNonNullable();
299
249
  }
300
250
  return field;
301
251
  };