{"version":3,"file":"writeData.mjs","names":["encounteredIds: EncounteredIds"],"sources":["../../src/core/writeData.ts"],"sourcesContent":["import type { ItemCleanupPair } from '@isograph/isograph-disposable-types/dist';\nimport { callSubscriptions } from './subscribe';\nimport {\n  type NetworkResponseObject,\n  type EncounteredIds,\n  normalizeData,\n} from './cache';\nimport type { IsographEntrypoint, NormalizationAst } from './entrypoint';\nimport type {\n  UnknownTReadFromStore,\n  ExtractParameters,\n  FragmentReference,\n} from './FragmentReference';\nimport {\n  type IsographEnvironment,\n  ROOT_ID,\n  getOrLoadReaderWithRefetchQueries,\n} from './IsographEnvironment';\nimport { logMessage } from './logging';\nimport { retainQueryWithoutMakingNetworkRequest } from './makeNetworkRequest';\nimport { addNetworkResponseStoreLayer } from './optimisticProxy';\n\nexport function writeData<\n  TReadFromStore extends UnknownTReadFromStore,\n  TRawResponseType extends NetworkResponseObject,\n  TClientFieldValue,\n>(\n  environment: IsographEnvironment,\n  entrypoint: IsographEntrypoint<\n    TReadFromStore,\n    TClientFieldValue,\n    NormalizationAst,\n    TRawResponseType\n  >,\n  data: TRawResponseType,\n  variables: ExtractParameters<TReadFromStore>,\n): ItemCleanupPair<FragmentReference<TReadFromStore, TClientFieldValue>> {\n  const encounteredIds: EncounteredIds = new Map();\n  environment.store = addNetworkResponseStoreLayer(environment.store);\n  normalizeData(\n    environment,\n    environment.store,\n    entrypoint.networkRequestInfo.normalizationAst.selections,\n    data,\n    variables,\n    { __link: ROOT_ID, __typename: entrypoint.concreteType },\n    encounteredIds,\n  );\n  logMessage(environment, () => ({\n    kind: 'AfterNormalization',\n    store: environment.store,\n    encounteredIds,\n  }));\n\n  callSubscriptions(environment, encounteredIds);\n\n  const { fieldName, readerArtifactKind, readerWithRefetchQueries } =\n    getOrLoadReaderWithRefetchQueries(\n      environment,\n      entrypoint.readerWithRefetchQueries,\n    );\n  const [networkRequest, disposeNetworkRequest] =\n    retainQueryWithoutMakingNetworkRequest(environment, entrypoint, variables);\n\n  return [\n    {\n      kind: 'FragmentReference',\n      readerWithRefetchQueries,\n      fieldName,\n      readerArtifactKind,\n      root: { __link: ROOT_ID, __typename: entrypoint.concreteType },\n      variables,\n      networkRequest,\n    },\n    () => {\n      disposeNetworkRequest();\n    },\n  ];\n}\n"],"mappings":";;;;;;;;AAsBA,SAAgB,UAKd,aACA,YAMA,MACA,WACuE;CACvE,MAAMA,iCAAiC,IAAI,KAAK;AAChD,aAAY,QAAQ,6BAA6B,YAAY,MAAM;AACnE,eACE,aACA,YAAY,OACZ,WAAW,mBAAmB,iBAAiB,YAC/C,MACA,WACA;EAAE,QAAQ;EAAS,YAAY,WAAW;EAAc,EACxD,eACD;AACD,YAAW,oBAAoB;EAC7B,MAAM;EACN,OAAO,YAAY;EACnB;EACD,EAAE;AAEH,mBAAkB,aAAa,eAAe;CAE9C,MAAM,EAAE,WAAW,oBAAoB,6BACrC,kCACE,aACA,WAAW,yBACZ;CACH,MAAM,CAAC,gBAAgB,yBACrB,uCAAuC,aAAa,YAAY,UAAU;AAE5E,QAAO,CACL;EACE,MAAM;EACN;EACA;EACA;EACA,MAAM;GAAE,QAAQ;GAAS,YAAY,WAAW;GAAc;EAC9D;EACA;EACD,QACK;AACJ,yBAAuB;GAE1B"}