@aws-amplify/graphql-model-transformer 1.5.0-rds.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- package/API.md +15 -15
- package/CHANGELOG.md +4 -5
- 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 +11 -11
- 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/node_modules/archiver/CHANGELOG.md +18 -0
- package/publish-notification-lambda/node_modules/archiver/package.json +7 -7
- package/publish-notification-lambda/node_modules/tslib/package.json +2 -2
- package/publish-notification-lambda/package-lock.json +11 -11
- package/rds-lambda/handler.ts +1 -2
- package/rds-lambda/node_modules/.package-lock.json +407 -362
- package/rds-lambda/node_modules/@babel/code-frame/package.json +3 -2
- package/rds-lambda/node_modules/@babel/core/package.json +9 -9
- package/rds-lambda/node_modules/@babel/helpers/package.json +5 -5
- package/rds-lambda/node_modules/@babel/highlight/package.json +1 -1
- package/rds-lambda/node_modules/@babel/parser/package.json +3 -3
- package/rds-lambda/node_modules/@babel/traverse/package.json +4 -4
- package/rds-lambda/node_modules/@babel/types/lib/index.js.flow +10 -10
- package/rds-lambda/node_modules/@babel/types/package.json +2 -2
- package/rds-lambda/node_modules/@jest/console/package.json +7 -7
- package/rds-lambda/node_modules/@jest/core/package.json +25 -25
- package/rds-lambda/node_modules/@jest/environment/package.json +6 -6
- package/rds-lambda/node_modules/@jest/expect/package.json +5 -5
- package/rds-lambda/node_modules/@jest/expect-utils/package.json +5 -5
- package/rds-lambda/node_modules/@jest/fake-timers/package.json +8 -8
- package/rds-lambda/node_modules/@jest/globals/package.json +7 -7
- package/rds-lambda/node_modules/@jest/reporters/node_modules/istanbul-lib-instrument/CHANGELOG.md +642 -0
- package/rds-lambda/node_modules/@jest/reporters/node_modules/istanbul-lib-instrument/LICENSE +24 -0
- package/rds-lambda/node_modules/@jest/reporters/node_modules/istanbul-lib-instrument/README.md +22 -0
- package/rds-lambda/node_modules/@jest/reporters/node_modules/istanbul-lib-instrument/package.json +50 -0
- package/rds-lambda/node_modules/@jest/reporters/node_modules/lru-cache/LICENSE +15 -0
- package/rds-lambda/node_modules/@jest/reporters/node_modules/lru-cache/README.md +166 -0
- package/rds-lambda/node_modules/@jest/reporters/node_modules/lru-cache/package.json +34 -0
- package/rds-lambda/node_modules/@jest/reporters/node_modules/semver/LICENSE +15 -0
- package/rds-lambda/node_modules/@jest/reporters/node_modules/semver/README.md +637 -0
- package/rds-lambda/node_modules/@jest/reporters/node_modules/semver/package.json +87 -0
- package/rds-lambda/node_modules/@jest/reporters/node_modules/semver/range.bnf +16 -0
- package/rds-lambda/node_modules/@jest/reporters/node_modules/yallist/LICENSE +15 -0
- package/rds-lambda/node_modules/@jest/reporters/node_modules/yallist/README.md +204 -0
- package/rds-lambda/node_modules/@jest/reporters/node_modules/yallist/package.json +29 -0
- package/rds-lambda/node_modules/@jest/reporters/package.json +14 -14
- package/rds-lambda/node_modules/@jest/schemas/package.json +3 -3
- package/rds-lambda/node_modules/@jest/source-map/package.json +3 -3
- package/rds-lambda/node_modules/@jest/test-result/package.json +7 -7
- package/rds-lambda/node_modules/@jest/test-sequencer/package.json +6 -6
- package/rds-lambda/node_modules/@jest/transform/package.json +8 -8
- package/rds-lambda/node_modules/@jest/types/package.json +4 -4
- package/rds-lambda/node_modules/@types/jest/README.md +1 -1
- package/rds-lambda/node_modules/@types/jest/package.json +2 -2
- 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/archiver/CHANGELOG.md +18 -0
- package/rds-lambda/node_modules/archiver/package.json +7 -7
- package/rds-lambda/node_modules/babel-jest/README.md +1 -1
- package/rds-lambda/node_modules/babel-jest/package.json +6 -6
- package/rds-lambda/node_modules/babel-plugin-jest-hoist/README.md +1 -1
- package/rds-lambda/node_modules/babel-plugin-jest-hoist/package.json +3 -3
- package/rds-lambda/node_modules/babel-preset-jest/README.md +1 -1
- package/rds-lambda/node_modules/babel-preset-jest/package.json +4 -4
- package/rds-lambda/node_modules/caniuse-lite/package.json +1 -1
- package/rds-lambda/node_modules/diff-sequences/package.json +3 -3
- package/rds-lambda/node_modules/electron-to-chromium/chromium-versions.json +1 -1
- 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/node_modules/electron-to-chromium/versions.json +1 -1
- package/rds-lambda/node_modules/expect/package.json +9 -10
- package/rds-lambda/node_modules/jest/package.json +6 -6
- package/rds-lambda/node_modules/jest-changed-files/package.json +4 -3
- package/rds-lambda/node_modules/jest-circus/README.md +1 -1
- package/rds-lambda/node_modules/jest-circus/package.json +14 -14
- package/rds-lambda/node_modules/jest-cli/package.json +10 -10
- package/rds-lambda/node_modules/jest-config/package.json +15 -15
- package/rds-lambda/node_modules/jest-diff/package.json +7 -7
- package/rds-lambda/node_modules/jest-docblock/package.json +3 -3
- package/rds-lambda/node_modules/jest-each/README.md +1 -1
- package/rds-lambda/node_modules/jest-each/package.json +7 -7
- package/rds-lambda/node_modules/jest-environment-node/package.json +9 -9
- package/rds-lambda/node_modules/jest-get-type/package.json +3 -3
- package/rds-lambda/node_modules/jest-haste-map/package.json +7 -7
- package/rds-lambda/node_modules/jest-leak-detector/package.json +5 -5
- package/rds-lambda/node_modules/jest-matcher-utils/README.md +1 -1
- package/rds-lambda/node_modules/jest-matcher-utils/package.json +7 -7
- package/rds-lambda/node_modules/jest-message-util/package.json +5 -5
- package/rds-lambda/node_modules/jest-mock/package.json +5 -5
- package/rds-lambda/node_modules/jest-regex-util/package.json +3 -3
- package/rds-lambda/node_modules/jest-resolve/package.json +6 -6
- package/rds-lambda/node_modules/jest-resolve-dependencies/package.json +10 -10
- package/rds-lambda/node_modules/jest-runner/package.json +20 -20
- package/rds-lambda/node_modules/jest-runtime/package.json +19 -19
- package/rds-lambda/node_modules/jest-snapshot/package.json +14 -14
- package/rds-lambda/node_modules/jest-util/package.json +4 -4
- package/rds-lambda/node_modules/jest-validate/package.json +6 -6
- package/rds-lambda/node_modules/jest-watcher/package.json +7 -7
- package/rds-lambda/node_modules/jest-worker/README.md +1 -1
- package/rds-lambda/node_modules/jest-worker/package.json +5 -5
- package/rds-lambda/node_modules/pretty-format/package.json +5 -5
- package/rds-lambda/node_modules/tslib/package.json +2 -2
- package/rds-lambda/package-lock.json +410 -365
- package/rds-patching-lambda/node_modules/.package-lock.json +11 -11
- 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/node_modules/archiver/CHANGELOG.md +18 -0
- package/rds-patching-lambda/node_modules/archiver/package.json +7 -7
- package/rds-patching-lambda/node_modules/tslib/package.json +2 -2
- package/rds-patching-lambda/package-lock.json +11 -11
- 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
|
});
|