UNPKG

graphql-paper

Version:

A flexible in-memory store based on a GraphQL Schema

24 lines (22 loc) 1.49 kB
'use strict'; var createDocument = require('../document/create-document.js'); var getConnections = require('../document/get-connections.js'); var nullDocument = require('../document/null-document.js'); var getDocumentKey = require('../document/get-document-key.js'); function deserializeDocument(serializedDocument, serializedMeta) { const documentData = structuredClone(serializedDocument); delete documentData.__meta__; const document = createDocument.createDocument(serializedDocument.__meta__.DOCUMENT_GRAPHQL_TYPENAME, documentData, serializedDocument.__meta__.DOCUMENT_KEY); // copy over connections from serialized document const documentConnections = getConnections.getConnections(document); const nullDocumentKeyForCurrentPaper = getDocumentKey.getDocumentKey(nullDocument.nullDocument); for (const 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; } exports.deserializeDocument = deserializeDocument; //# sourceMappingURL=deserialize-document.js.map