@aws-amplify/api-graphql 4.0.1-console-preview.be08038.0 → 4.0.1-server-generate-client.1e317a1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/lib/GraphQLAPI.d.ts +2 -2
  2. package/lib/GraphQLAPI.js +4 -6
  3. package/lib/Providers/AWSAppSyncRealTimeProvider/index.d.ts +1 -1
  4. package/lib/Providers/AWSAppSyncRealTimeProvider/index.js +36 -36
  5. package/lib/Providers/constants.js +5 -4
  6. package/lib/index.js +5 -4
  7. package/lib/internals/APIClient.d.ts +101 -0
  8. package/lib/internals/APIClient.js +443 -0
  9. package/lib/internals/InternalGraphQLAPI.d.ts +2 -2
  10. package/lib/internals/InternalGraphQLAPI.js +35 -17
  11. package/lib/internals/generateClient.d.ts +12 -0
  12. package/lib/internals/generateClient.js +30 -0
  13. package/lib/internals/generateModelsProperty.d.ts +4 -0
  14. package/lib/internals/generateModelsProperty.js +169 -0
  15. package/lib/internals/index.d.ts +1 -0
  16. package/lib/internals/index.js +8 -5
  17. package/lib/internals/types.d.ts +10 -0
  18. package/lib/internals/types.js +2 -0
  19. package/lib/internals/v6.js +1 -0
  20. package/lib/tsconfig.tsbuildinfo +1 -6619
  21. package/lib/types/PubSub.d.ts +2 -2
  22. package/lib/types/PubSub.js +3 -2
  23. package/lib/types/index.d.ts +25 -22
  24. package/lib/types/index.js +4 -3
  25. package/lib/utils/ConnectionStateMonitor.d.ts +3 -3
  26. package/lib/utils/ConnectionStateMonitor.js +7 -6
  27. package/lib/utils/ReachabilityMonitor/index.d.ts +1 -1
  28. package/lib/utils/ReachabilityMonitor/index.js +3 -1
  29. package/lib/utils/ReachabilityMonitor/index.native.d.ts +1 -1
  30. package/lib/utils/ReachabilityMonitor/index.native.js +3 -1
  31. package/lib/utils/ReconnectionMonitor.js +2 -1
  32. package/lib/utils/errors/APIError.js +1 -0
  33. package/lib/utils/errors/assertValidationError.js +1 -0
  34. package/lib/utils/errors/index.js +5 -4
  35. package/lib/utils/errors/validation.js +2 -1
  36. package/lib/utils/index.js +3 -2
  37. package/lib/utils/resolveConfig.d.ts +1 -1
  38. package/lib/utils/resolveConfig.js +4 -2
  39. package/lib/utils/resolveLibraryOptions.d.ts +1 -1
  40. package/lib/utils/resolveLibraryOptions.js +3 -1
  41. package/lib/utils/resolveOwnerFields.d.ts +12 -0
  42. package/lib/utils/resolveOwnerFields.js +63 -0
  43. package/lib-esm/GraphQLAPI.d.ts +2 -2
  44. package/lib-esm/GraphQLAPI.js +1 -5
  45. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.d.ts +1 -1
  46. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js +28 -29
  47. package/lib-esm/internals/APIClient.d.ts +101 -0
  48. package/lib-esm/internals/APIClient.js +432 -0
  49. package/lib-esm/internals/InternalGraphQLAPI.d.ts +2 -2
  50. package/lib-esm/internals/InternalGraphQLAPI.js +21 -5
  51. package/lib-esm/internals/generateClient.d.ts +12 -0
  52. package/lib-esm/internals/generateClient.js +26 -0
  53. package/lib-esm/internals/generateModelsProperty.d.ts +4 -0
  54. package/lib-esm/internals/generateModelsProperty.js +165 -0
  55. package/lib-esm/internals/index.d.ts +1 -0
  56. package/lib-esm/internals/index.js +1 -0
  57. package/lib-esm/internals/types.d.ts +10 -0
  58. package/lib-esm/internals/types.js +1 -0
  59. package/lib-esm/tsconfig.tsbuildinfo +1 -6619
  60. package/lib-esm/types/PubSub.d.ts +2 -2
  61. package/lib-esm/types/index.d.ts +25 -22
  62. package/lib-esm/utils/ConnectionStateMonitor.d.ts +3 -3
  63. package/lib-esm/utils/ConnectionStateMonitor.js +2 -2
  64. package/lib-esm/utils/ReachabilityMonitor/index.d.ts +1 -1
  65. package/lib-esm/utils/ReachabilityMonitor/index.native.d.ts +1 -1
  66. package/lib-esm/utils/resolveConfig.d.ts +1 -1
  67. package/lib-esm/utils/resolveLibraryOptions.d.ts +1 -1
  68. package/lib-esm/utils/resolveOwnerFields.d.ts +12 -0
  69. package/lib-esm/utils/resolveOwnerFields.js +59 -0
  70. package/package.json +12 -6
  71. package/src/GraphQLAPI.ts +2 -6
  72. package/src/Providers/AWSAppSyncRealTimeProvider/index.ts +2 -3
  73. package/src/internals/APIClient.ts +583 -0
  74. package/src/internals/InternalGraphQLAPI.ts +35 -9
  75. package/src/internals/generateClient.ts +30 -0
  76. package/src/internals/generateModelsProperty.ts +192 -0
  77. package/src/internals/index.ts +1 -0
  78. package/src/internals/types.ts +15 -0
  79. package/src/types/index.ts +7 -1
  80. package/src/utils/resolveOwnerFields.ts +65 -0
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateModelsProperty = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var APIClient_1 = require("./APIClient");
6
+ var rxjs_1 = require("rxjs");
7
+ var core_1 = require("@aws-amplify/core");
8
+ function generateModelsProperty(client, params) {
9
+ var e_1, _a;
10
+ var _this = this;
11
+ var _b, _c, _d;
12
+ var models = {};
13
+ // params.config gets populated in SSR only; otherwise we get it from the singleton
14
+ var config = (_b = params.config) !== null && _b !== void 0 ? _b : core_1.Amplify.getConfig();
15
+ var modelIntrospection = (_d = (_c = config.API) === null || _c === void 0 ? void 0 : _c.GraphQL) === null || _d === void 0 ? void 0 : _d.modelIntrospection;
16
+ if (!modelIntrospection) {
17
+ return {};
18
+ }
19
+ var _loop_1 = function (model) {
20
+ var name_1 = model.name;
21
+ models[name_1] = {};
22
+ Object.entries(APIClient_1.graphQLOperationsInfo).forEach(function (_a) {
23
+ var _b = tslib_1.__read(_a, 2), key = _b[0], operationPrefix = _b[1].operationPrefix;
24
+ var operation = key;
25
+ if (operation === 'LIST') {
26
+ models[name_1][operationPrefix] = function (args) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
27
+ var query, variables, _a, data, nextToken, extensions, _b, key_1, flattenedResult, initialized, error_1;
28
+ return tslib_1.__generator(this, function (_c) {
29
+ switch (_c.label) {
30
+ case 0:
31
+ query = (0, APIClient_1.generateGraphQLDocument)(modelIntrospection.models, name_1, 'LIST', args);
32
+ variables = (0, APIClient_1.buildGraphQLVariables)(model, 'LIST', args, modelIntrospection);
33
+ _c.label = 1;
34
+ case 1:
35
+ _c.trys.push([1, 3, , 4]);
36
+ return [4 /*yield*/, client.graphql({
37
+ query: query,
38
+ variables: variables,
39
+ })];
40
+ case 2:
41
+ _a = (_c.sent()), data = _a.data, nextToken = _a.nextToken, extensions = _a.extensions;
42
+ // flatten response
43
+ if (data !== undefined) {
44
+ _b = tslib_1.__read(Object.keys(data), 1), key_1 = _b[0];
45
+ if (data[key_1].items) {
46
+ flattenedResult = (0, APIClient_1.flattenItems)(data)[key_1];
47
+ // don't init if custom selection set
48
+ if (args === null || args === void 0 ? void 0 : args.selectionSet) {
49
+ return [2 /*return*/, {
50
+ data: flattenedResult,
51
+ nextToken: nextToken,
52
+ extensions: extensions,
53
+ }];
54
+ }
55
+ else {
56
+ initialized = (0, APIClient_1.initializeModel)(client, name_1, flattenedResult, modelIntrospection);
57
+ return [2 /*return*/, {
58
+ data: initialized,
59
+ nextToken: nextToken,
60
+ extensions: extensions,
61
+ }];
62
+ }
63
+ }
64
+ return [2 /*return*/, {
65
+ data: data[key_1],
66
+ nextToken: nextToken,
67
+ extensions: extensions,
68
+ }];
69
+ }
70
+ return [3 /*break*/, 4];
71
+ case 3:
72
+ error_1 = _c.sent();
73
+ if (error_1.errors) {
74
+ // graphql errors pass through
75
+ return [2 /*return*/, error_1];
76
+ }
77
+ else {
78
+ // non-graphql errors re re-thrown
79
+ throw error_1;
80
+ }
81
+ return [3 /*break*/, 4];
82
+ case 4: return [2 /*return*/];
83
+ }
84
+ });
85
+ }); };
86
+ }
87
+ else if (['ONCREATE', 'ONUPDATE', 'ONDELETE'].includes(operation)) {
88
+ models[name_1][operationPrefix] = function (arg, options) {
89
+ var query = (0, APIClient_1.generateGraphQLDocument)(modelIntrospection.models, name_1, operation);
90
+ var variables = (0, APIClient_1.buildGraphQLVariables)(model, operation, arg, modelIntrospection);
91
+ var observable = client.graphql({
92
+ query: query,
93
+ variables: variables,
94
+ });
95
+ return observable.pipe((0, rxjs_1.map)(function (value) {
96
+ var _a = tslib_1.__read(Object.keys(value.data), 1), key = _a[0];
97
+ return value.data[key];
98
+ }));
99
+ };
100
+ }
101
+ else {
102
+ models[name_1][operationPrefix] = function (arg, options) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
103
+ var query, variables, _a, data, extensions, _b, key_2, flattenedResult, _c, initialized, error_2;
104
+ return tslib_1.__generator(this, function (_d) {
105
+ switch (_d.label) {
106
+ case 0:
107
+ query = (0, APIClient_1.generateGraphQLDocument)(modelIntrospection.models, name_1, operation, options);
108
+ variables = (0, APIClient_1.buildGraphQLVariables)(model, operation, arg, modelIntrospection);
109
+ _d.label = 1;
110
+ case 1:
111
+ _d.trys.push([1, 3, , 4]);
112
+ return [4 /*yield*/, client.graphql({
113
+ query: query,
114
+ variables: variables,
115
+ })];
116
+ case 2:
117
+ _a = (_d.sent()), data = _a.data, extensions = _a.extensions;
118
+ // flatten response
119
+ if (data !== undefined) {
120
+ _b = tslib_1.__read(Object.keys(data), 1), key_2 = _b[0];
121
+ flattenedResult = (0, APIClient_1.flattenItems)(data)[key_2];
122
+ if (options === null || options === void 0 ? void 0 : options.selectionSet) {
123
+ return [2 /*return*/, { data: flattenedResult, extensions: extensions }];
124
+ }
125
+ else {
126
+ _c = tslib_1.__read((0, APIClient_1.initializeModel)(client, name_1, [flattenedResult], modelIntrospection), 1), initialized = _c[0];
127
+ return [2 /*return*/, { data: initialized, extensions: extensions }];
128
+ }
129
+ }
130
+ else {
131
+ return [2 /*return*/, { data: null, extensions: extensions }];
132
+ }
133
+ return [3 /*break*/, 4];
134
+ case 3:
135
+ error_2 = _d.sent();
136
+ if (error_2.errors) {
137
+ // graphql errors pass through
138
+ return [2 /*return*/, error_2];
139
+ }
140
+ else {
141
+ // non-graphql errors re re-thrown
142
+ throw error_2;
143
+ }
144
+ return [3 /*break*/, 4];
145
+ case 4: return [2 /*return*/];
146
+ }
147
+ });
148
+ }); };
149
+ }
150
+ });
151
+ };
152
+ try {
153
+ // TODO: refactor this to use separate methods for each CRUDL.
154
+ // Doesn't make sense to gen the methods dynamically given the different args and return values
155
+ for (var _e = tslib_1.__values(Object.values(modelIntrospection.models)), _f = _e.next(); !_f.done; _f = _e.next()) {
156
+ var model = _f.value;
157
+ _loop_1(model);
158
+ }
159
+ }
160
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
161
+ finally {
162
+ try {
163
+ if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
164
+ }
165
+ finally { if (e_1) throw e_1.error; }
166
+ }
167
+ return models;
168
+ }
169
+ exports.generateModelsProperty = generateModelsProperty;
@@ -1,2 +1,3 @@
1
1
  export { InternalGraphQLAPI, InternalGraphQLAPIClass, } from './InternalGraphQLAPI';
