@aws-amplify/graphql-model-transformer 1.3.6 → 1.3.8

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 (155) hide show
  1. package/CHANGELOG.md +8 -0
  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 +37 -35
  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.js +12 -12
  12. package/lib/graphql-types/mutation.js.map +1 -1
  13. package/lib/rds-lambda.zip +0 -0
  14. package/lib/resolvers/common.d.ts.map +1 -1
  15. package/lib/resolvers/common.js.map +1 -1
  16. package/lib/resolvers/dynamodb/mutation.d.ts.map +1 -1
  17. package/lib/resolvers/dynamodb/mutation.js +10 -8
  18. package/lib/resolvers/dynamodb/mutation.js.map +1 -1
  19. package/lib/resolvers/dynamodb/query.d.ts.map +1 -1
  20. package/lib/resolvers/dynamodb/query.js +1 -4
  21. package/lib/resolvers/dynamodb/query.js.map +1 -1
  22. package/lib/resolvers/dynamodb/subscriptions.d.ts.map +1 -1
  23. package/lib/resolvers/dynamodb/subscriptions.js.map +1 -1
  24. package/lib/resolvers/generators/rds-vtl-generator.d.ts.map +1 -1
  25. package/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
  26. package/lib/resolvers/generators/vtl-generator.d.ts.map +1 -1
  27. package/lib/resolvers/index.d.ts.map +1 -1
  28. package/lib/resolvers/index.js.map +1 -1
  29. package/lib/resolvers/rds/mutation.d.ts.map +1 -1
  30. package/lib/resolvers/rds/mutation.js.map +1 -1
  31. package/lib/resolvers/rds/query.d.ts.map +1 -1
  32. package/lib/resolvers/rds/query.js.map +1 -1
  33. package/lib/resolvers/rds/resolver.d.ts.map +1 -1
  34. package/lib/resolvers/rds/resolver.js +1 -1
  35. package/lib/resolvers/rds/resolver.js.map +1 -1
  36. package/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
  37. package/lib/resources/dynamo-model-resource-generator.js.map +1 -1
  38. package/lib/resources/model-resource-generator.d.ts.map +1 -1
  39. package/lib/resources/model-resource-generator.js +12 -4
  40. package/lib/resources/model-resource-generator.js.map +1 -1
  41. package/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
  42. package/lib/resources/rds-model-resource-generator.js +1 -1
  43. package/lib/resources/rds-model-resource-generator.js.map +1 -1
  44. package/package.json +7 -7
  45. package/rds-lambda/node_modules/.package-lock.json +215 -227
  46. package/rds-lambda/node_modules/@aws-sdk/client-ssm/package.json +17 -18
  47. package/rds-lambda/node_modules/@aws-sdk/client-sso/package.json +14 -15
  48. package/rds-lambda/node_modules/@aws-sdk/client-sso-oidc/package.json +14 -15
  49. package/rds-lambda/node_modules/@aws-sdk/client-sts/package.json +17 -18
  50. package/rds-lambda/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  51. package/rds-lambda/node_modules/@aws-sdk/credential-provider-ini/package.json +6 -6
  52. package/rds-lambda/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  53. package/rds-lambda/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  54. package/rds-lambda/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  55. package/rds-lambda/node_modules/@aws-sdk/credential-provider-web-identity/package.json +2 -2
  56. package/rds-lambda/node_modules/@aws-sdk/middleware-host-header/package.json +2 -2
  57. package/rds-lambda/node_modules/@aws-sdk/middleware-logger/package.json +2 -2
  58. package/rds-lambda/node_modules/@aws-sdk/middleware-recursion-detection/package.json +2 -2
  59. package/rds-lambda/node_modules/@aws-sdk/middleware-sdk-sts/package.json +3 -3
  60. package/rds-lambda/node_modules/@aws-sdk/middleware-signing/package.json +2 -2
  61. package/rds-lambda/node_modules/@aws-sdk/middleware-user-agent/package.json +3 -3
  62. package/rds-lambda/node_modules/@aws-sdk/token-providers/package.json +3 -3
  63. package/rds-lambda/node_modules/@aws-sdk/types/package.json +2 -1
  64. package/rds-lambda/node_modules/@aws-sdk/util-endpoints/package.json +2 -2
  65. package/rds-lambda/node_modules/@aws-sdk/util-user-agent-browser/package.json +2 -2
  66. package/rds-lambda/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  67. package/rds-lambda/node_modules/@babel/compat-data/data/plugin-bugfixes.json +2 -0
  68. package/rds-lambda/node_modules/@babel/compat-data/data/plugins.json +8 -0
  69. package/rds-lambda/node_modules/@babel/compat-data/package.json +1 -1
  70. package/rds-lambda/node_modules/@babel/core/package.json +7 -7
  71. package/rds-lambda/node_modules/@babel/generator/package.json +2 -2
  72. package/rds-lambda/node_modules/@babel/helper-compilation-targets/package.json +5 -5
  73. package/rds-lambda/node_modules/@babel/helper-module-transforms/README.md +1 -1
  74. package/rds-lambda/node_modules/@babel/helper-module-transforms/package.json +10 -6
  75. package/rds-lambda/node_modules/@types/jest/README.md +1 -1
  76. package/rds-lambda/node_modules/@types/jest/package.json +2 -2
  77. package/rds-lambda/node_modules/@types/node/README.md +1 -1
  78. package/rds-lambda/node_modules/@types/node/package.json +2 -2
  79. package/rds-lambda/node_modules/caniuse-lite/package.json +1 -1
  80. package/rds-lambda/node_modules/commander/Readme.md +7 -2
  81. package/rds-lambda/node_modules/commander/package.json +17 -17
  82. package/rds-lambda/node_modules/electron-to-chromium/full-chromium-versions.json +1 -1
  83. package/rds-lambda/node_modules/electron-to-chromium/full-versions.json +1 -1
  84. package/rds-lambda/node_modules/electron-to-chromium/package.json +1 -1
  85. package/rds-lambda/node_modules/electron-to-chromium/versions.json +1 -1
  86. package/rds-lambda/node_modules/jest-snapshot/node_modules/semver/package.json +3 -3
  87. package/rds-lambda/node_modules/knex/CHANGELOG.md +63 -21
  88. package/rds-lambda/node_modules/knex/CONTRIBUTING.md +1 -1
  89. package/rds-lambda/node_modules/knex/LICENSE +22 -22
  90. package/rds-lambda/node_modules/knex/README.md +32 -31
  91. package/rds-lambda/node_modules/knex/UPGRADING.md +94 -82
  92. package/rds-lambda/node_modules/knex/knex.mjs +11 -0
  93. package/rds-lambda/node_modules/knex/lib/dialects/oracle/DEAD_CODE.md +3 -3
  94. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/cjs.stub +15 -15
  95. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/coffee.stub +13 -13
  96. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/eg.stub +14 -14
  97. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/js-schema.stub +22 -22
  98. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/js.stub +22 -22
  99. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-coffee.stub +34 -34
  100. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-eg.stub +43 -43
  101. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-js.stub +47 -47
  102. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-ls.stub +35 -35
  103. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-ts.stub +47 -47
  104. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ls.stub +14 -14
  105. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/mjs.stub +23 -23
  106. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ts-schema.stub +21 -21
  107. package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ts.stub +21 -21
  108. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/coffee.stub +9 -9
  109. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/eg.stub +11 -11
  110. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/js.stub +13 -13
  111. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/ls.stub +11 -11
  112. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/mjs.stub +12 -12
  113. package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/ts.stub +13 -13
  114. package/rds-lambda/node_modules/knex/package.json +21 -18
  115. package/rds-lambda/node_modules/knex/scripts/docker-compose.yml +2 -2
  116. package/rds-lambda/node_modules/knex/scripts/next-release-howto.md +1 -1
  117. package/rds-lambda/node_modules/knex/scripts/oracledb-install-driver-libs.sh +82 -82
  118. package/rds-lambda/node_modules/knex/scripts/release.sh +36 -34
  119. package/rds-lambda/node_modules/knex/scripts/stress-test/README.txt +18 -18
  120. package/rds-lambda/node_modules/knex/scripts/stress-test/docker-compose.yml +16 -16
  121. package/rds-lambda/node_modules/pg-connection-string/package.json +2 -2
  122. package/rds-lambda/node_modules/semver/package.json +19 -9
  123. package/rds-lambda/node_modules/ts-jest/node_modules/semver/package.json +3 -3
  124. package/rds-lambda/package-lock.json +215 -227
  125. package/src/__tests__/model-transformer.test.ts +130 -139
  126. package/src/__tests__/test-utils/helpers.ts +1 -1
  127. package/src/__tests__/test-utils/rds_utils.test.ts +29 -68
  128. package/src/definitions.ts +28 -2
  129. package/src/graphql-model-transformer.ts +72 -74
  130. package/src/graphql-types/common.ts +41 -41
  131. package/src/graphql-types/mutation.ts +12 -12
  132. package/src/resolvers/common.ts +1 -12
  133. package/src/resolvers/dynamodb/mutation.ts +16 -13
  134. package/src/resolvers/dynamodb/query.ts +6 -12
  135. package/src/resolvers/dynamodb/subscriptions.ts +1 -3
  136. package/src/resolvers/generators/rds-vtl-generator.ts +1 -4
  137. package/src/resolvers/generators/vtl-generator.ts +5 -5
  138. package/src/resolvers/index.ts +1 -3
  139. package/src/resolvers/rds/mutation.ts +17 -6
  140. package/src/resolvers/rds/query.ts +4 -12
  141. package/src/resolvers/rds/resolver.ts +8 -13
  142. package/src/resources/dynamo-model-resource-generator.ts +12 -22
  143. package/src/resources/model-resource-generator.ts +54 -24
  144. package/src/resources/rds-model-resource-generator.ts +9 -23
  145. package/tsconfig.json +4 -4
  146. package/tsconfig.tsbuildinfo +1 -1
  147. package/rds-lambda/node_modules/@nicolo-ribaudo/semver-v6/CHANGELOG.md +0 -70
  148. package/rds-lambda/node_modules/@nicolo-ribaudo/semver-v6/LICENSE +0 -15
  149. package/rds-lambda/node_modules/@nicolo-ribaudo/semver-v6/README.md +0 -454
  150. package/rds-lambda/node_modules/@nicolo-ribaudo/semver-v6/package.json +0 -28
  151. package/rds-lambda/node_modules/@nicolo-ribaudo/semver-v6/range.bnf +0 -16
  152. package/rds-lambda/node_modules/pg/node_modules/pg-connection-string/LICENSE +0 -21
  153. package/rds-lambda/node_modules/pg/node_modules/pg-connection-string/README.md +0 -77
  154. package/rds-lambda/node_modules/pg/node_modules/pg-connection-string/package.json +0 -40
  155. 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[] = [
@@ -173,13 +173,7 @@ export const generateSyncRequestTemplate = (): string => {
173
173
  set(ref('queryFilterContainsAuthField'), bool(false)),
174
174
  set(ref('authFilterContainsSortKey'), bool(false)),
175
175
  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
- ),
176
+ iff(and([isNullOrEmpty(authFilter), ref('ctx.stash.QueryRequest')]), set(ref('useScan'), bool(false))),
183
177
  ifElse(
184
178
  not(isNullOrEmpty(authFilter)),
185
179
  compoundExpression([
@@ -202,10 +196,7 @@ export const generateSyncRequestTemplate = (): string => {
202
196
  compoundExpression([
203
197
  forEach(ref('filterItem'), ref('ctx.stash.authFilter.or'), [
204
198
  forEach(ref('sortKey'), ref('ctx.stash.QueryRequestVariables.sortKeys'), [
205
- iff(
206
- raw('$filterItem.get($sortKey)'),
207
- set(ref('authFilterContainsSortKey'), bool(true)),
208
- ),
199
+ iff(raw('$filterItem.get($sortKey)'), set(ref('authFilterContainsSortKey'), bool(true))),
209
200
  ]),
210
201
  ]),
211
202
  iff(
@@ -261,7 +252,10 @@ export const generateSyncRequestTemplate = (): string => {
261
252
  ref(`${requestVariable}.filter`),
262
253
  set(
263
254
  ref(`${requestVariable}.filter`),
264
- methodCall(ref('util.parseJson'), methodCall(ref('util.transform.toDynamoDBFilterExpression'), ref(`${requestVariable}.filter`))),
255
+ methodCall(
256
+ ref('util.parseJson'),
257
+ methodCall(ref('util.transform.toDynamoDBFilterExpression'), ref(`${requestVariable}.filter`)),
258
+ ),
265
259
  ),
266
260
  ),
267
261
  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
  */
@@ -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,
@@ -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,
@@ -60,11 +61,15 @@ export const generateLambdaCreateRequestTemplate = (tableName: string, operation
60
61
  set(ref('lambdaInput.operationName'), str(operationName)),
61
62
  set(ref('lambdaInput.args.metadata'), obj({})),
62
63
  set(ref('lambdaInput.args.metadata.keys'), list([])),
63
- qref(methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([])))),
64
+ qref(
65
+ methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([]))),
66
+ ),
64
67
  comment('Set the default values to put request'),
65
68
  set(ref('lambdaInput.args.input'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.defaultValues'), obj({}))),
66
69
  comment('copy the values from input'),
67
- qref(methodCall(ref('lambdaInput.args.input.putAll'), methodCall(ref('util.defaultIfNull'), ref('context.arguments.input'), obj({})))),
70
+ qref(
71
+ methodCall(ref('lambdaInput.args.input.putAll'), methodCall(ref('util.defaultIfNull'), ref('context.arguments.input'), obj({}))),
72
+ ),
68
73
  obj({
69
74
  version: str('2018-05-29'),
70
75
  operation: str('Invoke'),
@@ -119,11 +124,15 @@ export const generateLambdaUpdateRequestTemplate = (tableName: string, operation
119
124
  set(ref('lambdaInput.operationName'), str(operationName)),
120
125
  set(ref('lambdaInput.args.metadata'), obj({})),
121
126
  set(ref('lambdaInput.args.metadata.keys'), list([])),
122
- qref(methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([])))),
127
+ qref(
128
+ methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([]))),
129
+ ),
123
130
  comment('Set the default values to put request'),
124
131
  set(ref('lambdaInput.args.input'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.defaultValues'), obj({}))),
125
132
  comment('copy the values from input'),
126
- qref(methodCall(ref('lambdaInput.args.input.putAll'), methodCall(ref('util.defaultIfNull'), ref('context.arguments.input'), obj({})))),
133
+ qref(
134
+ methodCall(ref('lambdaInput.args.input.putAll'), methodCall(ref('util.defaultIfNull'), ref('context.arguments.input'), obj({}))),
135
+ ),
127
136
  obj({
128
137
  version: str('2018-05-29'),
129
138
  operation: str('Invoke'),
@@ -146,7 +155,9 @@ export const generateLambdaDeleteRequestTemplate = (tableName: string, operation
146
155
  set(ref('lambdaInput.operationName'), str(operationName)),
147
156
  set(ref('lambdaInput.args.metadata'), obj({})),
148
157
  set(ref('lambdaInput.args.metadata.keys'), list([])),
149
- qref(methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([])))),
158
+ qref(
159
+ methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([]))),
160
+ ),
150
161
  obj({
151
162
  version: str('2018-05-29'),
152
163
  operation: str('Invoke'),
@@ -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({
@@ -23,18 +23,11 @@ import {
23
23
  import { ResourceConstants } from 'graphql-transformer-common';
24
24
  import { Stack } from 'aws-cdk-lib';
25
25
  import { Construct } from 'constructs';
26
- import {
27
- Effect,
28
- IRole,
29
- Policy,
30
- PolicyStatement,
31
- Role,
32
- ServicePrincipal,
33
- } from 'aws-cdk-lib/aws-iam';
26
+ import { Effect, IRole, Policy, PolicyStatement, Role, ServicePrincipal } from 'aws-cdk-lib/aws-iam';
34
27
  import { IFunction, Runtime } from 'aws-cdk-lib/aws-lambda';
35
28
  import { GraphQLAPIProvider } from '@aws-amplify/graphql-transformer-interfaces';
36
29
  import path from 'path';
37
- import {RDSConnectionSecrets} from '@aws-amplify/graphql-transformer-core';
30
+ import { RDSConnectionSecrets } from '@aws-amplify/graphql-transformer-core';
38
31
 
39
32
  export type OPERATIONS = 'CREATE' | 'UPDATE' | 'DELETE' | 'GET' | 'LIST' | 'SYNC';
40
33
 
@@ -73,7 +66,7 @@ export const createRdsLambdaRole = (roleName: string, stack: Construct, secretEn
73
66
  actions: ['logs:CreateLogGroup', 'logs:CreateLogStream', 'logs:PutLogEvents'],
74
67
  effect: Effect.ALLOW,
75
68
  resources: ['arn:aws:logs:*:*:*'],
76
- })
69
+ }),
77
70
  ];
78
71
  if (secretEntry) {
79
72
  policyStatements.push(
@@ -81,8 +74,8 @@ export const createRdsLambdaRole = (roleName: string, stack: Construct, secretEn
81
74
  actions: ['ssm:GetParameter', 'ssm:GetParameters'],
82
75
  effect: Effect.ALLOW,
83
76
  resources: [`arn:aws:ssm:*:*:parameter${secretEntry.username}`, `arn:aws:ssm:*:*:parameter${secretEntry.password}`],
84
- })
85
- )
77
+ }),
78
+ );
86
79
  }
87
80
  role.attachInlinePolicy(
88
81
  new Policy(stack, 'CloudwatchLogsAccess', {
@@ -103,7 +96,9 @@ export const generateLambdaRequestTemplate = (tableName: string, operation: stri
103
96
  set(ref('lambdaInput.operationName'), str(operationName)),
104
97
  set(ref('lambdaInput.args.metadata'), obj({})),
105
98
  set(ref('lambdaInput.args.metadata.keys'), list([])),
106
- qref(methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([])))),
99
+ qref(
100
+ methodCall(ref('lambdaInput.args.metadata.keys.addAll'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.keys'), list([]))),
101
+ ),
107
102
  set(ref('lambdaInput.args.input'), methodCall(ref('util.defaultIfNull'), ref('ctx.stash.defaultValues'), obj({}))),
108
103
  qref(methodCall(ref('lambdaInput.args.input.putAll'), methodCall(ref('util.defaultIfNull'), ref('context.arguments'), obj({})))),
109
104
  obj({
@@ -1,19 +1,9 @@
1
1
  import * as cdk from 'aws-cdk-lib';
2
2
  import { TransformerContextProvider } from '@aws-amplify/graphql-transformer-interfaces';
3
- import {
4
- ModelResourceIDs,
5
- ResourceConstants,
6
- SyncResourceIDs,
7
- } from 'graphql-transformer-common';
3
+ import { ModelResourceIDs, ResourceConstants, SyncResourceIDs } from 'graphql-transformer-common';
8
4
  import { ObjectTypeDefinitionNode } from 'graphql';
9
5
  import { SyncUtils, TransformerNestedStack } from '@aws-amplify/graphql-transformer-core';
10
- import {
11
- AttributeType,
12
- CfnTable,
13
- StreamViewType,
14
- Table,
15
- TableEncryption,
16
- } from 'aws-cdk-lib/aws-dynamodb';
6
+ import { AttributeType, CfnTable, StreamViewType, Table, TableEncryption } from 'aws-cdk-lib/aws-dynamodb';
17
7
  import { CfnDataSource } from 'aws-cdk-lib/aws-appsync';
18
8
  import * as iam from 'aws-cdk-lib/aws-iam';
19
9
  import { CfnRole } from 'aws-cdk-lib/aws-iam';
@@ -269,15 +259,15 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
269
259
  }),
270
260
  ...(context.isProjectUsingDataStore()
271
261
  ? [
272
- // eslint-disable-next-line no-template-curly-in-string
273
- cdk.Fn.sub('arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}', {
274
- tablename: amplifyDataStoreTableName,
275
- }),
276
- // eslint-disable-next-line no-template-curly-in-string
277
- cdk.Fn.sub('arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}/*', {
278
- tablename: amplifyDataStoreTableName,
279
- }),
280
- ]
262
+ // eslint-disable-next-line no-template-curly-in-string
263
+ cdk.Fn.sub('arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}', {
264
+ tablename: amplifyDataStoreTableName,
265
+ }),
266
+ // eslint-disable-next-line no-template-curly-in-string
267
+ cdk.Fn.sub('arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tablename}/*', {
268
+ tablename: amplifyDataStoreTableName,
269
+ }),
270
+ ]
281
271
  : []),
282
272
  ],
283
273
  }),
@@ -293,5 +283,5 @@ export class DynamoModelResourceGenerator extends ModelResourceGenerator {
293
283
  }
294
284
 
295
285
  return role;
296
- }
286
+ };
297
287
  }
@@ -1,19 +1,15 @@
1
1
  import {
2
- DataSourceProvider, MutationFieldType, QueryFieldType, SubscriptionFieldType,
2
+ DataSourceProvider,
3
+ MutationFieldType,
4
+ QueryFieldType,
5
+ SubscriptionFieldType,
3
6
  TransformerContextProvider,
4
7
  TransformerResolverProvider,
5
8
  } from '@aws-amplify/graphql-transformer-interfaces';
6
9
  import { ObjectTypeDefinitionNode } from 'graphql';
7
10
  import { MappingTemplate } from '@aws-amplify/graphql-transformer-core';
8
- import {
9
- ResolverResourceIDs,
10
- toCamelCase,
11
- } from 'graphql-transformer-common';
12
- import {
13
- generateAuthExpressionForSandboxMode,
14
- generateResolverKey,
15
- ModelVTLGenerator,
16
- } from '../resolvers';
11
+ import { ResolverResourceIDs, toCamelCase } from 'graphql-transformer-common';
12
+ import { generateAuthExpressionForSandboxMode, generateResolverKey, ModelVTLGenerator } from '../resolvers';
17
13
  import { ModelDirectiveConfiguration, SubscriptionLevel } from '../directive';
18
14
  import { ModelTransformerOptions } from '../types';
19
15
 
@@ -103,7 +99,6 @@ export abstract class ModelResourceGenerator {
103
99
 
104
100
  protected generateResolvers(context: TransformerContextProvider): void {
105
101
  this.models.forEach((def) => {
106
-
107
102
  const queryFields = this.getQueryFieldNames(def);
108
103
  queryFields.forEach((query) => {
109
104
  let resolver;
@@ -228,7 +223,9 @@ export abstract class ModelResourceGenerator {
228
223
  const dataSource = this.datasourceMap[type.name.value];
229
224
  const resolverKey = `Get${generateResolverKey(typeName, fieldName)}`;
230
225
  const vtlGenerator = this.getVTLGenerator();
231
- const modelIndexFields = type.fields!.filter((field) => field.directives?.some((it) => it.name.value === 'index')).map((it) => it.name.value);
226
+ const modelIndexFields = type
227
+ .fields!.filter((field) => field.directives?.some((it) => it.name.value === 'index'))
228
+ .map((it) => it.name.value);
232
229
  const requestConfig = {
233
230
  operation: 'GET',
234
231
  operationName: fieldName,
@@ -246,8 +243,14 @@ export abstract class ModelResourceGenerator {
246
243
  fieldName,
247
244
  resolverLogicalId,
248
245
  dataSource,
249
- MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateGetRequestTemplate(requestConfig), `${typeName}.${fieldName}.req.vtl`),
250
- MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateGetResponseTemplate(responseConfig), `${typeName}.${fieldName}.res.vtl`),
246
+ MappingTemplate.s3MappingTemplateFromString(
247
+ vtlGenerator.generateGetRequestTemplate(requestConfig),
248
+ `${typeName}.${fieldName}.req.vtl`,
249
+ ),
250
+ MappingTemplate.s3MappingTemplateFromString(
251
+ vtlGenerator.generateGetResponseTemplate(responseConfig),
252
+ `${typeName}.${fieldName}.res.vtl`,
253
+ ),
251
254
  );
252
255
  }
253
256
  return this.resolverMap[resolverKey];
@@ -280,7 +283,10 @@ export abstract class ModelResourceGenerator {
280
283
  fieldName,
281
284
  resolverLogicalId,
282
285
  dataSource,
283
- MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateListRequestTemplate(requestConfig), `${typeName}.${fieldName}.req.vtl`),
286
+ MappingTemplate.s3MappingTemplateFromString(
287
+ vtlGenerator.generateListRequestTemplate(requestConfig),
288
+ `${typeName}.${fieldName}.req.vtl`,
289
+ ),
284
290
  MappingTemplate.s3MappingTemplateFromString(
285
291
  vtlGenerator.generateDefaultResponseMappingTemplate(responseConfig),
286
292
  `${typeName}.${fieldName}.res.vtl`,
@@ -301,7 +307,9 @@ export abstract class ModelResourceGenerator {
301
307
  const dataSource = this.datasourceMap[type.name.value];
302
308
  const resolverKey = `Create${generateResolverKey(typeName, fieldName)}`;
303
309
  const vtlGenerator = this.getVTLGenerator();
304
- const modelIndexFields = type.fields!.filter((field) => field.directives?.some((it) => it.name.value === 'index')).map((it) => it.name.value);
310
+ const modelIndexFields = type
311
+ .fields!.filter((field) => field.directives?.some((it) => it.name.value === 'index'))
312
+ .map((it) => it.name.value);
305
313
  const requestConfig = {
306
314
  operation: 'CREATE',
307
315
  operationName: fieldName,
@@ -321,7 +329,10 @@ export abstract class ModelResourceGenerator {
321
329
  fieldName,
322
330
  resolverLogicalId,
323
331
  dataSource,
324
- MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateCreateRequestTemplate(requestConfig), `${typeName}.${fieldName}.req.vtl`),
332
+ MappingTemplate.s3MappingTemplateFromString(
333
+ vtlGenerator.generateCreateRequestTemplate(requestConfig),
334
+ `${typeName}.${fieldName}.req.vtl`,
335
+ ),
325
336
  MappingTemplate.s3MappingTemplateFromString(
326
337
  vtlGenerator.generateDefaultResponseMappingTemplate(responseConfig),
327
338
  `${typeName}.${fieldName}.res.vtl`,
@@ -356,7 +367,9 @@ export abstract class ModelResourceGenerator {
356
367
  const dataSource = this.datasourceMap[type.name.value];
357
368
  const resolverKey = `Update${generateResolverKey(typeName, fieldName)}`;
358
369
  const vtlGenerator = this.getVTLGenerator();
359
- const modelIndexFields = type.fields!.filter((field) => field.directives?.some((it) => it.name.value === 'index')).map((it) => it.name.value);
370
+ const modelIndexFields = type
371
+ .fields!.filter((field) => field.directives?.some((it) => it.name.value === 'index'))
372
+ .map((it) => it.name.value);
360
373
  const requestConfig = {
361
374
  operation: 'UPDATE',
362
375
  operationName: fieldName,
@@ -415,7 +428,9 @@ export abstract class ModelResourceGenerator {
415
428
  const dataSource = this.datasourceMap[type.name.value];
416
429
  const resolverKey = `delete${generateResolverKey(typeName, fieldName)}`;
417
430
  const vtlGenerator = this.getVTLGenerator();
418
- const modelIndexFields = type.fields!.filter((field) => field.directives?.some((it) => it.name.value === 'index')).map((it) => it.name.value);
431
+ const modelIndexFields = type
432
+ .fields!.filter((field) => field.directives?.some((it) => it.name.value === 'index'))
433
+ .map((it) => it.name.value);
419
434
  const requestConfig = {
420
435
  operation: 'DELETE',
421
436
  operationName: fieldName,
@@ -436,7 +451,10 @@ export abstract class ModelResourceGenerator {
436
451
  fieldName,
437
452
  resolverLogicalId,
438
453
  dataSource,
439
- MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateDeleteRequestTemplate(requestConfig), `${typeName}.${fieldName}.req.vtl`),
454
+ MappingTemplate.s3MappingTemplateFromString(
455
+ vtlGenerator.generateDeleteRequestTemplate(requestConfig),
456
+ `${typeName}.${fieldName}.req.vtl`,
457
+ ),
440
458
  MappingTemplate.s3MappingTemplateFromString(
441
459
  vtlGenerator.generateDefaultResponseMappingTemplate(responseConfig),
442
460
  `${typeName}.${fieldName}.res.vtl`,
@@ -460,7 +478,10 @@ export abstract class ModelResourceGenerator {
460
478
  fieldName,
461
479
  resolverLogicalId,
462
480
  MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateSubscriptionRequestTemplate(), `${typeName}.${fieldName}.req.vtl`),
463
- MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateSubscriptionResponseTemplate(), `${typeName}.${fieldName}.res.vtl`),
481
+ MappingTemplate.s3MappingTemplateFromString(
482
+ vtlGenerator.generateSubscriptionResponseTemplate(),
483
+ `${typeName}.${fieldName}.res.vtl`,
484
+ ),
464
485
  );
465
486
  }
466
487
  return this.resolverMap[resolverKey];
@@ -480,7 +501,10 @@ export abstract class ModelResourceGenerator {
480
501
  fieldName,
481
502
  resolverLogicalId,
482
503
  MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateSubscriptionRequestTemplate(), `${typeName}.${fieldName}.req.vtl`),
483
- MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateSubscriptionResponseTemplate(), `${typeName}.${fieldName}.res.vtl`),
504
+ MappingTemplate.s3MappingTemplateFromString(
505
+ vtlGenerator.generateSubscriptionResponseTemplate(),
506
+ `${typeName}.${fieldName}.res.vtl`,
507
+ ),
484
508
  );
485
509
  }
486
510
  return this.resolverMap[resolverKey];
@@ -500,7 +524,10 @@ export abstract class ModelResourceGenerator {
500
524
  fieldName,
501
525
  resolverLogicalId,
502
526
  MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateSubscriptionRequestTemplate(), `${typeName}.${fieldName}.req.vtl`),
503
- MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateSubscriptionResponseTemplate(), `${typeName}.${fieldName}.res.vtl`),
527
+ MappingTemplate.s3MappingTemplateFromString(
528
+ vtlGenerator.generateSubscriptionResponseTemplate(),
529
+ `${typeName}.${fieldName}.res.vtl`,
530
+ ),
504
531
  );
505
532
  }
506
533
  return this.resolverMap[resolverKey];
@@ -534,7 +561,10 @@ export abstract class ModelResourceGenerator {
534
561
  fieldName,
535
562
  resolverLogicalId,
536
563
  dataSource,
537
- MappingTemplate.s3MappingTemplateFromString(vtlGenerator.generateSyncRequestTemplate(requestConfig), `${typeName}.${fieldName}.req.vtl`),
564
+ MappingTemplate.s3MappingTemplateFromString(
565
+ vtlGenerator.generateSyncRequestTemplate(requestConfig),
566
+ `${typeName}.${fieldName}.req.vtl`,
567
+ ),
538
568
  MappingTemplate.s3MappingTemplateFromString(
539
569
  vtlGenerator.generateDefaultResponseMappingTemplate(responseConfig),
540
570
  `${typeName}.${fieldName}.res.vtl`,
@@ -17,11 +17,7 @@ export class RdsModelResourceGenerator extends ModelResourceGenerator {
17
17
  generateResources(context: TransformerContextProvider): void {
18
18
  if (this.isEnabled()) {
19
19
  const secretEntry = context.datasourceSecretParameterLocations.get(MYSQL_DB_TYPE);
20
- const {
21
- RDSLambdaIAMRoleLogicalID,
22
- RDSLambdaLogicalID,
23
- RDSLambdaDataSourceLogicalID,
24
- } = ResourceConstants.RESOURCES;
20
+ const { RDSLambdaIAMRoleLogicalID, RDSLambdaLogicalID, RDSLambdaDataSourceLogicalID } = ResourceConstants.RESOURCES;
25
21
  const lambdaRoleStack = context.stackManager.getStackFor(RDSLambdaIAMRoleLogicalID, RDS_STACK_NAME);
26
22
  const lambdaStack = context.stackManager.getStackFor(RDSLambdaLogicalID, RDS_STACK_NAME);
27
23
  const role = createRdsLambdaRole(
@@ -29,26 +25,16 @@ export class RdsModelResourceGenerator extends ModelResourceGenerator {
29
25
  lambdaRoleStack,
30
26
  secretEntry as RDSConnectionSecrets,
31
27
  );
32
- const lambda = createRdsLambda(
33
- lambdaStack,
34
- context.api,
35
- role,
36
- {
37
- username: secretEntry?.username ?? '',
38
- password: secretEntry?.password ?? '',
39
- host: secretEntry?.host ?? '',
40
- port: secretEntry?.port ?? '',
41
- database: secretEntry?.database ?? '',
42
- },
43
- );
28
+ const lambda = createRdsLambda(lambdaStack, context.api, role, {
29
+ username: secretEntry?.username ?? '',
30
+ password: secretEntry?.password ?? '',
31
+ host: secretEntry?.host ?? '',
32
+ port: secretEntry?.port ?? '',
33
+ database: secretEntry?.database ?? '',
34
+ });
44
35
 
45
36
  const lambdaDataSourceStack = context.stackManager.getStackFor(RDSLambdaDataSourceLogicalID, RDS_STACK_NAME);
46
- const rdsDatasource = context.api.host.addLambdaDataSource(
47
- `${RDSLambdaDataSourceLogicalID}`,
48
- lambda,
49
- {},
50
- lambdaDataSourceStack,
51
- );
37
+ const rdsDatasource = context.api.host.addLambdaDataSource(`${RDSLambdaDataSourceLogicalID}`, lambda, {}, lambdaDataSourceStack);
52
38
  this.models.forEach((model) => {
53
39
  context.dataSources.add(model, rdsDatasource);
54
40
  this.datasourceMap[model.name.value] = rdsDatasource;
package/tsconfig.json CHANGED
@@ -6,9 +6,9 @@
6
6
  },
7
7
  "include": ["src/**/*"],
8
8
  "references": [
9
- {"path": "../amplify-graphql-transformer-interfaces"},
10
- {"path": "../graphql-mapping-template"},
11
- {"path": "../amplify-graphql-transformer-core"},
12
- {"path": "../graphql-transformer-common"},
9
+ { "path": "../amplify-graphql-transformer-interfaces" },
10
+ { "path": "../graphql-mapping-template" },
11
+ { "path": "../amplify-graphql-transformer-core" },
12
+ { "path": "../graphql-transformer-common" }
13
13
  ]
14
14
  }