@aws-amplify/graphql-model-transformer 1.4.0-rds.3 → 1.4.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 (218) hide show
  1. package/CHANGELOG.md +24 -8
  2. package/lib/definitions.d.ts.map +1 -1
  3. package/lib/definitions.js +28 -2
  4. package/lib/definitions.js.map +1 -1
  5. package/lib/graphql-model-transformer.d.ts.map +1 -1
  6. package/lib/graphql-model-transformer.js +38 -36
  7. package/lib/graphql-model-transformer.js.map +1 -1
  8. package/lib/graphql-types/common.d.ts.map +1 -1
  9. package/lib/graphql-types/common.js +16 -18
  10. package/lib/graphql-types/common.js.map +1 -1
  11. package/lib/graphql-types/mutation.d.ts.map +1 -1
  12. package/lib/graphql-types/mutation.js +12 -12
  13. package/lib/graphql-types/mutation.js.map +1 -1
  14. package/lib/graphql-types/query.d.ts.map +1 -1
  15. package/lib/graphql-types/query.js.map +1 -1
  16. package/lib/rds-lambda.zip +0 -0
  17. package/lib/rds-notification-lambda.zip +0 -0
  18. package/lib/rds-patching-lambda.zip +0 -0
  19. package/lib/resolvers/common.d.ts.map +1 -1
  20. package/lib/resolvers/common.js.map +1 -1
  21. package/lib/resolvers/dynamodb/mutation.d.ts.map +1 -1
  22. package/lib/resolvers/dynamodb/mutation.js +10 -8
  23. package/lib/resolvers/dynamodb/mutation.js.map +1 -1
  24. package/lib/resolvers/dynamodb/query.d.ts.map +1 -1
  25. package/lib/resolvers/dynamodb/query.js +1 -4
  26. package/lib/resolvers/dynamodb/query.js.map +1 -1
  27. package/lib/resolvers/dynamodb/subscriptions.d.ts.map +1 -1
  28. package/lib/resolvers/dynamodb/subscriptions.js.map +1 -1
  29. package/lib/resolvers/generators/dynamodb-vtl-generator.d.ts.map +1 -1
  30. package/lib/resolvers/generators/dynamodb-vtl-generator.js.map +1 -1
  31. package/lib/resolvers/generators/rds-vtl-generator.d.ts.map +1 -1
  32. package/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
  33. package/lib/resolvers/generators/vtl-generator.d.ts.map +1 -1
  34. package/lib/resolvers/index.d.ts.map +1 -1
  35. package/lib/resolvers/index.js.map +1 -1
  36. package/lib/resolvers/rds/mutation.d.ts.map +1 -1
  37. package/lib/resolvers/rds/mutation.js.map +1 -1
  38. package/lib/resolvers/rds/query.d.ts.map +1 -1
  39. package/lib/resolvers/rds/query.js.map +1 -1
  40. package/lib/resolvers/rds/resolver.d.ts +2 -2
  41. package/lib/resolvers/rds/resolver.d.ts.map +1 -1
  42. package/lib/resolvers/rds/resolver.js +82 -82
  43. package/lib/resolvers/rds/resolver.js.map +1 -1
  44. package/lib/resources/dynamo-model-resource-generator.d.ts +1 -1
  45. package/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
  46. package/lib/resources/dynamo-model-resource-generator.js +2 -2
  47. package/lib/resources/dynamo-model-resource-generator.js.map +1 -1
  48. package/lib/resources/model-resource-generator.d.ts.map +1 -1
  49. package/lib/resources/model-resource-generator.js +15 -7
  50. package/lib/resources/model-resource-generator.js.map +1 -1
  51. package/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
  52. package/lib/resources/rds-model-resource-generator.js +1 -1
  53. package/lib/resources/rds-model-resource-generator.js.map +1 -1
  54. package/package.json +17 -8
  55. package/publish-notification-lambda/node_modules/.package-lock.json +10 -10
  56. package/publish-notification-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
  57. package/publish-notification-lambda/node_modules/@smithy/types/package.json +2 -2
  58. package/publish-notification-lambda/node_modules/@types/node/README.md +1 -1
  59. package/publish-notification-lambda/node_modules/@types/node/package.json +2 -2
  60. package/publish-notification-lambda/package-lock.json +10 -10
  61. package/publish-notification-lambda/src/index.ts +2 -2
  62. package/publish-notification-lambda/tsconfig.json +9 -9
  63. package/rds-lambda/handler.ts +17 -4
  64. package/rds-lambda/node_modules/.package-lock.json +373 -374
  65. package/rds-lambda/node_modules/@babel/compat-data/README.md +1 -1
  66. package/rds-lambda/node_modules/@babel/compat-data/data/corejs2-built-ins.json +146 -0
  67. package/rds-lambda/node_modules/@babel/compat-data/data/native-modules.json +1 -1
  68. package/rds-lambda/node_modules/@babel/compat-data/data/plugin-bugfixes.json +17 -0
  69. package/rds-lambda/node_modules/@babel/compat-data/data/plugins.json +76 -9
  70. package/rds-lambda/node_modules/@babel/compat-data/package.json +4 -4
  71. package/rds-lambda/node_modules/@babel/core/README.md +1 -1
  72. package/rds-lambda/node_modules/@babel/core/package.json +10 -10
  73. package/rds-lambda/node_modules/@babel/generator/README.md +1 -1
  74. package/rds-lambda/node_modules/@babel/generator/package.json +4 -3
  75. package/rds-lambda/node_modules/@babel/helper-compilation-targets/README.md +1 -1
  76. package/rds-lambda/node_modules/@babel/helper-compilation-targets/package.json +5 -5
  77. package/rds-lambda/node_modules/@babel/helper-module-transforms/README.md +1 -1
  78. package/rds-lambda/node_modules/@babel/helper-module-transforms/package.json +10 -6
  79. package/rds-lambda/node_modules/@babel/helper-split-export-declaration/README.md +1 -1
  80. package/rds-lambda/node_modules/@babel/helper-split-export-declaration/package.json +1 -1
  81. package/rds-lambda/node_modules/@babel/helpers/README.md +1 -1
  82. package/rds-lambda/node_modules/@babel/helpers/package.json +3 -3
  83. package/rds-lambda/node_modules/@babel/parser/README.md +1 -1
  84. package/rds-lambda/node_modules/@babel/parser/package.json +2 -2
  85. package/rds-lambda/node_modules/@babel/traverse/README.md +1 -1
  86. package/rds-lambda/node_modules/@babel/traverse/package.json +4 -4
  87. package/rds-lambda/node_modules/@jest/console/package.json +6 -6
  88. package/rds-lambda/node_modules/@jest/core/package.json +21 -21
  89. package/rds-lambda/node_modules/@jest/environment/package.json +5 -5
  90. package/rds-lambda/node_modules/@jest/expect/package.json +6 -6
  91. package/rds-lambda/node_modules/@jest/expect-utils/package.json +5 -5
  92. package/rds-lambda/node_modules/@jest/fake-timers/package.json +7 -7
  93. package/rds-lambda/node_modules/@jest/globals/package.json +6 -6
  94. package/rds-lambda/node_modules/@jest/reporters/package.json +14 -14
  95. package/rds-lambda/node_modules/@jest/schemas/package.json +3 -3
  96. package/rds-lambda/node_modules/@jest/source-map/package.json +3 -3
  97. package/rds-lambda/node_modules/@jest/test-result/package.json +6 -6
  98. package/rds-lambda/node_modules/@jest/test-sequencer/package.json +5 -5
  99. package/rds-lambda/node_modules/@jest/transform/package.json +7 -7
  100. package/rds-lambda/node_modules/@jest/types/package.json +5 -5
  101. package/rds-lambda/node_modules/@sinclair/typebox/package.json +3 -8
  102. package/rds-lambda/node_modules/@sinclair/typebox/readme.md +487 -300
  103. package/rds-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
  104. package/rds-lambda/node_modules/@smithy/types/package.json +2 -2
  105. package/rds-lambda/node_modules/@types/jest/README.md +1 -1
  106. package/rds-lambda/node_modules/@types/jest/package.json +2 -2
  107. package/rds-lambda/node_modules/@types/node/README.md +1 -1
  108. package/rds-lambda/node_modules/@types/node/package.json +2 -2
  109. package/rds-lambda/node_modules/babel-jest/package.json +4 -4
  110. package/rds-lambda/node_modules/caniuse-lite/package.json +1 -1
  111. package/rds-lambda/node_modules/collect-v8-coverage/CHANGELOG.md +7 -0
  112. package/rds-lambda/node_modules/collect-v8-coverage/package.json +18 -20
  113. package/rds-lambda/node_modules/commander/Readme.md +7 -2
  114. package/rds-lambda/node_modules/commander/package.json +17 -17
  115. package/rds-lambda/node_modules/electron-to-chromium/full-chromium-versions.json +1 -1
  116. package/rds-lambda/node_modules/electron-to-chromium/full-versions.json +1 -1
  117. package/rds-lambda/node_modules/electron-to-chromium/package.json +1 -1
  118. package/rds-lambda/node_modules/electron-to-chromium/versions.json +1 -1
  119. package/rds-lambda/node_modules/expect/package.json +10 -9
  120. package/rds-lambda/node_modules/jest/package.json +7 -7
  121. package/rds-lambda/node_modules/jest-circus/package.json +15 -14
  122. package/rds-lambda/node_modules/jest-cli/package.json +10 -9
  123. package/rds-lambda/node_modules/jest-config/package.json +14 -14
  124. package/rds-lambda/node_modules/jest-diff/package.json +4 -4
  125. package/rds-lambda/node_modules/jest-each/package.json +5 -5
  126. package/rds-lambda/node_modules/jest-environment-node/package.json +8 -8
  127. package/rds-lambda/node_modules/jest-haste-map/package.json +5 -5
  128. package/rds-lambda/node_modules/jest-leak-detector/package.json +3 -3
  129. package/rds-lambda/node_modules/jest-matcher-utils/package.json +5 -5
  130. package/rds-lambda/node_modules/jest-message-util/package.json +4 -4
  131. package/rds-lambda/node_modules/jest-mock/package.json +6 -6
  132. package/rds-lambda/node_modules/jest-resolve/package.json +7 -7
  133. package/rds-lambda/node_modules/jest-resolve-dependencies/package.json +8 -8
  134. package/rds-lambda/node_modules/jest-runner/package.json +20 -20
  135. package/rds-lambda/node_modules/jest-runtime/package.json +17 -17
  136. package/rds-lambda/node_modules/jest-snapshot/node_modules/semver/package.json +3 -3
  137. package/rds-lambda/node_modules/jest-snapshot/package.json +15 -17
  138. package/rds-lambda/node_modules/jest-util/package.json +3 -3
  139. package/rds-lambda/node_modules/jest-validate/package.json +4 -4
  140. package/rds-lambda/node_modules/jest-watcher/package.json +5 -5
  141. package/rds-lambda/node_modules/jest-worker/package.json +6 -6
  142. package/rds-lambda/node_modules/knex/CHANGELOG.md +63 -21
  143. package/rds-lambda/node_modules/knex/CONTRIBUTING.md +1 -1
  144. package/rds-lambda/node_modules/knex/LICENSE +22 -22
  145. package/rds-lambda/node_modules/knex/README.md +32 -31
  146. package/rds-lambda/node_modules/knex/UPGRADING.md +94 -82
  147. package/rds-lambda/node_modules/knex/knex.mjs +11 -0
  148. package/rds-lambda/node_modules/knex/lib/dialects/oracle/DEAD_CODE.md +3 -3
  149. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/cjs.stub +15 -15
  150. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/coffee.stub +13 -13
  151. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/eg.stub +14 -14
  152. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/js-schema.stub +22 -22
  153. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/js.stub +22 -22
  154. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-coffee.stub +34 -34
  155. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-eg.stub +43 -43
  156. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-js.stub +47 -47
  157. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-ls.stub +35 -35
  158. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-ts.stub +47 -47
  159. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ls.stub +14 -14
  160. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/mjs.stub +23 -23
  161. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ts-schema.stub +21 -21
  162. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ts.stub +21 -21
  163. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/coffee.stub +9 -9
  164. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/eg.stub +11 -11
  165. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/js.stub +13 -13
  166. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/ls.stub +11 -11
  167. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/mjs.stub +12 -12
  168. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/ts.stub +13 -13
  169. package/rds-lambda/node_modules/knex/package.json +21 -18
  170. package/rds-lambda/node_modules/knex/scripts/docker-compose.yml +2 -2
  171. package/rds-lambda/node_modules/knex/scripts/next-release-howto.md +1 -1
  172. package/rds-lambda/node_modules/knex/scripts/oracledb-install-driver-libs.sh +82 -82
  173. package/rds-lambda/node_modules/knex/scripts/release.sh +36 -34
  174. package/rds-lambda/node_modules/knex/scripts/stress-test/README.txt +18 -18
  175. package/rds-lambda/node_modules/knex/scripts/stress-test/docker-compose.yml +16 -16
  176. package/rds-lambda/node_modules/node-releases/data/processed/envs.json +1 -1
  177. package/rds-lambda/node_modules/node-releases/package.json +1 -1
  178. package/rds-lambda/node_modules/pg-connection-string/package.json +2 -2
  179. package/rds-lambda/node_modules/pretty-format/package.json +5 -5
  180. package/rds-lambda/node_modules/semver/package.json +19 -9
  181. package/rds-lambda/node_modules/ts-jest/.ts-jest-digest +1 -1
  182. package/rds-lambda/node_modules/ts-jest/CHANGELOG.md +9 -0
  183. package/rds-lambda/node_modules/ts-jest/node_modules/semver/package.json +3 -3
  184. package/rds-lambda/node_modules/ts-jest/package.json +12 -12
  185. package/rds-lambda/package-lock.json +373 -374
  186. package/rds-patching-lambda/node_modules/.package-lock.json +10 -10
  187. package/rds-patching-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
  188. package/rds-patching-lambda/node_modules/@smithy/types/package.json +2 -2
  189. package/rds-patching-lambda/node_modules/@types/node/README.md +1 -1
  190. package/rds-patching-lambda/node_modules/@types/node/package.json +2 -2
  191. package/rds-patching-lambda/package-lock.json +10 -10
  192. package/rds-patching-lambda/src/index.ts +2 -4
  193. package/rds-patching-lambda/tsconfig.json +9 -9
  194. package/src/__tests__/model-transformer.test.ts +175 -145
  195. package/src/__tests__/test-utils/helpers.ts +1 -1
  196. package/src/definitions.ts +30 -2
  197. package/src/graphql-model-transformer.ts +81 -75
  198. package/src/graphql-types/common.ts +41 -41
  199. package/src/graphql-types/mutation.ts +13 -13
  200. package/src/graphql-types/query.ts +1 -0
  201. package/src/index.ts +1 -0
  202. package/src/resolvers/common.ts +1 -12
  203. package/src/resolvers/dynamodb/mutation.ts +16 -13
  204. package/src/resolvers/dynamodb/query.ts +7 -12
  205. package/src/resolvers/dynamodb/subscriptions.ts +1 -3
  206. package/src/resolvers/generators/dynamodb-vtl-generator.ts +18 -8
  207. package/src/resolvers/generators/rds-vtl-generator.ts +11 -4
  208. package/src/resolvers/generators/vtl-generator.ts +5 -5
  209. package/src/resolvers/index.ts +1 -3
  210. package/src/resolvers/rds/mutation.ts +76 -70
  211. package/src/resolvers/rds/query.ts +4 -12
  212. package/src/resolvers/rds/resolver.ts +124 -130
  213. package/src/resources/dynamo-model-resource-generator.ts +14 -28
  214. package/src/resources/model-resource-generator.ts +65 -27
  215. package/src/resources/rds-model-resource-generator.ts +5 -15
  216. package/tsconfig.json +4 -4
  217. package/tsconfig.tsbuildinfo +1 -1
  218. package/rds-lambda/node_modules/semver/CHANGELOG.md +0 -70