2
2
  export { graphql, cancel, isCancelError } from './v6';
3
+ export { generateClient } from './generateClient';
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateClient = exports.isCancelError = exports.cancel = exports.graphql = exports.InternalGraphQLAPIClass = exports.InternalGraphQLAPI = void 0;
3
4
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
5
  // SPDX-License-Identifier: Apache-2.0
5
6
  var InternalGraphQLAPI_1 = require("./InternalGraphQLAPI");
6
- exports.InternalGraphQLAPI = InternalGraphQLAPI_1.InternalGraphQLAPI;
7
- exports.InternalGraphQLAPIClass = InternalGraphQLAPI_1.InternalGraphQLAPIClass;
7
+ Object.defineProperty(exports, "InternalGraphQLAPI", { enumerable: true, get: function () { return InternalGraphQLAPI_1.InternalGraphQLAPI; } });
8
+ Object.defineProperty(exports, "InternalGraphQLAPIClass", { enumerable: true, get: function () { return InternalGraphQLAPI_1.InternalGraphQLAPIClass; } });
8
9
  var v6_1 = require("./v6");
9
- exports.graphql = v6_1.graphql;
10
- exports.cancel = v6_1.cancel;
11
- exports.isCancelError = v6_1.isCancelError;
10
+ Object.defineProperty(exports, "graphql", { enumerable: true, get: function () { return v6_1.graphql; } });
11
+ Object.defineProperty(exports, "cancel", { enumerable: true, get: function () { return v6_1.cancel; } });
12
+ Object.defineProperty(exports, "isCancelError", { enumerable: true, get: function () { return v6_1.isCancelError; } });
13
+ var generateClient_1 = require("./generateClient");
14
+ Object.defineProperty(exports, "generateClient", { enumerable: true, get: function () { return generateClient_1.generateClient; } });
@@ -0,0 +1,10 @@
1
+ import { AmplifyClassV6 } from '@aws-amplify/core';
2
+ /**
3
+ * @private
4
+ *
5
+ * The knobs available for configuring `generateClient` internally.
6
+ */
7
+ export type ClientGenerationParams = {
8
+ amplify: AmplifyClassV6 | ((fn: (amplify: any) => Promise<any>) => Promise<AmplifyClassV6>);
9
+ config?: object;
10
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isCancelError = exports.cancel = exports.graphql = void 0;
3
4
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
5
  // SPDX-License-Identifier: Apache-2.0
5
6
  var GraphQLAPI_1 = require("../GraphQLAPI");