UNPKG

graphql-paper

Version:

A flexible in-memory store based on a GraphQL Schema

22 lines (21 loc) 1.4 kB
import { createDocument } from '../document/create-document.mjs'; import { getConnections } from '../document/get-connections.mjs'; import { nullDocument } from '../document/null-document.mjs'; import { getDocumentKey } from '../document/get-document-key.mjs'; function deserializeDocument(serializedDocument, serializedMeta) { var documentData = structuredClone(serializedDocument); delete documentData.__meta__; var document = createDocument(serializedDocument.__meta__.DOCUMENT_GRAPHQL_TYPENAME, documentData, serializedDocument.__meta__.DOCUMENT_KEY); // copy over connections from serialized document var documentConnections = getConnections(document); var nullDocumentKeyForCurrentPaper = getDocumentKey(nullDocument); for (var connectionProperty in serializedDocument.__meta__.DOCUMENT_CONNECTIONS) { documentConnections[connectionProperty] = serializedDocument.__meta__.DOCUMENT_CONNECTIONS[connectionProperty].map( // the null key in the serialized document might be different than the null key used in the current instance, // this mapping translates any null serialized null document to use the null document key used by this instance documentKey => documentKey === serializedMeta.NULL_DOCUMENT_KEY ? nullDocumentKeyForCurrentPaper : documentKey); } return document; } export { deserializeDocument }; //# sourceMappingURL=deserialize-document.mjs.map