@@ -1,15 +1,4 @@
1
- import {
2
- iff,
3
- ref,
4
- notEquals,
5
- methodCall,
6
- compoundExpression,
7
- obj,
8
- printBlock,
9
- toJson,
10
- str,
11
- not,
12
- } from 'graphql-mapping-template';
1
+ import { iff, ref, notEquals, methodCall, compoundExpression, obj, printBlock, toJson, str, not } from 'graphql-mapping-template';
13
2
 
14
3
  const API_KEY = 'API Key Authorization';
15
4
  /**
@@ -163,16 +163,18 @@ export const generateCreateRequestTemplate = (modelName: string, modelIndexField
163
163
  comment('set the typename'),
164
164
  qref(methodCall(ref('mergedValues.put'), str('__typename'), str(modelName))),
165
165
 
166
- ...(modelIndexFields.length ? [
167
- set(ref('nullIndexFields'), list([])),
168
- set(ref('indexFields'), list(modelIndexFields.map(it => str(it)))),
166
+ ...(modelIndexFields.length
167
+ ? [
168
+ set(ref('nullIndexFields'), list([])),
169
+ set(ref('indexFields'), list(modelIndexFields.map((it) => str(it)))),
169
170
 
170
- forEach(ref('entry'), ref('util.map.copyAndRetainAllKeys($mergedValues, $indexFields).entrySet()'), [
171
- iff(raw('$util.isNull($entry.value)'), qref(methodCall(ref('nullIndexFields.add'), ref('entry.key')))),
172
- ]),
171
+ forEach(ref('entry'), ref('util.map.copyAndRetainAllKeys($mergedValues, $indexFields).entrySet()'), [
172
+ iff(raw('$util.isNull($entry.value)'), qref(methodCall(ref('nullIndexFields.add'), ref('entry.key')))),
173
+ ]),
173
174
 
174
- set(ref('mergedValues'), ref('util.map.copyAndRemoveAllKeys($mergedValues, $nullIndexFields)')),
175
- ] : []),
175
+ set(ref('mergedValues'), ref('util.map.copyAndRemoveAllKeys($mergedValues, $nullIndexFields)')),
176
+ ]
177
+ : []),
176
178
 
177
179
  // Set PutObject
178
180
  set(
@@ -256,7 +258,7 @@ export const generateCreateInitSlotTemplate = (modelConfig: ModelDirectiveConfig
256
258
  * Generates VTL template in delete mutation
257
259
  *
258
260
  */
