@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
|
|
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
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
var
|
|
191
|
-
if (
|
|
192
|
-
|
|
193
|
-
|
|
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
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
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
|
-
|
|
238
|
-
|
|
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
|
-
|
|
243
|
-
|
|
244
|
-
|
|
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
|