graphql-paper
Version:
A flexible in-memory store based on a GraphQL Schema
56 lines (55 loc) • 1.56 kB
JavaScript
import { createConnectionProxy } from '../document/create-connection-proxy.mjs';
import { isDocument } from '../document/is-document.mjs';
import { nullDocument } from '../document/null-document.mjs';
import { findDocument } from '../store/find-document.mjs';
function processReturnable(item, _ref) {
var {
schema,
store
} = _ref;
if (item === nullDocument || item === null) {
return null;
}
if (isDocument(item)) {
return createConnectionProxy(schema, store, item);
}
return item;
}
function convertResultKeysToDocument(schema, store, result) {
if (result === undefined || result === null) {
return result;
}
if (typeof result === 'string') {
var key = result;
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
var document = findDocument(store, key);
return processReturnable(document, {
store,
schema
});
}
if (Array.isArray(result)) {
var processed = result.map(key => {
var document = findDocument(store, key);
return processReturnable(document, {
store,
schema
});
});
return processed;
}
if (typeof result === 'object') {
var _processed = {};
for (var _key in result) {
var documentKey = result[_key];
var _document = findDocument(store, documentKey);
_processed[_key] = processReturnable(_document, {
store,
schema
});
}
return _processed;
}
}
export { convertResultKeysToDocument };
//# sourceMappingURL=convert-result-keys-to-document.mjs.map