259
- export const generateDeleteRequestTemplate = (modelName:string, isSyncEnabled: boolean): string => {
261
+ export const generateDeleteRequestTemplate = (modelName: string, isSyncEnabled: boolean): string => {
260
262
  const statements: Expression[] = [
261
263
  setArgs,
262
264
  set(
@@ -328,10 +330,11 @@ export const generateUpdateInitSlotTemplate = (modelConfig: ModelDirectiveConfig
328
330
  /**
329
331
  * generateApplyDefaultsToInputTemplate
330
332
  */
331
- export const generateApplyDefaultsToInputTemplate = (target: string): Expression => compoundExpression([
332
- set(ref(target), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.defaultValues'), obj({}))),
333
- qref(methodCall(ref(`${target}.putAll`), methodCall(ref('util.defaultIfNull'), ref('ctx.args.input'), obj({})))),
334
- ]);
333
+ export const generateApplyDefaultsToInputTemplate = (target: string): Expression =>
334
+ compoundExpression([
335
+ set(ref(target), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.defaultValues'), obj({}))),
336
+ qref(methodCall(ref(`${target}.putAll`), methodCall(ref('util.defaultIfNull'), ref('ctx.args.input'), obj({})))),
337
+ ]);
335
338
 
336
339
  const generateKeyConditionTemplate = (attributeExistsValue: boolean): Expression[] => {
337
340
  const statements: Expression[] = [
@@ -23,6 +23,7 @@ import {
23
23
  raw,
24
24
  } from 'graphql-mapping-template';
25
25
  import { ResourceConstants, setArgs } from 'graphql-transformer-common';
26
+
26
27
  const authFilter = ref('ctx.stash.authFilter');
27
28
 
28
29
  /**
@@ -173,13 +174,7 @@ export const generateSyncRequestTemplate = (): string => {
173
174
  set(ref('queryFilterContainsAuthField'), bool(false)),
174
175
  set(ref('authFilterContainsSortKey'), bool(false)),
175
176
  set(ref('useScan'), bool(true)),
176
- iff(
177
- and([
178
- isNullOrEmpty(authFilter),
179
- ref('ctx.stash.QueryRequest'),
180
- ]),
181
- set(ref('useScan'), bool(false)),
182
- ),
177
+ iff(and([isNullOrEmpty(authFilter), ref('ctx.stash.QueryRequest')]), set(ref('useScan'), bool(false))),
183
178
  ifElse(
184
179
  not(isNullOrEmpty(authFilter)),
185
180
  compoundExpression([
@@ -202,10 +197,7 @@ export const generateSyncRequestTemplate = (): string => {
202
197
  compoundExpression([
203
198
  forEach(ref('filterItem'), ref('ctx.stash.authFilter.or'), [
204
199
  forEach(ref('sortKey'), ref('ctx.stash.QueryRequestVariables.sortKeys'), [
205
- iff(
206
- raw('$filterItem.get($sortKey)'),
207
- set(ref('authFilterContainsSortKey'), bool(true)),
208
- ),
200
+ iff(raw('$filterItem.get($sortKey)'), set(ref('authFilterContainsSortKey'), bool(true))),
209
201
  ]),
210
202
  ]),
211
203
  iff(
@@ -261,7 +253,10 @@ export const generateSyncRequestTemplate = (): string => {
261
253
  ref(`${requestVariable}.filter`),
262
254
  set(
263
255
  ref(`${requestVariable}.filter`),
264
- methodCall(ref('util.parseJson'), methodCall(ref('util.transform.toDynamoDBFilterExpression'), ref(`${requestVariable}.filter`))),
256
+ methodCall(
257
+ ref('util.parseJson'),
258
+ methodCall(ref('util.transform.toDynamoDBFilterExpression'), ref(`${requestVariable}.filter`)),
259
+ ),
265
260
  ),
266
261
  ),
267
262
  raw(`$util.toJson($${requestVariable})`),
@@ -1,6 +1,4 @@
1
- import {
2
- compoundExpression, Expression, obj, printBlock, str, toJson, nul, iff, not, isNullOrEmpty, ref,
3
- } from 'graphql-mapping-template';
1
+ import { compoundExpression, Expression, obj, printBlock, str, toJson, nul, iff, not, isNullOrEmpty, ref } from 'graphql-mapping-template';
4
2
  /**
5
3
  * Generates subscription request template
6
4
  */
@@ -1,11 +1,3 @@
1
- import {
2
- ModelCreateInitSlotConfig,
3
- ModelCreateRequestConfig,
4
- ModelDefaultResponseConfig,
5
- ModelRequestConfig,
6
- ModelUpdateRequestConfig,
7
- ModelVTLGenerator,
8
- } from './vtl-generator';
9
1
  import {
10
2
  generateUpdateRequestTemplate,
11
3
  generateCreateRequestTemplate,
@@ -20,41 +12,59 @@ import {
20
12
  generateSubscriptionResponseTemplate,
21
13
  generateDefaultResponseMappingTemplate,
22
14
  } from '../dynamodb';
15
+ import {
16
+ ModelCreateInitSlotConfig,
17
+ ModelCreateRequestConfig,
18
+ ModelDefaultResponseConfig,
19
+ ModelRequestConfig,
20
+ ModelUpdateRequestConfig,
21
+ ModelVTLGenerator,
22
+ } from './vtl-generator';
23
23
 
24
24
  export class DynamoDBModelVTLGenerator implements ModelVTLGenerator {
25
25
  generateUpdateRequestTemplate(config: ModelUpdateRequestConfig): string {
26
26
  return generateUpdateRequestTemplate(config.modelName, config.isSyncEnabled);
27
27
  }
28
+
28
29
  generateCreateRequestTemplate(config: ModelCreateRequestConfig): string {
29
30
  return generateCreateRequestTemplate(config.modelName, config.modelIndexFields);
30
31
  }
31
32
  generateCreateInitSlotTemplate(config: ModelCreateInitSlotConfig, initializeIdField: boolean): string {
32
33
  return generateCreateInitSlotTemplate(config.modelConfig, initializeIdField);
33
34
  }
35
+
34
36
  generateDeleteRequestTemplate(config: ModelUpdateRequestConfig): string {
35
37
  return generateDeleteRequestTemplate(config.modelName, config.isSyncEnabled);
36
38
  }
39
+
37
40
  generateUpdateInitSlotTemplate(config: ModelCreateInitSlotConfig): string {
38
41
  return generateUpdateInitSlotTemplate(config.modelConfig);
39
42
  }
43
+
40
44
  generateGetRequestTemplate(config: ModelRequestConfig): string {
41
45
  return generateGetRequestTemplate();
42
46
  }
47
+
43
48
  generateGetResponseTemplate(config: ModelUpdateRequestConfig): string {
44
49
  return generateGetResponseTemplate(config.isSyncEnabled);
45
50
  }
51
+
46
52
  generateListRequestTemplate(config: ModelRequestConfig): string {
47
53
  return generateListRequestTemplate();
48
54
  }
55
+
49
56
  generateSyncRequestTemplate(config: ModelRequestConfig): string {
50
57
  return generateSyncRequestTemplate();
51
58
  }
59
+
52
60
  generateSubscriptionRequestTemplate(): string {
53
61
  return generateSubscriptionRequestTemplate();
54
62
  }
63
+
55
64
  generateSubscriptionResponseTemplate(): string {
56
65
  return generateSubscriptionResponseTemplate();
57
66
  }
67
+
58
68
  generateDefaultResponseMappingTemplate(config: ModelDefaultResponseConfig): string {
59
69
  return generateDefaultResponseMappingTemplate(config.isSyncEnabled, config.mutation);
60
70
  }
@@ -9,10 +9,7 @@ import {
9
9
  generateLambdaDeleteRequestTemplate,
10
10
  generateLambdaListRequestTemplate,
11
11
  } from '../rds';
12
- import {
13
- generateSubscriptionRequestTemplate,
14
- generateSubscriptionResponseTemplate,
15
- } from '../dynamodb';
12
+ import { generateSubscriptionRequestTemplate, generateSubscriptionResponseTemplate } from '../dynamodb';
16
13
  import {
17
14
  ModelCreateInitSlotConfig,
18
15
  ModelCreateRequestConfig,
@@ -27,36 +24,46 @@ export class RDSModelVTLGenerator implements ModelVTLGenerator {
27
24
  generateUpdateRequestTemplate(config: ModelUpdateRequestConfig): string {
28
25
  return generateLambdaUpdateRequestTemplate(config.modelName, config.operationName, config.modelIndexFields ?? ['id']);
29
26
  }
27
+
30
28
  generateCreateRequestTemplate(config: ModelCreateRequestConfig): string {
31
29
  return generateLambdaCreateRequestTemplate(config.modelName, config.operationName);
32
30
  }
33
31
  generateCreateInitSlotTemplate(config: ModelCreateInitSlotConfig, initializeIdField: boolean): string {
34
32
  return generateCreateInitSlotTemplate(config.modelConfig, initializeIdField);
35
33
  }
34
+
36
35
  generateDeleteRequestTemplate(config: ModelUpdateRequestConfig): string {
37
36
  return generateLambdaDeleteRequestTemplate(config.modelName, config.operationName, config.modelIndexFields ?? ['id']);
38
37
  }
38
+
39
39
  generateUpdateInitSlotTemplate(config: ModelCreateInitSlotConfig): string {
40
40
  return generateUpdateInitSlotTemplate(config.modelConfig);
41
41
  }
42
+
42
43
  generateGetRequestTemplate(config: ModelRequestConfig): string {
43
44
  return generateLambdaRequestTemplate(config.modelName, config.operation, config.operationName);
44
45
  }
46
+
45
47
  generateGetResponseTemplate(config: ModelUpdateRequestConfig): string {
46
48
  return generateGetLambdaResponseTemplate(false);
47
49
  }
50
+
48
51
  generateListRequestTemplate(config: ModelRequestConfig): string {
49
52
  return generateLambdaListRequestTemplate(config.modelName, config.operation, config.operationName);
50
53
  }
54
+
51
55
  generateSyncRequestTemplate(config: ModelRequestConfig): string {
52
56
  return generateDefaultLambdaResponseMappingTemplate(false);
53
57
  }
58
+
54
59
  generateSubscriptionRequestTemplate(): string {
55
60
  return generateSubscriptionRequestTemplate();
56
61
  }
62
+
57
63
  generateSubscriptionResponseTemplate(): string {
58
64
  return generateSubscriptionResponseTemplate();
59
65
  }
66
+
60
67
  generateDefaultResponseMappingTemplate(config: ModelDefaultResponseConfig): string {
61
68
  return generateDefaultLambdaResponseMappingTemplate(false);
62
69
  }
@@ -4,22 +4,22 @@ export type ModelRequestConfig = {
4
4
  modelName: string;
5
5
  operation: string;
6
6
  operationName: string;
7
- }
7
+ };
8
8
 
9
9
  export type ModelUpdateRequestConfig = ModelRequestConfig & {
10
10
  modelIndexFields: string[];
11
11
  isSyncEnabled: boolean;
12
- }
12
+ };
13
13
 
14
14
  export type ModelDeleteRequestConfig = ModelUpdateRequestConfig;
15
15
 
16
16
  export type ModelCreateRequestConfig = ModelRequestConfig & {
17
17
  modelIndexFields: string[];
18
- }
18
+ };
19
19
 
20
20
  export type ModelCreateInitSlotConfig = {
21
21
  modelConfig: ModelDirectiveConfiguration;
22
- }
22
+ };
23
23
 
24
24
  export type ModelUpdateInitSlotConfig = ModelCreateInitSlotConfig;
25
25
 
@@ -28,7 +28,7 @@ export type ModelGetResponseConfig = ModelUpdateRequestConfig;
28
28
  export type ModelDefaultResponseConfig = ModelRequestConfig & {
29
29
  isSyncEnabled: boolean;
30
30
  mutation: boolean;
31
- }
31
+ };
32
32
 
33
33
  export interface ModelVTLGenerator {
34
34
  generateUpdateRequestTemplate(config: ModelUpdateRequestConfig): string;
@@ -1,5 +1,3 @@
1
1
  export * from './generators';
2
2
  export * from './common';
3
- export {
4
- generateApplyDefaultsToInputTemplate
5
- } from './dynamodb';
3
+ export { generateApplyDefaultsToInputTemplate } from './dynamodb';
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  comment,
3
3
  compoundExpression,
4
- Expression, list,
4
+ Expression,
5
+ list,
5
6
  methodCall,
6
7
  obj,
7
8
  printBlock,
@@ -52,27 +53,32 @@ export const generateCreateInitSlotTemplate = (modelConfig: ModelDirectiveConfig
52
53
  return printBlock('Initialization default values')(compoundExpression(statements));
53
54
  };
54
55
 
55
- export const generateLambdaCreateRequestTemplate = (tableName: string, operationName: string): string => printBlock('Invoke RDS Lambda data source')(
56
- compoundExpression([
57
- set(ref('lambdaInput'), obj({})),
58
- set(ref('lambdaInput.table'), str(tableName)),
59
- set(ref('lambdaInput.args'), obj({})),
60
- set(ref('lambdaInput.operation'), str('CREATE')),
61
- set(ref('lambdaInput.operationName'), str(operationName)),
62
- set(ref('lambdaInput.args.metadata'), obj({})),
63
- set(ref('lambdaInput.args.metadata.keys'), list([])),
64
- qref(methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([])))),
65
- comment('Set the default values to put request'),
66
- set(ref('lambdaInput.args.input'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.defaultValues'), obj({}))),
67
- comment('copy the values from input'),
68
- qref(methodCall(ref('lambdaInput.args.input.putAll'), methodCall(ref('util.defaultIfNull'), ref('context.arguments.input'), obj({})))),
69
- obj({
70
- version: str('2018-05-29'),
71
- operation: str('Invoke'),
72
- payload: methodCall(ref('util.toJson'), ref('lambdaInput')),
73
- }),
74
- ]),
75
- );
56
+ export const generateLambdaCreateRequestTemplate = (tableName: string, operationName: string): string =>
57
+ printBlock('Invoke RDS Lambda data source')(
58
+ compoundExpression([
59
+ set(ref('lambdaInput'), obj({})),
60
+ set(ref('lambdaInput.table'), str(tableName)),
61
+ set(ref('lambdaInput.args'), obj({})),
62
+ set(ref('lambdaInput.operation'), str('CREATE')),
63
+ set(ref('lambdaInput.operationName'), str(operationName)),
64
+ set(ref('lambdaInput.args.metadata'), obj({})),
65
+ set(ref('lambdaInput.args.metadata.keys'), list([])),
66
+ qref(
67
+ methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([]))),
68
+ ),
69
+ comment('Set the default values to put request'),
70
+ set(ref('lambdaInput.args.input'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.defaultValues'), obj({}))),
71
+ comment('copy the values from input'),
72
+ qref(
73
+ methodCall(ref('lambdaInput.args.input.putAll'), methodCall(ref('util.defaultIfNull'), ref('context.arguments.input'), obj({}))),
74
+ ),
75
+ obj({
76
+ version: str('2018-05-29'),
77
+ operation: str('Invoke'),
78
+ payload: methodCall(ref('util.toJson'), ref('lambdaInput')),
79
+ }),
80
+ ]),
81
+ );
76
82
 
77
83
  /**
78
84
  * Generate VTL template that sets the default values for Update mutation
@@ -109,55 +115,55 @@ export const generateUpdateInitSlotTemplate = (modelConfig: ModelDirectiveConfig
109
115
  /**
110
116
  * Generate VTL template that calls the lambda for an Update mutation
111
117
  */
112
- export const generateLambdaUpdateRequestTemplate = (
113
- tableName: string,
114
- operationName: string,
115
- modelIndexFields: string[],
116
- ): string => printBlock('Invoke RDS Lambda data source')(
117
- compoundExpression([
118
- set(ref('lambdaInput'), obj({})),
119
- set(ref('lambdaInput.table'), str(tableName)),
120
- set(ref('lambdaInput.args'), obj({})),
121
- set(ref('lambdaInput.operation'), str('UPDATE')),
122
- set(ref('lambdaInput.operationName'), str(operationName)),
123
- set(ref('lambdaInput.args.metadata'), obj({})),
124
- set(ref('lambdaInput.args.metadata.keys'), list([])),
125
- qref(methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([])))),
126
- comment('Set the default values to put request'),
127
- set(ref('lambdaInput.args.input'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.defaultValues'), obj({}))),
128
- comment('copy the values from input'),
129
- qref(methodCall(ref('lambdaInput.args.input.putAll'), methodCall(ref('util.defaultIfNull'), ref('context.arguments.input'), obj({})))),
130
- set(ref('lambdaInput.args.condition'), methodCall(ref('util.defaultIfNull'), ref('context.arguments.condition'), obj({}))),
131
- obj({
132
- version: str('2018-05-29'),
133
- operation: str('Invoke'),
134
- payload: methodCall(ref('util.toJson'), ref('lambdaInput')),
135
- }),
136
- ]),
137
- );
118
+ export const generateLambdaUpdateRequestTemplate = (tableName: string, operationName: string, modelIndexFields: string[]): string =>
119
+ printBlock('Invoke RDS Lambda data source')(
120
+ compoundExpression([
121
+ set(ref('lambdaInput'), obj({})),
122
+ set(ref('lambdaInput.table'), str(tableName)),
123
+ set(ref('lambdaInput.args'), obj({})),
124
+ set(ref('lambdaInput.operation'), str('UPDATE')),
125
+ set(ref('lambdaInput.operationName'), str(operationName)),
126
+ set(ref('lambdaInput.args.metadata'), obj({})),
127
+ set(ref('lambdaInput.args.metadata.keys'), list([])),
128
+ qref(
129
+ methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([]))),
130
+ ),
131
+ comment('Set the default values to put request'),
132
+ set(ref('lambdaInput.args.input'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.defaultValues'), obj({}))),
133
+ comment('copy the values from input'),
134
+ qref(
135
+ methodCall(ref('lambdaInput.args.input.putAll'), methodCall(ref('util.defaultIfNull'), ref('context.arguments.input'), obj({}))),
136
+ ),
137
+ set(ref('lambdaInput.args.condition'), methodCall(ref('util.defaultIfNull'), ref('context.arguments.condition'), obj({}))),
138
+ obj({
139
+ version: str('2018-05-29'),
140
+ operation: str('Invoke'),
141
+ payload: methodCall(ref('util.toJson'), ref('lambdaInput')),
142
+ }),
143
+ ]),
144
+ );
138
145
 
139
146
  /**
140
147
  * Generate VTL template that calls the lambda for a Delete mutation
141
148
  */
142
- export const generateLambdaDeleteRequestTemplate = (
143
- tableName: string,
144
- operationName: string,
145
- modelIndexFields: string[],
146
- ): string => printBlock('Invoke RDS Lambda data source')(
147
- compoundExpression([
148
- set(ref('lambdaInput'), obj({})),
149
- set(ref('lambdaInput.table'), str(tableName)),
150
- set(ref('lambdaInput.args'), ref('context.arguments')),
151
- set(ref('lambdaInput.operation'), str('DELETE')),
152
- set(ref('lambdaInput.operationName'), str(operationName)),
153
- set(ref('lambdaInput.args.metadata'), obj({})),
154
- set(ref('lambdaInput.args.metadata.keys'), list([])),
155
- qref(methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([])))),
156
- set(ref('lambdaInput.args.condition'), methodCall(ref('util.defaultIfNull'), ref('context.arguments.condition'), obj({}))),
157
- obj({
158
- version: str('2018-05-29'),
159
- operation: str('Invoke'),
160
- payload: methodCall(ref('util.toJson'), ref('lambdaInput')),
161
- }),
162
- ]),
163
- );
149
+ export const generateLambdaDeleteRequestTemplate = (tableName: string, operationName: string, modelIndexFields: string[]): string =>
150
+ printBlock('Invoke RDS Lambda data source')(
151
+ compoundExpression([
152
+ set(ref('lambdaInput'), obj({})),
153
+ set(ref('lambdaInput.table'), str(tableName)),
154
+ set(ref('lambdaInput.args'), ref('context.arguments')),
155
+ set(ref('lambdaInput.operation'), str('DELETE')),
156
+ set(ref('lambdaInput.operationName'), str(operationName)),
157
+ set(ref('lambdaInput.args.metadata'), obj({})),
158
+ set(ref('lambdaInput.args.metadata.keys'), list([])),
159
+ qref(
160
+ methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([]))),
161
+ ),
162
+ set(ref('lambdaInput.args.condition'), methodCall(ref('util.defaultIfNull'), ref('context.arguments.condition'), obj({}))),
163
+ obj({
164
+ version: str('2018-05-29'),
165
+ operation: str('Invoke'),
166
+ payload: methodCall(ref('util.toJson'), ref('lambdaInput')),
167
+ }),
168
+ ]),
169
+ );
@@ -1,14 +1,4 @@
1
- import {
2
- compoundExpression,
3
- list,
4
- methodCall,
5
- obj,
6
- printBlock,
7
- qref,
8
- ref,
9
- set,
10
- str,
11
- } from 'graphql-mapping-template';
1
+ import { compoundExpression, list, methodCall, obj, printBlock, qref, ref, set, str } from 'graphql-mapping-template';
12
2
 
13
3
  export const generateLambdaListRequestTemplate = (tableName: string, operation: string, operationName: string): string => {
14
4
  return printBlock('Invoke RDS Lambda data source')(
@@ -20,7 +10,9 @@ export const generateLambdaListRequestTemplate = (tableName: string, operation:
20
10
  set(ref('lambdaInput.operationName'), str(operationName)),
21
11
  set(ref('lambdaInput.args.metadata'), obj({})),
22
12
  set(ref('lambdaInput.args.metadata.keys'), list([])),
23
- qref(methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([])))),
13
+ qref(
14
+ methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([]))),
15
+ ),
24
16
  set(ref('lambdaInput.args.input'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.defaultValues'), obj({}))),
25
17
  qref(methodCall(ref('lambdaInput.args.putAll'), methodCall(ref('util.defaultIfNull'), ref('context.arguments'), obj({})))),
26
18
  obj({