{"version":3,"file":"componentCache.mjs","names":[],"sources":["../../src/core/componentCache.ts"],"sourcesContent":["import type { FragmentReference } from './FragmentReference';\nimport { stableIdForFragmentReference } from './FragmentReference';\nimport type { IsographEnvironment } from './IsographEnvironment';\nimport type { NetworkRequestReaderOptions } from './read';\nimport { createStartUpdate } from './startUpdate';\n\nexport function getOrCreateCachedComponent(\n  environment: IsographEnvironment,\n  fragmentReference: FragmentReference<any, any>,\n  networkRequestOptions: NetworkRequestReaderOptions,\n): React.FC<any> {\n  // We create startUpdate outside of component to make it stable\n  const startUpdate = createStartUpdate(\n    environment,\n    fragmentReference,\n    networkRequestOptions,\n  );\n\n  return (environment.componentCache[\n    stableIdForFragmentReference(fragmentReference)\n  ] ??= environment.componentFunction(\n    environment,\n    fragmentReference,\n    networkRequestOptions,\n    startUpdate,\n  ));\n}\n"],"mappings":";;;;AAMA,SAAgB,2BACd,aACA,mBACA,uBACe;CAEf,MAAM,cAAc,kBAClB,aACA,mBACA,sBACD;AAED,QAAQ,YAAY,eAClB,6BAA6B,kBAAkB,MAC3C,YAAY,kBAChB,aACA,mBACA,uBACA,YACD"}