@aws-amplify/api-graphql 4.0.1-api-v6-models.8035dfc.0 → 4.0.1-api-v6-models.3eb7748.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/lib/Providers/AWSAppSyncRealTimeProvider/index.js +3 -4
- package/lib/internals/APIClient.d.ts +12 -0
- package/lib/internals/APIClient.js +24 -1
- package/lib/internals/InternalGraphQLAPI.js +3 -2
- package/lib/internals/generateModelsProperty.js +15 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/utils/resolveOwnerFields.d.ts +12 -0
- package/lib/utils/resolveOwnerFields.js +63 -0
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js +5 -6
- package/lib-esm/internals/APIClient.d.ts +12 -0
- package/lib-esm/internals/APIClient.js +24 -1
- package/lib-esm/internals/InternalGraphQLAPI.js +4 -3
- package/lib-esm/internals/generateModelsProperty.js +15 -0
- package/lib-esm/tsconfig.tsbuildinfo +1 -1
- package/lib-esm/utils/resolveOwnerFields.d.ts +12 -0
- package/lib-esm/utils/resolveOwnerFields.js +59 -0
- package/package.json +6 -7
- package/src/Providers/AWSAppSyncRealTimeProvider/index.ts +6 -6
- package/src/internals/APIClient.ts +27 -2
- package/src/internals/InternalGraphQLAPI.ts +4 -4
- package/src/internals/generateModelsProperty.ts +28 -1
- package/src/utils/resolveOwnerFields.ts +65 -0
|
@@ -7,7 +7,6 @@ var tslib_1 = require("tslib");
|
|
|
7
7
|
var rxjs_1 = require("rxjs");
|
|
8
8
|
var graphql_1 = require("graphql");
|
|
9
9
|
var url = tslib_1.__importStar(require("url"));
|
|
10
|
-
var uuid_1 = require("uuid");
|
|
11
10
|
var buffer_1 = require("buffer");
|
|
12
11
|
var core_1 = require("@aws-amplify/core");
|
|
13
12
|
var aws_client_utils_1 = require("@aws-amplify/core/internals/aws-client-utils");
|
|
@@ -16,7 +15,7 @@ var PubSub_1 = require("../../types/PubSub");
|
|
|
16
15
|
var constants_1 = require("../constants");
|
|
17
16
|
var ConnectionStateMonitor_1 = require("../../utils/ConnectionStateMonitor");
|
|
18
17
|
var ReconnectionMonitor_1 = require("../../utils/ReconnectionMonitor");
|
|
19
|
-
var logger = new
|
|
18
|
+
var logger = new core_1.ConsoleLogger('AWSAppSyncRealTimeProvider');
|
|
20
19
|
var dispatchApiEvent = function (payload) {
|
|
21
20
|
core_1.Hub.dispatch('api', payload, 'PubSub', constants_1.AMPLIFY_SYMBOL);
|
|
22
21
|
};
|
|
@@ -98,7 +97,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function () {
|
|
|
98
97
|
}
|
|
99
98
|
else {
|
|
100
99
|
var subscriptionStartActive_1 = false;
|
|
101
|
-
var subscriptionId_1 = (0,
|
|
100
|
+
var subscriptionId_1 = (0, utils_1.amplifyUuid)();
|
|
102
101
|
var startSubscription_1 = function () {
|
|
103
102
|
if (!subscriptionStartActive_1) {
|
|
104
103
|
subscriptionStartActive_1 = true;
|
|
@@ -779,7 +778,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function () {
|
|
|
779
778
|
signed_params = (0, aws_client_utils_1.signRequest)({
|
|
780
779
|
headers: request.headers,
|
|
781
780
|
method: request.method,
|
|
782
|
-
url: new
|
|
781
|
+
url: new utils_1.AmplifyUrl(request.url),
|
|
783
782
|
body: request.data,
|
|
784
783
|
}, {
|
|
785
784
|
// TODO: What do we need to do to remove these !'s?
|
|
@@ -30,6 +30,18 @@ export declare const graphQLOperationsInfo: {
|
|
|
30
30
|
operationPrefix: "list";
|
|
31
31
|
usePlural: boolean;
|
|
32
32
|
};
|
|
33
|
+
ONCREATE: {
|
|
34
|
+
operationPrefix: "onCreate";
|
|
35
|
+
usePlural: boolean;
|
|
36
|
+
};
|
|
37
|
+
ONUPDATE: {
|
|
38
|
+
operationPrefix: "onUpdate";
|
|
39
|
+
usePlural: boolean;
|
|
40
|
+
};
|
|
41
|
+
ONDELETE: {
|
|
42
|
+
operationPrefix: "onDelete";
|
|
43
|
+
usePlural: boolean;
|
|
44
|
+
};
|
|
33
45
|
};
|
|
34
46
|
export type ModelOperation = keyof typeof graphQLOperationsInfo;
|
|
35
47
|
/**
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.normalizeMutationInput = exports.buildGraphQLVariables = exports.generateGraphQLDocument = exports.generateSelectionSet = exports.selectionSetIRToString = exports.customSelectionSetToIR = exports.graphQLOperationsInfo = exports.initializeModel = exports.flattenItems = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
var resolveOwnerFields_1 = require("../utils/resolveOwnerFields");
|
|
5
8
|
var connectionType = {
|
|
6
9
|
HAS_ONE: 'HAS_ONE',
|
|
7
10
|
HAS_MANY: 'HAS_MANY',
|
|
@@ -139,17 +142,26 @@ exports.graphQLOperationsInfo = {
|
|
|
139
142
|
UPDATE: { operationPrefix: 'update', usePlural: false },
|
|
140
143
|
DELETE: { operationPrefix: 'delete', usePlural: false },
|
|
141
144
|
LIST: { operationPrefix: 'list', usePlural: true },
|
|
145
|
+
ONCREATE: { operationPrefix: 'onCreate', usePlural: false },
|
|
146
|
+
ONUPDATE: { operationPrefix: 'onUpdate', usePlural: false },
|
|
147
|
+
ONDELETE: { operationPrefix: 'onDelete', usePlural: false },
|
|
142
148
|
};
|
|
143
149
|
var graphQLDocumentsCache = new Map();
|
|
144
150
|
var SELECTION_SET_ALL_NESTED = '*';
|
|
145
151
|
function defaultSelectionSetForModel(modelDefinition) {
|
|
152
|
+
// fields that are explicitly part of the graphql schema; not
|
|
153
|
+
// inferred from owner auth rules.
|
|
146
154
|
var fields = modelDefinition.fields;
|
|
147
|
-
|
|
155
|
+
var explicitFields = Object.values(fields)
|
|
148
156
|
.map(function (_a) {
|
|
149
157
|
var type = _a.type, name = _a.name;
|
|
150
158
|
return typeof type === 'string' && name;
|
|
151
159
|
}) // Default selection set omits model fields
|
|
152
160
|
.filter(Boolean);
|
|
161
|
+
// fields used for owner auth rules that may or may not also
|
|
162
|
+
// be explicit on the model.
|
|
163
|
+
var ownerFields = (0, resolveOwnerFields_1.resolveOwnerFields)(modelDefinition);
|
|
164
|
+
return Array.from(new Set(explicitFields.concat(ownerFields)));
|
|
153
165
|
}
|
|
154
166
|
var FIELD_IR = '';
|
|
155
167
|
/**
|
|
@@ -325,6 +337,14 @@ function generateGraphQLDocument(modelIntrospection, modelName, modelOperation,
|
|
|
325
337
|
});
|
|
326
338
|
graphQLOperationType !== null && graphQLOperationType !== void 0 ? graphQLOperationType : (graphQLOperationType = 'query');
|
|
327
339
|
graphQLSelectionSet !== null && graphQLSelectionSet !== void 0 ? graphQLSelectionSet : (graphQLSelectionSet = "items { ".concat(selectionSetFields, " }"));
|
|
340
|
+
case 'ONCREATE':
|
|
341
|
+
case 'ONUPDATE':
|
|
342
|
+
case 'ONDELETE':
|
|
343
|
+
graphQLArguments !== null && graphQLArguments !== void 0 ? graphQLArguments : (graphQLArguments = {
|
|
344
|
+
filter: "ModelSubscription".concat(name, "FilterInput"),
|
|
345
|
+
});
|
|
346
|
+
graphQLOperationType !== null && graphQLOperationType !== void 0 ? graphQLOperationType : (graphQLOperationType = 'subscription');
|
|
347
|
+
graphQLSelectionSet !== null && graphQLSelectionSet !== void 0 ? graphQLSelectionSet : (graphQLSelectionSet = selectionSetFields);
|
|
328
348
|
}
|
|
329
349
|
var graphQLDocument = "".concat(graphQLOperationType).concat(graphQLArguments
|
|
330
350
|
? "(".concat(Object.entries(graphQLArguments).map(function (_a) {
|
|
@@ -373,6 +393,9 @@ function buildGraphQLVariables(modelDefinition, operation, arg, modelIntrospecti
|
|
|
373
393
|
}
|
|
374
394
|
break;
|
|
375
395
|
case 'LIST':
|
|
396
|
+
case 'ONCREATE':
|
|
397
|
+
case 'ONUPDATE':
|
|
398
|
+
case 'ONDELETE':
|
|
376
399
|
if (arg === null || arg === void 0 ? void 0 : arg.filter) {
|
|
377
400
|
variables = { filter: arg.filter };
|
|
378
401
|
}
|
|
@@ -5,6 +5,7 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
6
|
// SPDX-License-Identifier: Apache-2.0
|
|
7
7
|
var graphql_1 = require("graphql");
|
|
8
|
+
var core_1 = require("@aws-amplify/core");
|
|
8
9
|
var utils_1 = require("@aws-amplify/core/internals/utils");
|
|
9
10
|
var types_1 = require("../types");
|
|
10
11
|
var api_rest_1 = require("@aws-amplify/api-rest");
|
|
@@ -12,7 +13,7 @@ var internals_1 = require("@aws-amplify/api-rest/internals");
|
|
|
12
13
|
var AWSAppSyncRealTimeProvider_1 = require("../Providers/AWSAppSyncRealTimeProvider");
|
|
13
14
|
var utils_2 = require("../utils");
|
|
14
15
|
var USER_AGENT_HEADER = 'x-amz-user-agent';
|
|
15
|
-
var logger = new
|
|
16
|
+
var logger = new core_1.ConsoleLogger('GraphQLAPI');
|
|
16
17
|
var graphqlOperation = function (query, variables, authToken) {
|
|
17
18
|
if (variables === void 0) { variables = {}; }
|
|
18
19
|
return ({
|
|
@@ -239,7 +240,7 @@ var InternalGraphQLAPIClass = /** @class */ (function () {
|
|
|
239
240
|
case 9:
|
|
240
241
|
_m.trys.push([9, 12, , 13]);
|
|
241
242
|
return [4 /*yield*/, this._api.post({
|
|
242
|
-
url: new
|
|
243
|
+
url: new utils_1.AmplifyUrl(endpoint),
|
|
243
244
|
options: {
|
|
244
245
|
headers: headers,
|
|
245
246
|
body: body,
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.generateModelsProperty = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var APIClient_1 = require("./APIClient");
|
|
6
|
+
var rxjs_1 = require("rxjs");
|
|
6
7
|
function generateModelsProperty(client, params) {
|
|
7
8
|
var e_1, _a;
|
|
8
9
|
var _this = this;
|
|
@@ -81,6 +82,20 @@ function generateModelsProperty(client, params) {
|
|
|
81
82
|
});
|
|
82
83
|
}); };
|
|
83
84
|
}
|
|
85
|
+
else if (['ONCREATE', 'ONUPDATE', 'ONDELETE'].includes(operation)) {
|
|
86
|
+
models[name_1][operationPrefix] = function (arg, options) {
|
|
87
|
+
var query = (0, APIClient_1.generateGraphQLDocument)(modelIntrospection.models, name_1, operation);
|
|
88
|
+
var variables = (0, APIClient_1.buildGraphQLVariables)(model, operation, arg, modelIntrospection);
|
|
89
|
+
var observable = client.graphql({
|
|
90
|
+
query: query,
|
|
91
|
+
variables: variables,
|
|
92
|
+
});
|
|
93
|
+
return observable.pipe((0, rxjs_1.map)(function (value) {
|
|
94
|
+
var _a = tslib_1.__read(Object.keys(value.data), 1), key = _a[0];
|
|
95
|
+
return value.data[key];
|
|
96
|
+
}));
|
|
97
|
+
};
|
|
98
|
+
}
|
|
84
99
|
else {
|
|
85
100
|
models[name_1][operationPrefix] = function (arg, options) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
86
101
|
var query, variables, _a, data, extensions, _b, key_2, flattenedResult, _c, initialized, error_2;
|