@aws-amplify/api-graphql 4.0.1-api-v6-models.3eb7748.0 → 4.0.1-api-v6-models.9493d4d.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.
@@ -142,7 +142,7 @@ export var graphQLOperationsInfo = {
142
142
  ONDELETE: { operationPrefix: 'onDelete', usePlural: false },
143
143
  };
144
144
  var graphQLDocumentsCache = new Map();
145
- var SELECTION_SET_ALL_NESTED = '*';
145
+ var SELECTION_SET_WILDCARD = '*';
146
146
  function defaultSelectionSetForModel(modelDefinition) {
147
147
  // fields that are explicitly part of the graphql schema; not
148
148
  // inferred from owner auth rules.
@@ -179,70 +179,53 @@ var FIELD_IR = '';
179
179
  * ```
180
180
  */
181
181
  export function customSelectionSetToIR(modelIntrospection, modelName, selectionSet) {
182
- var e_2, _a;
183
- var _b, _c, _d, _e;
184
182
  var modelDefinition = modelIntrospection[modelName];
185
- var fields = modelDefinition.fields;
186
- var intermediateSelectionSet = {};
187
- try {
188
- for (var selectionSet_1 = __values(selectionSet), selectionSet_1_1 = selectionSet_1.next(); !selectionSet_1_1.done; selectionSet_1_1 = selectionSet_1.next()) {
189
- var f = selectionSet_1_1.value;
190
- var nested = f.includes('.');
191
- if (nested) {
192
- var _f = __read(f.split('.'), 2), modelFieldName = _f[0], selectedField = _f[1];
193
- var relatedModel = (_c = (_b = fields[modelFieldName]) === null || _b === void 0 ? void 0 : _b.type) === null || _c === void 0 ? void 0 : _c.model;
194
- if (!relatedModel) {
195
- // TODO: may need to change this to support custom types
196
- throw Error("".concat(modelFieldName, " is not a model field"));
197
- }
198
- if (selectedField === SELECTION_SET_ALL_NESTED) {
199
- var relatedModelDefinition = modelIntrospection[relatedModel];
200
- var defaultSelectionSet = defaultSelectionSetForModel(relatedModelDefinition);
201
- var reduced = defaultSelectionSet.reduce(function (acc, curVal) {
202
- acc[curVal] = FIELD_IR;
203
- return acc;
204
- }, {});
205
- if ((_d = fields[modelFieldName]) === null || _d === void 0 ? void 0 : _d.isArray) {
206
- intermediateSelectionSet[modelFieldName] = {
207
- items: reduced,
208
- };
209
- }
210
- else {
211
- intermediateSelectionSet[modelFieldName] = reduced;
212
- }
213
- }
214
- else {
215
- var getNestedSelSet = customSelectionSetToIR(modelIntrospection, relatedModel, [selectedField]);
216
- if ((_e = fields[modelFieldName]) === null || _e === void 0 ? void 0 : _e.isArray) {
217
- var existing = intermediateSelectionSet[modelFieldName] || { items: {} };
218
- var merged = __assign(__assign({}, existing.items), getNestedSelSet);
219
- intermediateSelectionSet[modelFieldName] = { items: merged };
220
- }
221
- else {
222
- var existingItems = intermediateSelectionSet[modelFieldName] || {};
223
- var merged = __assign(__assign({}, existingItems), getNestedSelSet);
224
- intermediateSelectionSet[modelFieldName] = merged;
225
- }
226
- }
183
+ var modelFields = modelDefinition.fields;
184
+ return selectionSet.reduce(function (resultObj, path) {
185
+ var _a, _b, _c;
186
+ var _d = __read(path.split('.')), fieldName = _d[0], nested = _d[1], rest = _d.slice(2);
187
+ if (nested) {
188
+ var relatedModel = (_b = (_a = modelFields[fieldName]) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.model;
189
+ if (!relatedModel) {
190
+ // TODO: may need to change this to support custom types
191
+ throw Error("".concat(fieldName, " is not a model field"));
227
192
  }
228
- else {
229
- var exists = Boolean(fields[f]);
230
- if (!exists) {
231
- throw Error("".concat(f, " is not a field of model ").concat(modelName));
232
- }
233
- intermediateSelectionSet[f] = FIELD_IR;
193
+ var relatedModelDefinition = modelIntrospection[relatedModel];
194
+ var selectionSet_1 = nested === SELECTION_SET_WILDCARD
195
+ ? defaultSelectionSetIR(relatedModelDefinition)
196
+ : // if we have a path like 'field.anotherField' recursively build up selection set IR
197
+ customSelectionSetToIR(modelIntrospection, relatedModel, [
198
+ __spreadArray([nested], __read(rest), false).join('.'),
199
+ ]);
200
+ if ((_c = modelFields[fieldName]) === null || _c === void 0 ? void 0 : _c.isArray) {
201
+ var existing = resultObj[fieldName] || {
202
+ items: {},
203
+ };
204
+ var merged_1 = __assign(__assign({}, existing.items), selectionSet_1);
205
+ resultObj[fieldName] = { items: merged_1 };
206
+ return resultObj;
234
207
  }
208
+ var existingItems = resultObj[fieldName] || {};
209
+ var merged = __assign(__assign({}, existingItems), selectionSet_1);
210
+ resultObj[fieldName] = merged;
211
+ return resultObj;
235
212
  }
236
- }
237
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
238
- finally {
239
- try {
240
- if (selectionSet_1_1 && !selectionSet_1_1.done && (_a = selectionSet_1.return)) _a.call(selectionSet_1);
213
+ var exists = Boolean(modelFields[fieldName]);
214
+ if (!exists) {
215
+ throw Error("".concat(fieldName, " is not a field of model ").concat(modelName));
241
216
  }
242
- finally { if (e_2) throw e_2.error; }
243
- }
244
- return intermediateSelectionSet;
217
+ resultObj[fieldName] = FIELD_IR;
218
+ return resultObj;
219
+ }, {});
245
220
  }
221
+ var defaultSelectionSetIR = function (relatedModelDefinition) {
222
+ var defaultSelectionSet = defaultSelectionSetForModel(relatedModelDefinition);
223
+ var reduced = defaultSelectionSet.reduce(function (acc, curVal) {
224
+ acc[curVal] = FIELD_IR;
225
+ return acc;
226
+ }, {});
227
+ return reduced;
228
+ };
246
229
  /**
247
230
  * Stringifies selection set IR
248
231
  * * @example