UNPKG

graphql-paper

Version:

A flexible in-memory store based on a GraphQL Schema

57 lines (55 loc) 1.66 kB
'use strict'; var createConnectionProxy = require('../document/create-connection-proxy.js'); var isDocument = require('../document/is-document.js'); var nullDocument = require('../document/null-document.js'); var findDocument = require('../store/find-document.js'); function processReturnable(item, { schema, store }) { if (item === nullDocument.nullDocument || item === null) { return null; } if (isDocument.isDocument(item)) { return createConnectionProxy.createConnectionProxy(schema, store, item); } return item; } function convertResultKeysToDocument(schema, store, result) { if (result === undefined || result === null) { return result; } if (typeof result === 'string') { const key = result; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const document = findDocument.findDocument(store, key); return processReturnable(document, { store, schema }); } if (Array.isArray(result)) { const processed = result.map(key => { const document = findDocument.findDocument(store, key); return processReturnable(document, { store, schema }); }); return processed; } if (typeof result === 'object') { const processed = {}; for (const key in result) { const documentKey = result[key]; const document = findDocument.findDocument(store, documentKey); processed[key] = processReturnable(document, { store, schema }); } return processed; } } exports.convertResultKeysToDocument = convertResultKeysToDocument; //# sourceMappingURL=convert-result-keys-to-document.js.map