@aws-amplify/graphql-model-transformer 1.3.7 → 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.
- package/CHANGELOG.md +4 -0
- 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 +37 -35
- 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.js +12 -12
- package/lib/graphql-types/mutation.js.map +1 -1
- package/lib/rds-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/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.map +1 -1
- package/lib/resolvers/rds/resolver.js +1 -1
- package/lib/resolvers/rds/resolver.js.map +1 -1
- package/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
- 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 +12 -4
- 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 +6 -6
- package/rds-lambda/node_modules/.package-lock.json +209 -221
- package/rds-lambda/node_modules/@aws-sdk/client-ssm/package.json +17 -18
- package/rds-lambda/node_modules/@aws-sdk/client-sso/package.json +14 -15
- package/rds-lambda/node_modules/@aws-sdk/client-sso-oidc/package.json +14 -15
- package/rds-lambda/node_modules/@aws-sdk/client-sts/package.json +17 -18
- package/rds-lambda/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
- package/rds-lambda/node_modules/@aws-sdk/credential-provider-ini/package.json +6 -6
- package/rds-lambda/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
- package/rds-lambda/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
- package/rds-lambda/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
- package/rds-lambda/node_modules/@aws-sdk/credential-provider-web-identity/package.json +2 -2
- package/rds-lambda/node_modules/@aws-sdk/middleware-host-header/package.json +2 -2
- package/rds-lambda/node_modules/@aws-sdk/middleware-logger/package.json +2 -2
- package/rds-lambda/node_modules/@aws-sdk/middleware-recursion-detection/package.json +2 -2
- package/rds-lambda/node_modules/@aws-sdk/middleware-sdk-sts/package.json +3 -3
- package/rds-lambda/node_modules/@aws-sdk/middleware-signing/package.json +2 -2
- package/rds-lambda/node_modules/@aws-sdk/middleware-user-agent/package.json +3 -3
- package/rds-lambda/node_modules/@aws-sdk/token-providers/package.json +3 -3
- package/rds-lambda/node_modules/@aws-sdk/types/package.json +2 -1
- package/rds-lambda/node_modules/@aws-sdk/util-endpoints/package.json +2 -2
- package/rds-lambda/node_modules/@aws-sdk/util-user-agent-browser/package.json +2 -2
- package/rds-lambda/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
- package/rds-lambda/node_modules/@babel/compat-data/data/plugin-bugfixes.json +2 -0
- package/rds-lambda/node_modules/@babel/compat-data/data/plugins.json +8 -0
- package/rds-lambda/node_modules/@babel/compat-data/package.json +1 -1
- package/rds-lambda/node_modules/@babel/core/package.json +7 -7
- package/rds-lambda/node_modules/@babel/generator/package.json +2 -2
- 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/@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/caniuse-lite/package.json +1 -1
- 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/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/pg-connection-string/package.json +2 -2
- package/rds-lambda/node_modules/semver/package.json +19 -9
- package/rds-lambda/package-lock.json +209 -221
- package/src/__tests__/model-transformer.test.ts +130 -139
- package/src/__tests__/test-utils/helpers.ts +1 -1
- package/src/__tests__/test-utils/rds_utils.test.ts +29 -68
- package/src/definitions.ts +28 -2
- package/src/graphql-model-transformer.ts +72 -74
- package/src/graphql-types/common.ts +41 -41
- package/src/graphql-types/mutation.ts +12 -12
- package/src/resolvers/common.ts +1 -12
- package/src/resolvers/dynamodb/mutation.ts +16 -13
- package/src/resolvers/dynamodb/query.ts +6 -12
- package/src/resolvers/dynamodb/subscriptions.ts +1 -3
- package/src/resolvers/generators/rds-vtl-generator.ts +1 -4
- package/src/resolvers/generators/vtl-generator.ts +5 -5
- package/src/resolvers/index.ts +1 -3
- package/src/resolvers/rds/mutation.ts +17 -6
- package/src/resolvers/rds/query.ts +4 -12
- package/src/resolvers/rds/resolver.ts +8 -13
- package/src/resources/dynamo-model-resource-generator.ts +12 -22
- package/src/resources/model-resource-generator.ts +54 -24
- package/src/resources/rds-model-resource-generator.ts +9 -23
- package/tsconfig.json +4 -4
- package/tsconfig.tsbuildinfo +1 -1
- package/rds-lambda/node_modules/@nicolo-ribaudo/semver-v6/CHANGELOG.md +0 -70
- package/rds-lambda/node_modules/@nicolo-ribaudo/semver-v6/LICENSE +0 -15
- package/rds-lambda/node_modules/@nicolo-ribaudo/semver-v6/README.md +0 -454
- package/rds-lambda/node_modules/@nicolo-ribaudo/semver-v6/package.json +0 -28
- package/rds-lambda/node_modules/@nicolo-ribaudo/semver-v6/range.bnf +0 -16
- package/rds-lambda/node_modules/pg/node_modules/pg-connection-string/LICENSE +0 -21
- package/rds-lambda/node_modules/pg/node_modules/pg-connection-string/README.md +0 -77
- package/rds-lambda/node_modules/pg/node_modules/pg-connection-string/package.json +0 -40
- 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[] = [
|
|
@@ -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(
|
|
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;
|
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,
|
|
@@ -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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
|
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(
|
|
250
|
-
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
}
|