{"version":3,"file":"useResult.mjs","names":[],"sources":["../../src/react/useResult.ts"],"sourcesContent":["import { getOrCreateCachedComponent } from '../core/componentCache';\nimport type {\n  FragmentReference,\n  UnknownTReadFromStore,\n} from '../core/FragmentReference';\nimport { readPromise } from '../core/PromiseWrapper';\nimport {\n  type NetworkRequestReaderOptions,\n  getNetworkRequestOptionsWithDefaults,\n} from '../core/read';\nimport { getOrCreateCachedStartUpdate } from '../core/startUpdate';\nimport { useIsographEnvironment } from './IsographEnvironmentProvider';\nimport { maybeUnwrapNetworkRequest } from './maybeUnwrapNetworkRequest';\nimport { useReadAndSubscribe } from './useReadAndSubscribe';\n\nexport function useResult<\n  TReadFromStore extends UnknownTReadFromStore,\n  TClientFieldValue,\n>(\n  fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>,\n  partialNetworkRequestOptions?: Partial<NetworkRequestReaderOptions> | void,\n): TClientFieldValue {\n  const environment = useIsographEnvironment();\n  const networkRequestOptions = getNetworkRequestOptionsWithDefaults(\n    partialNetworkRequestOptions,\n  );\n\n  switch (fragmentReference.readerArtifactKind) {\n    case 'ComponentReaderArtifact': {\n      // @ts-expect-error\n      return getOrCreateCachedComponent(\n        environment,\n        fragmentReference,\n        networkRequestOptions,\n      );\n    }\n    case 'EagerReaderArtifact': {\n      maybeUnwrapNetworkRequest(\n        fragmentReference.networkRequest,\n        networkRequestOptions,\n      );\n      const readerWithRefetchQueries = readPromise(\n        fragmentReference.readerWithRefetchQueries,\n      );\n      const data = useReadAndSubscribe(\n        fragmentReference,\n        networkRequestOptions,\n        readerWithRefetchQueries.readerArtifact.readerAst,\n      );\n      const param = {\n        data: data,\n        parameters: fragmentReference.variables,\n        ...(readerWithRefetchQueries.readerArtifact.hasUpdatable\n          ? {\n              startUpdate: getOrCreateCachedStartUpdate(\n                environment,\n                fragmentReference,\n                networkRequestOptions,\n              ),\n            }\n          : undefined),\n      };\n      // @ts-expect-error\n      return readerWithRefetchQueries.readerArtifact.resolver(param);\n    }\n  }\n}\n"],"mappings":";;;;;;;;;AAeA,SAAgB,UAId,mBACA,8BACmB;CACnB,MAAM,cAAc,wBAAwB;CAC5C,MAAM,wBAAwB,qCAC5B,6BACD;AAED,SAAQ,kBAAkB,oBAA1B;EACE,KAAK,0BAEH,QAAO,2BACL,aACA,mBACA,sBACD;EAEH,KAAK,uBAAuB;AAC1B,6BACE,kBAAkB,gBAClB,sBACD;GACD,MAAM,2BAA2B,YAC/B,kBAAkB,yBACnB;GAMD,MAAM,QAAQ;IACZ,MANW,oBACX,mBACA,uBACA,yBAAyB,eAAe,UACzC;IAGC,YAAY,kBAAkB;IAC9B,GAAI,yBAAyB,eAAe,eACxC,EACE,aAAa,6BACX,aACA,mBACA,sBACD,EACF,GACD;IACL;AAED,UAAO,yBAAyB,eAAe,SAAS,MAAM"}