graphql-paper
Version:
A flexible in-memory store based on a GraphQL Schema
36 lines (35 loc) • 1.18 kB
JavaScript
import { getDocumentKey } from '../document/get-document-key.mjs';
import { isDocument } from '../document/is-document.mjs';
function captureTransactionResultKeys(result) {
var unallowedError = new Error('Return values from transactions must be null, undefined, a Document, array of Document or an object with Document values');
if (result === undefined || result === null) {
return result;
}
if (isDocument(result)) {
return getDocumentKey(result);
}
if (Array.isArray(result)) {
return result.map(item => {
if (!isDocument(item)) {
throw unallowedError;
}
return getDocumentKey(item);
});
}
if (typeof result === 'object') {
var processed = {};
for (var key in result) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
var item = result[key];
if (!isDocument(item)) {
throw unallowedError;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
processed[key] = getDocumentKey(item);
}
return processed;
}
throw unallowedError;
}
export { captureTransactionResultKeys };
//# sourceMappingURL=capture-transaction-result-keys.mjs.map