@aws-amplify/graphql-model-transformer 0.7.0-auth-dir-v-next.3 → 0.7.0-ext12.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 +19 -19
- 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 +2 -2
- 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 +515 -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 +2 -2
- 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/src/resolvers/query.ts
CHANGED
|
@@ -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$
|
|
40
|
-
qref(methodCall(ref('
|
|
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(
|
|
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
|
|
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
|
};
|