@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.
- package/CHANGELOG.md +24 -8
- package/lib/definitions.d.ts.map +1 -1
- package/lib/definitions.js +28 -2
- package/lib/definitions.js.map +1 -1
- package/lib/graphql-model-transformer.d.ts.map +1 -1
- package/lib/graphql-model-transformer.js +38 -36
- package/lib/graphql-model-transformer.js.map +1 -1
- package/lib/graphql-types/common.d.ts.map +1 -1
- package/lib/graphql-types/common.js +16 -18
- package/lib/graphql-types/common.js.map +1 -1
- package/lib/graphql-types/mutation.d.ts.map +1 -1
- package/lib/graphql-types/mutation.js +12 -12
- package/lib/graphql-types/mutation.js.map +1 -1
- package/lib/graphql-types/query.d.ts.map +1 -1
- package/lib/graphql-types/query.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/common.d.ts.map +1 -1
- package/lib/resolvers/common.js.map +1 -1
- package/lib/resolvers/dynamodb/mutation.d.ts.map +1 -1
- package/lib/resolvers/dynamodb/mutation.js +10 -8
- package/lib/resolvers/dynamodb/mutation.js.map +1 -1
- package/lib/resolvers/dynamodb/query.d.ts.map +1 -1
- package/lib/resolvers/dynamodb/query.js +1 -4
- package/lib/resolvers/dynamodb/query.js.map +1 -1
- package/lib/resolvers/dynamodb/subscriptions.d.ts.map +1 -1
- package/lib/resolvers/dynamodb/subscriptions.js.map +1 -1
- package/lib/resolvers/generators/dynamodb-vtl-generator.d.ts.map +1 -1
- package/lib/resolvers/generators/dynamodb-vtl-generator.js.map +1 -1
- package/lib/resolvers/generators/rds-vtl-generator.d.ts.map +1 -1
- package/lib/resolvers/generators/rds-vtl-generator.js.map +1 -1
- package/lib/resolvers/generators/vtl-generator.d.ts.map +1 -1
- package/lib/resolvers/index.d.ts.map +1 -1
- package/lib/resolvers/index.js.map +1 -1
- package/lib/resolvers/rds/mutation.d.ts.map +1 -1
- package/lib/resolvers/rds/mutation.js.map +1 -1
- package/lib/resolvers/rds/query.d.ts.map +1 -1
- package/lib/resolvers/rds/query.js.map +1 -1
- package/lib/resolvers/rds/resolver.d.ts +2 -2
- package/lib/resolvers/rds/resolver.d.ts.map +1 -1
- package/lib/resolvers/rds/resolver.js +82 -82
- package/lib/resolvers/rds/resolver.js.map +1 -1
- package/lib/resources/dynamo-model-resource-generator.d.ts +1 -1
- package/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
- package/lib/resources/dynamo-model-resource-generator.js +2 -2
- package/lib/resources/dynamo-model-resource-generator.js.map +1 -1
- package/lib/resources/model-resource-generator.d.ts.map +1 -1
- package/lib/resources/model-resource-generator.js +15 -7
- package/lib/resources/model-resource-generator.js.map +1 -1
- package/lib/resources/rds-model-resource-generator.d.ts.map +1 -1
- package/lib/resources/rds-model-resource-generator.js +1 -1
- package/lib/resources/rds-model-resource-generator.js.map +1 -1
- package/package.json +17 -8
- package/publish-notification-lambda/node_modules/.package-lock.json +10 -10
- package/publish-notification-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
- package/publish-notification-lambda/node_modules/@smithy/types/package.json +2 -2
- 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/package-lock.json +10 -10
- package/publish-notification-lambda/src/index.ts +2 -2
- package/publish-notification-lambda/tsconfig.json +9 -9
- package/rds-lambda/handler.ts +17 -4
- package/rds-lambda/node_modules/.package-lock.json +373 -374
- package/rds-lambda/node_modules/@babel/compat-data/README.md +1 -1
- package/rds-lambda/node_modules/@babel/compat-data/data/corejs2-built-ins.json +146 -0
- package/rds-lambda/node_modules/@babel/compat-data/data/native-modules.json +1 -1
- package/rds-lambda/node_modules/@babel/compat-data/data/plugin-bugfixes.json +17 -0
- package/rds-lambda/node_modules/@babel/compat-data/data/plugins.json +76 -9
- package/rds-lambda/node_modules/@babel/compat-data/package.json +4 -4
- package/rds-lambda/node_modules/@babel/core/README.md +1 -1
- package/rds-lambda/node_modules/@babel/core/package.json +10 -10
- package/rds-lambda/node_modules/@babel/generator/README.md +1 -1
- package/rds-lambda/node_modules/@babel/generator/package.json +4 -3
- package/rds-lambda/node_modules/@babel/helper-compilation-targets/README.md +1 -1
- package/rds-lambda/node_modules/@babel/helper-compilation-targets/package.json +5 -5
- package/rds-lambda/node_modules/@babel/helper-module-transforms/README.md +1 -1
- package/rds-lambda/node_modules/@babel/helper-module-transforms/package.json +10 -6
- package/rds-lambda/node_modules/@babel/helper-split-export-declaration/README.md +1 -1
- package/rds-lambda/node_modules/@babel/helper-split-export-declaration/package.json +1 -1
- package/rds-lambda/node_modules/@babel/helpers/README.md +1 -1
- package/rds-lambda/node_modules/@babel/helpers/package.json +3 -3
- package/rds-lambda/node_modules/@babel/parser/README.md +1 -1
- package/rds-lambda/node_modules/@babel/parser/package.json +2 -2
- package/rds-lambda/node_modules/@babel/traverse/README.md +1 -1
- package/rds-lambda/node_modules/@babel/traverse/package.json +4 -4
- package/rds-lambda/node_modules/@jest/console/package.json +6 -6
- package/rds-lambda/node_modules/@jest/core/package.json +21 -21
- package/rds-lambda/node_modules/@jest/environment/package.json +5 -5
- package/rds-lambda/node_modules/@jest/expect/package.json +6 -6
- package/rds-lambda/node_modules/@jest/expect-utils/package.json +5 -5
- package/rds-lambda/node_modules/@jest/fake-timers/package.json +7 -7
- package/rds-lambda/node_modules/@jest/globals/package.json +6 -6
- 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 +6 -6
- package/rds-lambda/node_modules/@jest/test-sequencer/package.json +5 -5
- package/rds-lambda/node_modules/@jest/transform/package.json +7 -7
- package/rds-lambda/node_modules/@jest/types/package.json +5 -5
- package/rds-lambda/node_modules/@sinclair/typebox/package.json +3 -8
- package/rds-lambda/node_modules/@sinclair/typebox/readme.md +487 -300
- package/rds-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
- package/rds-lambda/node_modules/@smithy/types/package.json +2 -2
- 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/babel-jest/package.json +4 -4
- package/rds-lambda/node_modules/caniuse-lite/package.json +1 -1
- package/rds-lambda/node_modules/collect-v8-coverage/CHANGELOG.md +7 -0
- package/rds-lambda/node_modules/collect-v8-coverage/package.json +18 -20
- package/rds-lambda/node_modules/commander/Readme.md +7 -2
- package/rds-lambda/node_modules/commander/package.json +17 -17
- 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 +10 -9
- package/rds-lambda/node_modules/jest/package.json +7 -7
- package/rds-lambda/node_modules/jest-circus/package.json +15 -14
- package/rds-lambda/node_modules/jest-cli/package.json +10 -9
- package/rds-lambda/node_modules/jest-config/package.json +14 -14
- package/rds-lambda/node_modules/jest-diff/package.json +4 -4
- package/rds-lambda/node_modules/jest-each/package.json +5 -5
- package/rds-lambda/node_modules/jest-environment-node/package.json +8 -8
- package/rds-lambda/node_modules/jest-haste-map/package.json +5 -5
- package/rds-lambda/node_modules/jest-leak-detector/package.json +3 -3
- package/rds-lambda/node_modules/jest-matcher-utils/package.json +5 -5
- package/rds-lambda/node_modules/jest-message-util/package.json +4 -4
- package/rds-lambda/node_modules/jest-mock/package.json +6 -6
- package/rds-lambda/node_modules/jest-resolve/package.json +7 -7
- package/rds-lambda/node_modules/jest-resolve-dependencies/package.json +8 -8
- package/rds-lambda/node_modules/jest-runner/package.json +20 -20
- package/rds-lambda/node_modules/jest-runtime/package.json +17 -17
- package/rds-lambda/node_modules/jest-snapshot/node_modules/semver/package.json +3 -3
- package/rds-lambda/node_modules/jest-snapshot/package.json +15 -17
- package/rds-lambda/node_modules/jest-util/package.json +3 -3
- package/rds-lambda/node_modules/jest-validate/package.json +4 -4
- package/rds-lambda/node_modules/jest-watcher/package.json +5 -5
- package/rds-lambda/node_modules/jest-worker/package.json +6 -6
- package/rds-lambda/node_modules/knex/CHANGELOG.md +63 -21
- package/rds-lambda/node_modules/knex/CONTRIBUTING.md +1 -1
- package/rds-lambda/node_modules/knex/LICENSE +22 -22
- package/rds-lambda/node_modules/knex/README.md +32 -31
- package/rds-lambda/node_modules/knex/UPGRADING.md +94 -82
- package/rds-lambda/node_modules/knex/knex.mjs +11 -0
- package/rds-lambda/node_modules/knex/lib/dialects/oracle/DEAD_CODE.md +3 -3
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/cjs.stub +15 -15
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/coffee.stub +13 -13
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/eg.stub +14 -14
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/js-schema.stub +22 -22
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/js.stub +22 -22
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-coffee.stub +34 -34
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-eg.stub +43 -43
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-js.stub +47 -47
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-ls.stub +35 -35
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/knexfile-ts.stub +47 -47
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ls.stub +14 -14
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/mjs.stub +23 -23
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ts-schema.stub +21 -21
- package/rds-lambda/node_modules/knex/lib/migrations/migrate/stub/ts.stub +21 -21
- package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/coffee.stub +9 -9
- package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/eg.stub +11 -11
- package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/js.stub +13 -13
- package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/ls.stub +11 -11
- package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/mjs.stub +12 -12
- package/rds-lambda/node_modules/knex/lib/migrations/seed/stub/ts.stub +13 -13
- package/rds-lambda/node_modules/knex/package.json +21 -18
- package/rds-lambda/node_modules/knex/scripts/docker-compose.yml +2 -2
- package/rds-lambda/node_modules/knex/scripts/next-release-howto.md +1 -1
- package/rds-lambda/node_modules/knex/scripts/oracledb-install-driver-libs.sh +82 -82
- package/rds-lambda/node_modules/knex/scripts/release.sh +36 -34
- package/rds-lambda/node_modules/knex/scripts/stress-test/README.txt +18 -18
- package/rds-lambda/node_modules/knex/scripts/stress-test/docker-compose.yml +16 -16
- package/rds-lambda/node_modules/node-releases/data/processed/envs.json +1 -1
- package/rds-lambda/node_modules/node-releases/package.json +1 -1
- package/rds-lambda/node_modules/pg-connection-string/package.json +2 -2
- package/rds-lambda/node_modules/pretty-format/package.json +5 -5
- package/rds-lambda/node_modules/semver/package.json +19 -9
- package/rds-lambda/node_modules/ts-jest/.ts-jest-digest +1 -1
- package/rds-lambda/node_modules/ts-jest/CHANGELOG.md +9 -0
- package/rds-lambda/node_modules/ts-jest/node_modules/semver/package.json +3 -3
- package/rds-lambda/node_modules/ts-jest/package.json +12 -12
- package/rds-lambda/package-lock.json +373 -374
- package/rds-patching-lambda/node_modules/.package-lock.json +10 -10
- package/rds-patching-lambda/node_modules/@smithy/protocol-http/package.json +3 -3
- package/rds-patching-lambda/node_modules/@smithy/types/package.json +2 -2
- 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/package-lock.json +10 -10
- package/rds-patching-lambda/src/index.ts +2 -4
- package/rds-patching-lambda/tsconfig.json +9 -9
- package/src/__tests__/model-transformer.test.ts +175 -145
- package/src/__tests__/test-utils/helpers.ts +1 -1
- package/src/definitions.ts +30 -2
- package/src/graphql-model-transformer.ts +81 -75
- package/src/graphql-types/common.ts +41 -41
- package/src/graphql-types/mutation.ts +13 -13
- package/src/graphql-types/query.ts +1 -0
- package/src/index.ts +1 -0
- package/src/resolvers/common.ts +1 -12
- package/src/resolvers/dynamodb/mutation.ts +16 -13
- package/src/resolvers/dynamodb/query.ts +7 -12
- package/src/resolvers/dynamodb/subscriptions.ts +1 -3
- package/src/resolvers/generators/dynamodb-vtl-generator.ts +18 -8
- package/src/resolvers/generators/rds-vtl-generator.ts +11 -4
- package/src/resolvers/generators/vtl-generator.ts +5 -5
- package/src/resolvers/index.ts +1 -3
- package/src/resolvers/rds/mutation.ts +76 -70
- package/src/resolvers/rds/query.ts +4 -12
- package/src/resolvers/rds/resolver.ts +124 -130
- package/src/resources/dynamo-model-resource-generator.ts +14 -28
- package/src/resources/model-resource-generator.ts +65 -27
- package/src/resources/rds-model-resource-generator.ts +5 -15
- package/tsconfig.json +4 -4
- package/tsconfig.tsbuildinfo +1 -1
- package/rds-lambda/node_modules/semver/CHANGELOG.md +0 -70
package/src/resolvers/common.ts
CHANGED
|
@@ -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
|
-
|
|
168
|
-
|
|
166
|
+
...(modelIndexFields.length
|
|
167
|
+
? [
|
|
168
|
+
set(ref('nullIndexFields'), list([])),
|
|
169
|
+
set(ref('indexFields'), list(modelIndexFields.map((it) => str(it)))),
|
|
169
170
|
|
|
170
|
-
|
|
171
|
-
|
|
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
|
-
|
|
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 =>
|
|
332
|
-
|
|
333
|
-
|
|
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(
|
|
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;
|
package/src/resolvers/index.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
comment,
|
|
3
3
|
compoundExpression,
|
|
4
|
-
Expression,
|
|
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 =>
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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(
|
|
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({
|