@isograph/react 0.0.0-main-d4700c2e → 0.0.0-main-0365bd75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/.turbo/turbo-compile-libs.log +2 -2
  2. package/.turbo/turbo-tsc.log +1 -1
  3. package/dist/core/IsographEnvironment.d.mts.map +1 -1
  4. package/dist/core/IsographEnvironment.d.ts.map +1 -1
  5. package/dist/core/IsographEnvironment.js +16 -6
  6. package/dist/core/IsographEnvironment.mjs +16 -6
  7. package/dist/core/IsographEnvironment.mjs.map +1 -1
  8. package/dist/core/cache.js +1 -3
  9. package/dist/core/cache.mjs +1 -3
  10. package/dist/core/cache.mjs.map +1 -1
  11. package/dist/core/entrypoint.d.mts +7 -2
  12. package/dist/core/entrypoint.d.mts.map +1 -1
  13. package/dist/core/entrypoint.d.ts +7 -2
  14. package/dist/core/entrypoint.d.ts.map +1 -1
  15. package/dist/core/entrypoint.mjs.map +1 -1
  16. package/dist/core/logging.d.ts.map +1 -1
  17. package/dist/core/makeNetworkRequest.js +6 -6
  18. package/dist/core/makeNetworkRequest.mjs +6 -6
  19. package/dist/core/makeNetworkRequest.mjs.map +1 -1
  20. package/dist/core/read.d.mts.map +1 -1
  21. package/dist/core/read.d.ts.map +1 -1
  22. package/dist/core/read.js +19 -17
  23. package/dist/core/read.mjs +19 -17
  24. package/dist/core/read.mjs.map +1 -1
  25. package/dist/core/reader.d.mts +3 -3
  26. package/dist/core/reader.d.mts.map +1 -1
  27. package/dist/core/reader.d.ts +3 -3
  28. package/dist/core/reader.d.ts.map +1 -1
  29. package/package.json +4 -4
  30. package/src/core/IsographEnvironment.ts +18 -5
  31. package/src/core/cache.ts +1 -9
  32. package/src/core/entrypoint.ts +16 -2
  33. package/src/core/makeNetworkRequest.ts +10 -12
  34. package/src/core/read.ts +15 -14
  35. package/src/core/reader.ts +7 -5
  36. package/src/tests/__isograph/Node/asEconomist/resolver_reader.ts +3 -3
  37. package/src/tests/__isograph/Query/linkedUpdate/resolver_reader.ts +3 -3
  38. package/src/tests/__isograph/Query/meName/resolver_reader.ts +3 -3
  39. package/src/tests/__isograph/Query/meNameSuccessor/resolver_reader.ts +3 -3
  40. package/src/tests/__isograph/Query/nodeField/resolver_reader.ts +3 -3
  41. package/src/tests/__isograph/Query/normalizeUndefinedField/resolver_reader.ts +3 -3
  42. package/src/tests/__isograph/Query/startUpdate/resolver_reader.ts +3 -3
  43. package/src/tests/__isograph/Query/subquery/resolver_reader.ts +3 -3
@@ -1,11 +1,11 @@
1
1
  ../.. |  WARN  Unsupported engine: wanted: {"node":"24.12.0"} (current: {"node":"v22.21.1","pnpm":"10.15.0"})
2
2
 
3
- > @isograph/react@0.0.0-main-d4700c2e compile-libs /home/runner/work/isograph/isograph/libs/isograph-react
3
+ > @isograph/react@0.0.0-main-0365bd75 compile-libs /home/runner/work/isograph/isograph/libs/isograph-react
4
4
  > tsdown
5
5
 
6
6
  ℹ tsdown v0.15.10 powered by rolldown v1.0.0-beta.44
7
7
  ℹ Using tsdown config: /home/runner/work/isograph/isograph/tsdown.config.ts
8
- (node:2717) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/isograph/isograph/tsdown.config.ts is not specified and it doesn't parse as CommonJS.
8
+ (node:2785) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/isograph/isograph/tsdown.config.ts is not specified and it doesn't parse as CommonJS.
9
9
  Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
10
10
  To eliminate this warning, add "type": "module" to /home/runner/work/isograph/isograph/package.json.
11
11
  (Use `node --trace-warnings ...` to show where the warning was created)
@@ -1,5 +1,5 @@
1
1
  ../.. |  WARN  Unsupported engine: wanted: {"node":"24.12.0"} (current: {"node":"v22.21.1","pnpm":"10.15.0"})
2
2
 
3
- > @isograph/react@0.0.0-main-d4700c2e tsc /home/runner/work/isograph/isograph/libs/isograph-react
3
+ > @isograph/react@0.0.0-main-0365bd75 tsc /home/runner/work/isograph/isograph/libs/isograph-react
4
4
  > tsc
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"IsographEnvironment.d.mts","names":[],"sources":["../../src/core/IsographEnvironment.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"IsographEnvironment.d.mts","names":[],"sources":["../../src/core/IsographEnvironment.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IsographEnvironment.d.ts","names":[],"sources":["../../src/core/IsographEnvironment.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"IsographEnvironment.d.ts","names":[],"sources":["../../src/core/IsographEnvironment.ts"],"sourcesContent":[],"mappings":"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"}
@@ -49,13 +49,23 @@ function getOrLoadIsographArtifact(environment, key, loader) {
49
49
  }
50
50
  function getOrLoadReaderWithRefetchQueries(_environment, readerWithRefetchQueries) {
51
51
  switch (readerWithRefetchQueries.kind) {
52
- case "ReaderWithRefetchQueries": return {
53
- readerWithRefetchQueries: require_PromiseWrapper.wrapResolvedValue(readerWithRefetchQueries),
54
- fieldName: readerWithRefetchQueries.readerArtifact.fieldName,
55
- readerArtifactKind: readerWithRefetchQueries.readerArtifact.kind
56
- };
52
+ case "ReaderWithRefetchQueries":
53
+ const readerArtifact = readerWithRefetchQueries.readerArtifact();
54
+ return {
55
+ readerWithRefetchQueries: require_PromiseWrapper.wrapResolvedValue({
56
+ kind: "ReaderWithRefetchQueries",
57
+ nestedRefetchQueries: readerWithRefetchQueries.nestedRefetchQueries,
58
+ readerArtifact
59
+ }),
60
+ fieldName: readerArtifact.fieldName,
61
+ readerArtifactKind: readerArtifact.kind
62
+ };
57
63
  case "ReaderWithRefetchQueriesLoader": return {
58
- readerWithRefetchQueries: require_PromiseWrapper.wrapPromise(readerWithRefetchQueries.loader()),
64
+ readerWithRefetchQueries: require_PromiseWrapper.wrapPromise(readerWithRefetchQueries.loader().then((readerWithRefetchQueries$1) => ({
65
+ kind: "ReaderWithRefetchQueries",
66
+ nestedRefetchQueries: readerWithRefetchQueries$1.nestedRefetchQueries,
67
+ readerArtifact: readerWithRefetchQueries$1.readerArtifact()
68
+ }))),
59
69
  fieldName: readerWithRefetchQueries.fieldName,
60
70
  readerArtifactKind: readerWithRefetchQueries.readerArtifactKind
61
71
  };
@@ -49,13 +49,23 @@ function getOrLoadIsographArtifact(environment, key, loader) {
49
49
  }
50
50
  function getOrLoadReaderWithRefetchQueries(_environment, readerWithRefetchQueries) {
51
51
  switch (readerWithRefetchQueries.kind) {
52
- case "ReaderWithRefetchQueries": return {
53
- readerWithRefetchQueries: wrapResolvedValue(readerWithRefetchQueries),
54
- fieldName: readerWithRefetchQueries.readerArtifact.fieldName,
55
- readerArtifactKind: readerWithRefetchQueries.readerArtifact.kind
56
- };
52
+ case "ReaderWithRefetchQueries":
53
+ const readerArtifact = readerWithRefetchQueries.readerArtifact();
54
+ return {
55
+ readerWithRefetchQueries: wrapResolvedValue({
56
+ kind: "ReaderWithRefetchQueries",
57
+ nestedRefetchQueries: readerWithRefetchQueries.nestedRefetchQueries,
58
+ readerArtifact
59
+ }),
60
+ fieldName: readerArtifact.fieldName,
61
+ readerArtifactKind: readerArtifact.kind
62
+ };
57
63
  case "ReaderWithRefetchQueriesLoader": return {
58
- readerWithRefetchQueries: wrapPromise(readerWithRefetchQueries.loader()),
64
+ readerWithRefetchQueries: wrapPromise(readerWithRefetchQueries.loader().then((readerWithRefetchQueries$1) => ({
65
+ kind: "ReaderWithRefetchQueries",
66
+ nestedRefetchQueries: readerWithRefetchQueries$1.nestedRefetchQueries,
67
+ readerArtifact: readerWithRefetchQueries$1.readerArtifact()
68
+ }))),
59
69
  fieldName: readerWithRefetchQueries.fieldName,
60
70
  readerArtifactKind: readerWithRefetchQueries.readerArtifactKind
61
71
  };
@@ -1 +1 @@
1
- {"version":3,"file":"IsographEnvironment.mjs","names":["ROOT_ID: DataId & '__ROOT'"],"sources":["../../src/core/IsographEnvironment.ts"],"sourcesContent":["import type { ParentCache } from '@isograph/react-disposable-state';\nimport type { Brand } from './brand';\nimport type { LinkedParentRecordKey, ScalarParentRecordKey } from './cache';\nimport type {\n IsographEntrypoint,\n IsographOperation,\n IsographPersistedOperation,\n ReaderWithRefetchQueries,\n ReaderWithRefetchQueriesLoader,\n} from './entrypoint';\nimport type {\n ExtractStartUpdate,\n FragmentReference,\n StableIdForFragmentReference,\n UnknownTReadFromStore,\n Variables,\n} from './FragmentReference';\nimport type { RetainedQuery } from './garbageCollection';\nimport type { LogFunction, WrappedLogFunction } from './logging';\nimport { type StoreLayer } from './optimisticProxy';\nimport type { PromiseWrapper } from './PromiseWrapper';\nimport { wrapPromise, wrapResolvedValue } from './PromiseWrapper';\nimport type {\n NetworkRequestReaderOptions,\n WithEncounteredRecords,\n} from './read';\nimport type { ReaderAst, StartUpdate } from './reader';\nimport { isArray } from './util';\n\nexport type ComponentOrFieldName = string;\nexport type StringifiedArgs = string;\n\nexport type FieldCache<T> = {\n [key: StableIdForFragmentReference]: T;\n};\n\nexport type FragmentSubscription<TReadFromStore extends UnknownTReadFromStore> =\n {\n readonly kind: 'FragmentSubscription';\n readonly callback: (\n newEncounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>,\n ) => void;\n /** The value read out from the previous call to readButDoNotEvaluate */\n encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>;\n readonly fragmentReference: FragmentReference<TReadFromStore, any>;\n readonly readerAst: ReaderAst<TReadFromStore>;\n };\n\nexport type AnyChangesToRecordSubscription = {\n readonly kind: 'AnyChangesToRecord';\n readonly callback: () => void;\n readonly recordLink: StoreLink;\n};\n\nexport type AnyRecordSubscription = {\n readonly kind: 'AnyRecords';\n readonly callback: () => void;\n};\n\nexport type Subscription =\n | FragmentSubscription<any>\n | AnyChangesToRecordSubscription\n | AnyRecordSubscription;\nexport type Subscriptions = Set<Subscription>;\n// Should this be a map?\nexport type CacheMap<T> = { [index: string]: ParentCache<T> };\n\nexport type IsographEnvironment = {\n store: StoreLayer;\n readonly networkFunction: IsographNetworkFunction;\n readonly componentFunction: IsographComponentFunction;\n readonly missingFieldHandler: MissingFieldHandler | null;\n readonly componentCache: FieldCache<React.FC<any>>;\n readonly eagerReaderCache: FieldCache<StartUpdate<any> | undefined>;\n readonly subscriptions: Subscriptions;\n // N.B. this must be <any, any>, but all *usages* of this should go through\n // a function that adds type parameters.\n readonly fragmentCache: CacheMap<FragmentReference<any, any>>;\n // TODO make this a CacheMap and add GC\n readonly entrypointArtifactCache: Map<\n string,\n PromiseWrapper<IsographEntrypoint<any, any, any, any>>\n >;\n readonly retainedQueries: Set<RetainedQuery>;\n readonly gcBuffer: Array<RetainedQuery>;\n readonly gcBufferSize: number;\n readonly loggers: Set<WrappedLogFunction>;\n};\n\nexport type MissingFieldHandler = (\n storeRecord: StoreRecord,\n root: StoreLink,\n fieldName: string,\n arguments_: { [index: string]: any } | null,\n variables: Variables | null,\n) => StoreLink | undefined;\n\nexport type IsographNetworkFunction = (\n operation: IsographOperation | IsographPersistedOperation,\n variables: Variables,\n) => Promise<any>;\n\nexport type IsographComponentFunction = <\n TReadFromStore extends UnknownTReadFromStore = any,\n>(\n environment: IsographEnvironment,\n fragmentReference: FragmentReference<TReadFromStore, any>,\n networkRequestOptions: NetworkRequestReaderOptions,\n startUpdate: ExtractStartUpdate<TReadFromStore>,\n) => React.FC<any>;\n\nexport interface Link<T extends TypeName> extends StoreLink {\n readonly __link: Brand<DataId, T>;\n readonly __typename: T;\n}\n\nexport type StoreLink = {\n readonly __link: DataId;\n readonly __typename: TypeName;\n};\n\nexport type DataTypeValueScalar =\n // N.B. undefined is here to support optional id's, but\n // undefined should not *actually* be present in the store.\n | undefined\n // Singular fields:\n | unknown\n | number\n | boolean\n | string\n | null\n // Plural fields:\n | readonly DataTypeValueScalar[];\n\nexport type DataTypeValueLinked =\n // N.B. undefined is here to support optional id's, but\n // undefined should not *actually* be present in the store.\n | undefined\n // Singular fields:\n | null\n | StoreLink\n // Plural fields:\n | readonly DataTypeValueLinked[];\n\nexport type StoreRecord = {\n [index: ScalarParentRecordKey]: DataTypeValueScalar;\n [index: LinkedParentRecordKey]: DataTypeValueLinked;\n} & {\n // TODO __typename?: T, which is restricted to being a concrete string\n // TODO this shouldn't always be named id\n readonly __typename?: TypeName;\n readonly id?: DataId;\n};\n\nexport type TypeName = string;\nexport type DataId = string;\n\nexport const ROOT_ID: DataId & '__ROOT' = '__ROOT';\n\nexport type StoreLayerData = {\n [index: TypeName]: {\n [index: DataId]: StoreRecord | null;\n } | null;\n};\n\nexport interface BaseStoreLayerData extends StoreLayerData {\n readonly Query: {\n readonly __ROOT: StoreRecord;\n };\n}\n\nconst DEFAULT_GC_BUFFER_SIZE = 10;\nexport function createIsographEnvironmentCore(\n baseStoreLayerData: BaseStoreLayerData,\n networkFunction: IsographNetworkFunction,\n componentFunction: IsographComponentFunction,\n missingFieldHandler?: MissingFieldHandler | null,\n logFunction?: LogFunction | null,\n): IsographEnvironment {\n logFunction?.({\n kind: 'EnvironmentCreated',\n });\n let store = {\n kind: 'BaseStoreLayer',\n data: baseStoreLayerData,\n parentStoreLayer: null,\n childStoreLayer: null,\n } as const;\n return {\n store,\n networkFunction,\n componentFunction,\n missingFieldHandler: missingFieldHandler ?? null,\n componentCache: {},\n eagerReaderCache: {},\n subscriptions: new Set(),\n fragmentCache: {},\n entrypointArtifactCache: new Map(),\n retainedQueries: new Set(),\n gcBuffer: [],\n gcBufferSize: DEFAULT_GC_BUFFER_SIZE,\n loggers: logFunction != null ? new Set([{ log: logFunction }]) : new Set(),\n };\n}\n\nexport function createIsographStore(): BaseStoreLayerData {\n return {\n Query: {\n [ROOT_ID]: {},\n },\n };\n}\n\nexport function assertLink(\n link: DataTypeValueLinked,\n): StoreLink | null | undefined {\n if (isArray(link)) {\n throw new Error('Unexpected array');\n }\n if (link == null) {\n return link;\n }\n if (typeof link === 'object') {\n return link;\n }\n throw new Error('Invalid link');\n}\n\nexport function getLink(maybeLink: DataTypeValueLinked): StoreLink | null {\n if (!isArray(maybeLink)) {\n return maybeLink ?? null;\n }\n return null;\n}\n\nexport function getOrLoadIsographArtifact(\n environment: IsographEnvironment,\n key: string,\n loader: () => Promise<IsographEntrypoint<any, any, any, any>>,\n): PromiseWrapper<IsographEntrypoint<any, any, any, any>> {\n const value = environment.entrypointArtifactCache.get(key);\n if (value != null) {\n return value;\n }\n const wrapped = wrapPromise(loader());\n environment.entrypointArtifactCache.set(key, wrapped);\n return wrapped;\n}\n\nexport function getOrLoadReaderWithRefetchQueries(\n _environment: IsographEnvironment,\n readerWithRefetchQueries:\n | ReaderWithRefetchQueries<any, any>\n | ReaderWithRefetchQueriesLoader<any, any>,\n): {\n readerWithRefetchQueries: PromiseWrapper<ReaderWithRefetchQueries<any, any>>;\n fieldName: string;\n readerArtifactKind: 'EagerReaderArtifact' | 'ComponentReaderArtifact';\n} {\n switch (readerWithRefetchQueries.kind) {\n case 'ReaderWithRefetchQueries':\n return {\n readerWithRefetchQueries: wrapResolvedValue(readerWithRefetchQueries),\n fieldName: readerWithRefetchQueries.readerArtifact.fieldName,\n readerArtifactKind: readerWithRefetchQueries.readerArtifact.kind,\n };\n case 'ReaderWithRefetchQueriesLoader':\n return {\n // TODO: cache promise wrapper\n readerWithRefetchQueries: wrapPromise(\n readerWithRefetchQueries.loader(),\n ),\n fieldName: readerWithRefetchQueries.fieldName,\n readerArtifactKind: readerWithRefetchQueries.readerArtifactKind,\n };\n }\n}\n"],"mappings":";;;;AA6JA,MAAaA,UAA6B;AAc1C,MAAM,yBAAyB;AAC/B,SAAgB,8BACd,oBACA,iBACA,mBACA,qBACA,aACqB;AACrB,eAAc,EACZ,MAAM,sBACP,CAAC;AAOF,QAAO;EACL,OAPU;GACV,MAAM;GACN,MAAM;GACN,kBAAkB;GAClB,iBAAiB;GAClB;EAGC;EACA;EACA,qBAAqB,uBAAuB;EAC5C,gBAAgB,EAAE;EAClB,kBAAkB,EAAE;EACpB,+BAAe,IAAI,KAAK;EACxB,eAAe,EAAE;EACjB,yCAAyB,IAAI,KAAK;EAClC,iCAAiB,IAAI,KAAK;EAC1B,UAAU,EAAE;EACZ,cAAc;EACd,SAAS,eAAe,OAAO,IAAI,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,mBAAG,IAAI,KAAK;EAC3E;;AAGH,SAAgB,sBAA0C;AACxD,QAAO,EACL,OAAO,GACJ,UAAU,EAAE,EACd,EACF;;AAGH,SAAgB,WACd,MAC8B;AAC9B,KAAI,QAAQ,KAAK,CACf,OAAM,IAAI,MAAM,mBAAmB;AAErC,KAAI,QAAQ,KACV,QAAO;AAET,KAAI,OAAO,SAAS,SAClB,QAAO;AAET,OAAM,IAAI,MAAM,eAAe;;AAGjC,SAAgB,QAAQ,WAAkD;AACxE,KAAI,CAAC,QAAQ,UAAU,CACrB,QAAO,aAAa;AAEtB,QAAO;;AAGT,SAAgB,0BACd,aACA,KACA,QACwD;CACxD,MAAM,QAAQ,YAAY,wBAAwB,IAAI,IAAI;AAC1D,KAAI,SAAS,KACX,QAAO;CAET,MAAM,UAAU,YAAY,QAAQ,CAAC;AACrC,aAAY,wBAAwB,IAAI,KAAK,QAAQ;AACrD,QAAO;;AAGT,SAAgB,kCACd,cACA,0BAOA;AACA,SAAQ,yBAAyB,MAAjC;EACE,KAAK,2BACH,QAAO;GACL,0BAA0B,kBAAkB,yBAAyB;GACrE,WAAW,yBAAyB,eAAe;GACnD,oBAAoB,yBAAyB,eAAe;GAC7D;EACH,KAAK,iCACH,QAAO;GAEL,0BAA0B,YACxB,yBAAyB,QAAQ,CAClC;GACD,WAAW,yBAAyB;GACpC,oBAAoB,yBAAyB;GAC9C"}
1
+ {"version":3,"file":"IsographEnvironment.mjs","names":["ROOT_ID: DataId & '__ROOT'","readerWithRefetchQueries"],"sources":["../../src/core/IsographEnvironment.ts"],"sourcesContent":["import type { ParentCache } from '@isograph/react-disposable-state';\nimport type { Brand } from './brand';\nimport type { LinkedParentRecordKey, ScalarParentRecordKey } from './cache';\nimport type {\n IsographEntrypoint,\n IsographOperation,\n IsographPersistedOperation,\n RawReaderWithRefetchQueries,\n ReaderWithRefetchQueries,\n ReaderWithRefetchQueriesLoader,\n} from './entrypoint';\nimport type {\n ExtractStartUpdate,\n FragmentReference,\n StableIdForFragmentReference,\n UnknownTReadFromStore,\n Variables,\n} from './FragmentReference';\nimport type { RetainedQuery } from './garbageCollection';\nimport type { LogFunction, WrappedLogFunction } from './logging';\nimport { type StoreLayer } from './optimisticProxy';\nimport type { PromiseWrapper } from './PromiseWrapper';\nimport { wrapPromise, wrapResolvedValue } from './PromiseWrapper';\nimport type {\n NetworkRequestReaderOptions,\n WithEncounteredRecords,\n} from './read';\nimport type { ReaderAst, StartUpdate } from './reader';\nimport { isArray } from './util';\n\nexport type ComponentOrFieldName = string;\nexport type StringifiedArgs = string;\n\nexport type FieldCache<T> = {\n [key: StableIdForFragmentReference]: T;\n};\n\nexport type FragmentSubscription<TReadFromStore extends UnknownTReadFromStore> =\n {\n readonly kind: 'FragmentSubscription';\n readonly callback: (\n newEncounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>,\n ) => void;\n /** The value read out from the previous call to readButDoNotEvaluate */\n encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>;\n readonly fragmentReference: FragmentReference<TReadFromStore, any>;\n readonly readerAst: ReaderAst<TReadFromStore>;\n };\n\nexport type AnyChangesToRecordSubscription = {\n readonly kind: 'AnyChangesToRecord';\n readonly callback: () => void;\n readonly recordLink: StoreLink;\n};\n\nexport type AnyRecordSubscription = {\n readonly kind: 'AnyRecords';\n readonly callback: () => void;\n};\n\nexport type Subscription =\n | FragmentSubscription<any>\n | AnyChangesToRecordSubscription\n | AnyRecordSubscription;\nexport type Subscriptions = Set<Subscription>;\n// Should this be a map?\nexport type CacheMap<T> = { [index: string]: ParentCache<T> };\n\nexport type IsographEnvironment = {\n store: StoreLayer;\n readonly networkFunction: IsographNetworkFunction;\n readonly componentFunction: IsographComponentFunction;\n readonly missingFieldHandler: MissingFieldHandler | null;\n readonly componentCache: FieldCache<React.FC<any>>;\n readonly eagerReaderCache: FieldCache<StartUpdate<any> | undefined>;\n readonly subscriptions: Subscriptions;\n // N.B. this must be <any, any>, but all *usages* of this should go through\n // a function that adds type parameters.\n readonly fragmentCache: CacheMap<FragmentReference<any, any>>;\n // TODO make this a CacheMap and add GC\n readonly entrypointArtifactCache: Map<\n string,\n PromiseWrapper<IsographEntrypoint<any, any, any, any>>\n >;\n readonly retainedQueries: Set<RetainedQuery>;\n readonly gcBuffer: Array<RetainedQuery>;\n readonly gcBufferSize: number;\n readonly loggers: Set<WrappedLogFunction>;\n};\n\nexport type MissingFieldHandler = (\n storeRecord: StoreRecord,\n root: StoreLink,\n fieldName: string,\n arguments_: { [index: string]: any } | null,\n variables: Variables | null,\n) => StoreLink | undefined;\n\nexport type IsographNetworkFunction = (\n operation: IsographOperation | IsographPersistedOperation,\n variables: Variables,\n) => Promise<any>;\n\nexport type IsographComponentFunction = <\n TReadFromStore extends UnknownTReadFromStore = any,\n>(\n environment: IsographEnvironment,\n fragmentReference: FragmentReference<TReadFromStore, any>,\n networkRequestOptions: NetworkRequestReaderOptions,\n startUpdate: ExtractStartUpdate<TReadFromStore>,\n) => React.FC<any>;\n\nexport interface Link<T extends TypeName> extends StoreLink {\n readonly __link: Brand<DataId, T>;\n readonly __typename: T;\n}\n\nexport type StoreLink = {\n readonly __link: DataId;\n readonly __typename: TypeName;\n};\n\nexport type DataTypeValueScalar =\n // N.B. undefined is here to support optional id's, but\n // undefined should not *actually* be present in the store.\n | undefined\n // Singular fields:\n | unknown\n | number\n | boolean\n | string\n | null\n // Plural fields:\n | readonly DataTypeValueScalar[];\n\nexport type DataTypeValueLinked =\n // N.B. undefined is here to support optional id's, but\n // undefined should not *actually* be present in the store.\n | undefined\n // Singular fields:\n | null\n | StoreLink\n // Plural fields:\n | readonly DataTypeValueLinked[];\n\nexport type StoreRecord = {\n [index: ScalarParentRecordKey]: DataTypeValueScalar;\n [index: LinkedParentRecordKey]: DataTypeValueLinked;\n} & {\n // TODO __typename?: T, which is restricted to being a concrete string\n // TODO this shouldn't always be named id\n readonly __typename?: TypeName;\n readonly id?: DataId;\n};\n\nexport type TypeName = string;\nexport type DataId = string;\n\nexport const ROOT_ID: DataId & '__ROOT' = '__ROOT';\n\nexport type StoreLayerData = {\n [index: TypeName]: {\n [index: DataId]: StoreRecord | null;\n } | null;\n};\n\nexport interface BaseStoreLayerData extends StoreLayerData {\n readonly Query: {\n readonly __ROOT: StoreRecord;\n };\n}\n\nconst DEFAULT_GC_BUFFER_SIZE = 10;\nexport function createIsographEnvironmentCore(\n baseStoreLayerData: BaseStoreLayerData,\n networkFunction: IsographNetworkFunction,\n componentFunction: IsographComponentFunction,\n missingFieldHandler?: MissingFieldHandler | null,\n logFunction?: LogFunction | null,\n): IsographEnvironment {\n logFunction?.({\n kind: 'EnvironmentCreated',\n });\n let store = {\n kind: 'BaseStoreLayer',\n data: baseStoreLayerData,\n parentStoreLayer: null,\n childStoreLayer: null,\n } as const;\n return {\n store,\n networkFunction,\n componentFunction,\n missingFieldHandler: missingFieldHandler ?? null,\n componentCache: {},\n eagerReaderCache: {},\n subscriptions: new Set(),\n fragmentCache: {},\n entrypointArtifactCache: new Map(),\n retainedQueries: new Set(),\n gcBuffer: [],\n gcBufferSize: DEFAULT_GC_BUFFER_SIZE,\n loggers: logFunction != null ? new Set([{ log: logFunction }]) : new Set(),\n };\n}\n\nexport function createIsographStore(): BaseStoreLayerData {\n return {\n Query: {\n [ROOT_ID]: {},\n },\n };\n}\n\nexport function assertLink(\n link: DataTypeValueLinked,\n): StoreLink | null | undefined {\n if (isArray(link)) {\n throw new Error('Unexpected array');\n }\n if (link == null) {\n return link;\n }\n if (typeof link === 'object') {\n return link;\n }\n throw new Error('Invalid link');\n}\n\nexport function getLink(maybeLink: DataTypeValueLinked): StoreLink | null {\n if (!isArray(maybeLink)) {\n return maybeLink ?? null;\n }\n return null;\n}\n\nexport function getOrLoadIsographArtifact(\n environment: IsographEnvironment,\n key: string,\n loader: () => Promise<IsographEntrypoint<any, any, any, any>>,\n): PromiseWrapper<IsographEntrypoint<any, any, any, any>> {\n const value = environment.entrypointArtifactCache.get(key);\n if (value != null) {\n return value;\n }\n const wrapped = wrapPromise(loader());\n environment.entrypointArtifactCache.set(key, wrapped);\n return wrapped;\n}\n\nexport function getOrLoadReaderWithRefetchQueries(\n _environment: IsographEnvironment,\n readerWithRefetchQueries:\n | RawReaderWithRefetchQueries<any, any>\n | ReaderWithRefetchQueriesLoader<any, any>,\n): {\n readerWithRefetchQueries: PromiseWrapper<ReaderWithRefetchQueries<any, any>>;\n fieldName: string;\n readerArtifactKind: 'EagerReaderArtifact' | 'ComponentReaderArtifact';\n} {\n switch (readerWithRefetchQueries.kind) {\n case 'ReaderWithRefetchQueries':\n const readerArtifact = readerWithRefetchQueries.readerArtifact();\n return {\n readerWithRefetchQueries: wrapResolvedValue({\n kind: 'ReaderWithRefetchQueries',\n nestedRefetchQueries: readerWithRefetchQueries.nestedRefetchQueries,\n readerArtifact: readerArtifact,\n }),\n fieldName: readerArtifact.fieldName,\n readerArtifactKind: readerArtifact.kind,\n };\n case 'ReaderWithRefetchQueriesLoader':\n return {\n // TODO: cache promise wrapper\n readerWithRefetchQueries: wrapPromise(\n readerWithRefetchQueries\n .loader()\n .then((readerWithRefetchQueries) => ({\n kind: 'ReaderWithRefetchQueries',\n nestedRefetchQueries:\n readerWithRefetchQueries.nestedRefetchQueries,\n readerArtifact: readerWithRefetchQueries.readerArtifact(),\n })),\n ),\n fieldName: readerWithRefetchQueries.fieldName,\n readerArtifactKind: readerWithRefetchQueries.readerArtifactKind,\n };\n }\n}\n"],"mappings":";;;;AA8JA,MAAaA,UAA6B;AAc1C,MAAM,yBAAyB;AAC/B,SAAgB,8BACd,oBACA,iBACA,mBACA,qBACA,aACqB;AACrB,eAAc,EACZ,MAAM,sBACP,CAAC;AAOF,QAAO;EACL,OAPU;GACV,MAAM;GACN,MAAM;GACN,kBAAkB;GAClB,iBAAiB;GAClB;EAGC;EACA;EACA,qBAAqB,uBAAuB;EAC5C,gBAAgB,EAAE;EAClB,kBAAkB,EAAE;EACpB,+BAAe,IAAI,KAAK;EACxB,eAAe,EAAE;EACjB,yCAAyB,IAAI,KAAK;EAClC,iCAAiB,IAAI,KAAK;EAC1B,UAAU,EAAE;EACZ,cAAc;EACd,SAAS,eAAe,OAAO,IAAI,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,mBAAG,IAAI,KAAK;EAC3E;;AAGH,SAAgB,sBAA0C;AACxD,QAAO,EACL,OAAO,GACJ,UAAU,EAAE,EACd,EACF;;AAGH,SAAgB,WACd,MAC8B;AAC9B,KAAI,QAAQ,KAAK,CACf,OAAM,IAAI,MAAM,mBAAmB;AAErC,KAAI,QAAQ,KACV,QAAO;AAET,KAAI,OAAO,SAAS,SAClB,QAAO;AAET,OAAM,IAAI,MAAM,eAAe;;AAGjC,SAAgB,QAAQ,WAAkD;AACxE,KAAI,CAAC,QAAQ,UAAU,CACrB,QAAO,aAAa;AAEtB,QAAO;;AAGT,SAAgB,0BACd,aACA,KACA,QACwD;CACxD,MAAM,QAAQ,YAAY,wBAAwB,IAAI,IAAI;AAC1D,KAAI,SAAS,KACX,QAAO;CAET,MAAM,UAAU,YAAY,QAAQ,CAAC;AACrC,aAAY,wBAAwB,IAAI,KAAK,QAAQ;AACrD,QAAO;;AAGT,SAAgB,kCACd,cACA,0BAOA;AACA,SAAQ,yBAAyB,MAAjC;EACE,KAAK;GACH,MAAM,iBAAiB,yBAAyB,gBAAgB;AAChE,UAAO;IACL,0BAA0B,kBAAkB;KAC1C,MAAM;KACN,sBAAsB,yBAAyB;KAC/B;KACjB,CAAC;IACF,WAAW,eAAe;IAC1B,oBAAoB,eAAe;IACpC;EACH,KAAK,iCACH,QAAO;GAEL,0BAA0B,YACxB,yBACG,QAAQ,CACR,MAAM,gCAA8B;IACnC,MAAM;IACN,sBACEC,2BAAyB;IAC3B,gBAAgBA,2BAAyB,gBAAgB;IAC1D,EAAE,CACN;GACD,WAAW,yBAAyB;GACpC,oBAAoB,yBAAyB;GAC9C"}
@@ -209,9 +209,7 @@ const FIRST_SPLIT_KEY = "____";
209
209
  const SECOND_SPLIT_KEY = "___";
210
210
  const THIRD_SPLIT_KEY = "__";
211
211
  function getDataIdOfNetworkResponse(parentRecordLink, dataToNormalize, astNode, variables, index) {
212
- const __typename = astNode.concreteType ?? dataToNormalize[TYPENAME_FIELD_NAME];
213
- if (__typename == null) throw new Error("Unexpected missing __typename in network response when normalizing a linked field. This is indicative of a bug in Isograph.");
214
- if (__typename === "Query") return require_IsographEnvironment.ROOT_ID;
212
+ if (astNode.concreteType === "Query") return require_IsographEnvironment.ROOT_ID;
215
213
  const dataId = dataToNormalize.id;
216
214
  if (dataId != null) return dataId;
217
215
  let storeKey = `${parentRecordLink.__typename}:${parentRecordLink.__link}.${astNode.fieldName}`;
@@ -207,9 +207,7 @@ const FIRST_SPLIT_KEY = "____";
207
207
  const SECOND_SPLIT_KEY = "___";
208
208
  const THIRD_SPLIT_KEY = "__";
209
209
  function getDataIdOfNetworkResponse(parentRecordLink, dataToNormalize, astNode, variables, index) {
210
- const __typename = astNode.concreteType ?? dataToNormalize[TYPENAME_FIELD_NAME];
211
- if (__typename == null) throw new Error("Unexpected missing __typename in network response when normalizing a linked field. This is indicative of a bug in Isograph.");
212
- if (__typename === "Query") return ROOT_ID;
210
+ if (astNode.concreteType === "Query") return ROOT_ID;
213
211
  const dataId = dataToNormalize.id;
214
212
  if (dataId != null) return dataId;
215
213
  let storeKey = `${parentRecordLink.__typename}:${parentRecordLink.__link}.${astNode.fieldName}`;
@@ -1 +1 @@
1
- {"version":3,"file":"cache.mjs","names":["dataIds: (StoreLink | null)[]","argumentValue"],"sources":["../../src/core/cache.ts"],"sourcesContent":["import { type Factory, ParentCache } from '@isograph/react-disposable-state';\nimport type { Brand } from './brand';\nimport type {\n NormalizationAstNodes,\n NormalizationInlineFragment,\n NormalizationLinkedField,\n NormalizationScalarField,\n} from './entrypoint';\nimport type {\n FragmentReference,\n UnknownTReadFromStore,\n Variables,\n VariableValue,\n} from './FragmentReference';\nimport {\n type DataId,\n type DataTypeValueLinked,\n getLink,\n type IsographEnvironment,\n ROOT_ID,\n type StoreLink,\n type StoreRecord,\n type TypeName,\n} from './IsographEnvironment';\nimport { logMessage } from './logging';\nimport {\n getMutableStoreRecordProxy,\n type StoreLayerWithData,\n} from './optimisticProxy';\nimport type { ReaderLinkedField, ReaderScalarField } from './reader';\nimport { type Argument, type ArgumentValue, isArray, stableCopy } from './util';\n\nexport const TYPENAME_FIELD_NAME = '__typename';\n\nexport function getOrCreateItemInSuspenseCache<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n>(\n environment: IsographEnvironment,\n index: string,\n factory: Factory<FragmentReference<TReadFromStore, TClientFieldValue>>,\n): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>> {\n if (environment.fragmentCache[index] == null) {\n environment.fragmentCache[index] = new ParentCache(factory);\n }\n\n return environment.fragmentCache[index];\n}\n\nexport type NetworkResponsePlural<T> =\n | null\n | T\n | readonly T[]\n | readonly (null | T)[];\nexport type NetworkResponseScalarValue = string | number | boolean | unknown;\n\nexport type NetworkResponseValue =\n | NetworkResponsePlural<NetworkResponseScalarValue>\n | NetworkResponsePlural<NetworkResponseObject>;\n\nexport type NetworkResponseObject = {\n // N.B. undefined is here to support optional id's, but\n // undefined should not *actually* be present in the network response.\n readonly [K in\n | ScalarNetworkResponseKey\n | LinkedNetworkResponseKey]: K extends ScalarNetworkResponseKey\n ? undefined | NetworkResponsePlural<NetworkResponseScalarValue>\n : undefined | NetworkResponsePlural<NetworkResponseObject>;\n} & {\n readonly id?: DataId;\n readonly __typename?: TypeName;\n};\n\nexport function normalizeData(\n environment: IsographEnvironment,\n storeLayer: StoreLayerWithData,\n normalizationAst: NormalizationAstNodes,\n networkResponse: NetworkResponseObject,\n variables: Variables,\n root: StoreLink,\n encounteredIds: EncounteredIds,\n): EncounteredIds {\n logMessage(environment, () => ({\n kind: 'AboutToNormalize',\n normalizationAst,\n networkResponse,\n variables,\n }));\n\n const newStoreRecord = getMutableStoreRecordProxy(storeLayer, root);\n\n normalizeDataIntoRecord(\n environment,\n storeLayer,\n normalizationAst,\n networkResponse,\n newStoreRecord,\n root,\n variables,\n encounteredIds,\n );\n\n return encounteredIds;\n}\n\nexport function subscribeToAnyChange(\n environment: IsographEnvironment,\n callback: () => void,\n): () => void {\n const subscription = {\n kind: 'AnyRecords',\n callback,\n } as const;\n environment.subscriptions.add(subscription);\n return () => environment.subscriptions.delete(subscription);\n}\n\nexport function subscribeToAnyChangesToRecord(\n environment: IsographEnvironment,\n recordLink: StoreLink,\n callback: () => void,\n): () => void {\n const subscription = {\n kind: 'AnyChangesToRecord',\n recordLink,\n callback,\n } as const;\n environment.subscriptions.add(subscription);\n return () => environment.subscriptions.delete(subscription);\n}\n\nexport function onNextChangeToRecord(\n environment: IsographEnvironment,\n recordLink: StoreLink,\n): Promise<void> {\n return new Promise((resolve) => {\n const unsubscribe = subscribeToAnyChangesToRecord(\n environment,\n recordLink,\n () => {\n unsubscribe();\n resolve();\n },\n );\n });\n}\n\nexport type EncounteredIds = Map<TypeName, Set<DataId>>;\n/**\n * Mutate targetParentRecord according to the normalizationAst and networkResponseParentRecord.\n */\nfunction normalizeDataIntoRecord(\n environment: IsographEnvironment,\n storeLayer: StoreLayerWithData,\n normalizationAst: NormalizationAstNodes,\n networkResponseParentRecord: NetworkResponseObject,\n targetParentRecord: StoreRecord,\n targetParentRecordLink: StoreLink,\n variables: Variables,\n mutableEncounteredIds: EncounteredIds,\n): RecordHasBeenUpdated {\n let recordHasBeenUpdated = false;\n for (const normalizationNode of normalizationAst) {\n switch (normalizationNode.kind) {\n case 'Scalar': {\n const scalarFieldResultedInChange = normalizeScalarField(\n normalizationNode,\n networkResponseParentRecord,\n targetParentRecord,\n variables,\n );\n recordHasBeenUpdated =\n recordHasBeenUpdated || scalarFieldResultedInChange;\n break;\n }\n case 'Linked': {\n const linkedFieldResultedInChange = normalizeLinkedField(\n environment,\n storeLayer,\n normalizationNode,\n networkResponseParentRecord,\n targetParentRecord,\n targetParentRecordLink,\n variables,\n mutableEncounteredIds,\n );\n recordHasBeenUpdated =\n recordHasBeenUpdated || linkedFieldResultedInChange;\n break;\n }\n case 'InlineFragment': {\n const inlineFragmentResultedInChange = normalizeInlineFragment(\n environment,\n storeLayer,\n normalizationNode,\n networkResponseParentRecord,\n targetParentRecord,\n targetParentRecordLink,\n variables,\n mutableEncounteredIds,\n );\n recordHasBeenUpdated =\n recordHasBeenUpdated || inlineFragmentResultedInChange;\n break;\n }\n }\n }\n if (recordHasBeenUpdated) {\n let encounteredRecordsIds = insertEmptySetIfMissing(\n mutableEncounteredIds,\n targetParentRecordLink.__typename,\n );\n\n encounteredRecordsIds.add(targetParentRecordLink.__link);\n }\n return recordHasBeenUpdated;\n}\n\nexport function insertEmptySetIfMissing<K, V>(map: Map<K, Set<V>>, key: K) {\n let result = map.get(key);\n if (result === undefined) {\n result = new Set();\n map.set(key, result);\n }\n return result;\n}\n\ntype RecordHasBeenUpdated = boolean;\nfunction normalizeScalarField(\n astNode: NormalizationScalarField,\n networkResponseParentRecord: NetworkResponseObject,\n targetStoreRecord: StoreRecord,\n variables: Variables,\n): RecordHasBeenUpdated {\n const networkResponseKey = getNetworkResponseKey(astNode);\n const networkResponseData = networkResponseParentRecord[networkResponseKey];\n const parentRecordKey = getParentRecordKey(astNode, variables);\n const existingValue = targetStoreRecord[parentRecordKey];\n\n if (networkResponseData == null) {\n targetStoreRecord[parentRecordKey] = null;\n return existingValue === undefined || existingValue != null;\n }\n\n targetStoreRecord[parentRecordKey] = networkResponseData;\n return existingValue !== networkResponseData;\n}\n\n/**\n * Mutate targetParentRecord with a given linked field ast node.\n */\nfunction normalizeLinkedField(\n environment: IsographEnvironment,\n storeLayer: StoreLayerWithData,\n astNode: NormalizationLinkedField,\n networkResponseParentRecord: NetworkResponseObject,\n targetParentRecord: StoreRecord,\n targetParentRecordLink: StoreLink,\n variables: Variables,\n mutableEncounteredIds: EncounteredIds,\n): RecordHasBeenUpdated {\n const networkResponseKey = getNetworkResponseKey(astNode);\n const networkResponseData = networkResponseParentRecord[networkResponseKey];\n const parentRecordKey = getParentRecordKey(astNode, variables);\n const existingValue = targetParentRecord[parentRecordKey];\n\n if (networkResponseData == null) {\n targetParentRecord[parentRecordKey] = null;\n return existingValue === undefined || existingValue != null;\n }\n\n if (isArray(networkResponseData)) {\n // TODO check astNode.plural or the like\n const dataIds: (StoreLink | null)[] = [];\n for (let i = 0; i < networkResponseData.length; i++) {\n const networkResponseObject = networkResponseData[i];\n if (networkResponseObject == null) {\n dataIds.push(null);\n continue;\n }\n const newStoreRecordId = normalizeNetworkResponseObject(\n environment,\n storeLayer,\n astNode,\n networkResponseObject,\n targetParentRecordLink,\n variables,\n i,\n mutableEncounteredIds,\n );\n\n const __typename =\n astNode.concreteType ?? networkResponseObject[TYPENAME_FIELD_NAME];\n if (__typename == null) {\n throw new Error(\n 'Unexpected missing __typename in network response when normalizing a linked field. ' +\n 'This is indicative of a bug in Isograph.',\n );\n }\n dataIds.push({\n __link: newStoreRecordId,\n __typename,\n });\n }\n targetParentRecord[parentRecordKey] = dataIds;\n return !dataIdsAreTheSame(existingValue, dataIds);\n } else {\n const newStoreRecordId = normalizeNetworkResponseObject(\n environment,\n storeLayer,\n astNode,\n networkResponseData,\n targetParentRecordLink,\n variables,\n null,\n mutableEncounteredIds,\n );\n\n let __typename =\n astNode.concreteType ?? networkResponseData[TYPENAME_FIELD_NAME];\n\n if (__typename == null) {\n throw new Error(\n 'Unexpected missing __typename in network response when normalizing a linked field. ' +\n 'This is indicative of a bug in Isograph.',\n );\n }\n\n targetParentRecord[parentRecordKey] = {\n __link: newStoreRecordId,\n __typename,\n };\n\n const link = getLink(existingValue);\n return link?.__link !== newStoreRecordId || link.__typename !== __typename;\n }\n}\n\n/**\n * Mutate targetParentRecord with a given linked field ast node.\n */\nfunction normalizeInlineFragment(\n environment: IsographEnvironment,\n storeLayer: StoreLayerWithData,\n astNode: NormalizationInlineFragment,\n networkResponseParentRecord: NetworkResponseObject,\n targetParentRecord: StoreRecord,\n targetParentRecordLink: StoreLink,\n variables: Variables,\n mutableEncounteredIds: EncounteredIds,\n): RecordHasBeenUpdated {\n const typeToRefineTo = astNode.type;\n if (networkResponseParentRecord[TYPENAME_FIELD_NAME] === typeToRefineTo) {\n const hasBeenModified = normalizeDataIntoRecord(\n environment,\n storeLayer,\n astNode.selections,\n networkResponseParentRecord,\n targetParentRecord,\n targetParentRecordLink,\n variables,\n mutableEncounteredIds,\n );\n return hasBeenModified;\n }\n return false;\n}\n\nfunction dataIdsAreTheSame(\n existingValue: DataTypeValueLinked,\n newDataIds: (StoreLink | null)[],\n): boolean {\n if (isArray(existingValue)) {\n if (newDataIds.length !== existingValue.length) {\n return false;\n }\n for (let i = 0; i < newDataIds.length; i++) {\n const maybeLink = getLink(existingValue[i]);\n if (\n newDataIds[i]?.__link !== maybeLink?.__link ||\n newDataIds[i]?.__typename !== maybeLink?.__typename\n ) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n}\n\nfunction normalizeNetworkResponseObject(\n environment: IsographEnvironment,\n storeLayer: StoreLayerWithData,\n astNode: NormalizationLinkedField,\n networkResponseData: NetworkResponseObject,\n targetParentRecordLink: StoreLink,\n variables: Variables,\n index: number | null,\n mutableEncounteredIds: EncounteredIds,\n): DataId /* The id of the modified or newly created item */ {\n const newStoreRecordId = getDataIdOfNetworkResponse(\n targetParentRecordLink,\n networkResponseData,\n astNode,\n variables,\n index,\n );\n const __typename =\n astNode.concreteType ?? networkResponseData[TYPENAME_FIELD_NAME];\n\n if (__typename == null) {\n throw new Error(\n 'Unexpected missing __typename in network response object. ' +\n 'This is indicative of a bug in Isograph.',\n );\n }\n\n const link = { __link: newStoreRecordId, __typename };\n const newStoreRecord = getMutableStoreRecordProxy(storeLayer, link);\n\n normalizeDataIntoRecord(\n environment,\n storeLayer,\n astNode.selections,\n networkResponseData,\n newStoreRecord,\n link,\n variables,\n mutableEncounteredIds,\n );\n\n return newStoreRecordId;\n}\n\ndeclare const LinkedParentRecordKeyBrand: unique symbol;\nexport type LinkedParentRecordKey = string & {\n brand?: Brand<undefined, typeof LinkedParentRecordKeyBrand>;\n};\n\ndeclare const ScalarParentRecordKeyBrand: unique symbol;\nexport type ScalarParentRecordKey = string & {\n brand?: Brand<undefined, typeof ScalarParentRecordKeyBrand>;\n};\n\nexport function getParentRecordKey(\n astNode: NormalizationLinkedField | ReaderLinkedField,\n variables: Variables,\n): LinkedParentRecordKey;\nexport function getParentRecordKey(\n astNode: NormalizationScalarField | ReaderScalarField,\n variables: Variables,\n): ScalarParentRecordKey;\nexport function getParentRecordKey(\n astNode:\n | NormalizationLinkedField\n | NormalizationScalarField\n | ReaderLinkedField\n | ReaderScalarField,\n variables: Variables,\n): string {\n let parentRecordKey = astNode.fieldName;\n const fieldParameters = astNode.arguments;\n if (fieldParameters != null) {\n for (const fieldParameter of fieldParameters) {\n parentRecordKey += getStoreKeyChunkForArgument(fieldParameter, variables);\n }\n }\n\n return parentRecordKey;\n}\n\nfunction getStoreKeyChunkForArgumentValue(\n argumentValue: ArgumentValue,\n variables: Variables,\n): VariableValue {\n switch (argumentValue.kind) {\n case 'Object': {\n return Object.fromEntries(\n argumentValue.value.map(([argumentName, argumentValue]) => {\n return [\n argumentName,\n // substitute variables\n getStoreKeyChunkForArgumentValue(argumentValue, variables),\n ];\n }),\n );\n }\n case 'Literal': {\n return argumentValue.value;\n }\n case 'Variable': {\n return variables[argumentValue.name] ?? 'null';\n }\n case 'String': {\n return argumentValue.value;\n }\n case 'Enum': {\n return argumentValue.value;\n }\n }\n}\n\nfunction getStoreKeyChunkForArgument(argument: Argument, variables: Variables) {\n const [argumentName, argumentValue] = argument;\n let chunk = getStoreKeyChunkForArgumentValue(argumentValue, variables);\n\n if (typeof chunk === 'object') {\n chunk = JSON.stringify(stableCopy(chunk));\n }\n\n return `${FIRST_SPLIT_KEY}${argumentName}${SECOND_SPLIT_KEY}${chunk}`;\n}\n\ndeclare const LinkedNetworkResponseKeyBrand: unique symbol;\nexport type LinkedNetworkResponseKey = string & {\n brand?: Brand<undefined, typeof LinkedNetworkResponseKeyBrand>;\n};\n\ndeclare const ScalarNetworkResponseKeyBrand: unique symbol;\nexport type ScalarNetworkResponseKey = string & {\n brand?: Brand<undefined, typeof ScalarNetworkResponseKeyBrand>;\n};\n\nfunction getNetworkResponseKey(\n astNode: NormalizationLinkedField,\n): LinkedNetworkResponseKey;\nfunction getNetworkResponseKey(\n astNode: NormalizationScalarField,\n): ScalarNetworkResponseKey;\nfunction getNetworkResponseKey(\n astNode: NormalizationLinkedField | NormalizationScalarField,\n): string {\n let networkResponseKey = astNode.fieldName;\n const fieldParameters = astNode.arguments;\n\n if (fieldParameters != null) {\n for (const [argumentName, argumentValue] of fieldParameters) {\n let argumentValueChunk = getArgumentValueChunk(argumentValue);\n networkResponseKey += `${FIRST_SPLIT_KEY}${argumentName}${SECOND_SPLIT_KEY}${argumentValueChunk}`;\n }\n }\n\n return networkResponseKey;\n}\n\nfunction getArgumentValueChunk(argumentValue: ArgumentValue): string {\n switch (argumentValue.kind) {\n case 'Object': {\n return (\n 'o_' +\n argumentValue.value\n .map(([argumentName, argumentValue]) => {\n return (\n argumentName +\n THIRD_SPLIT_KEY +\n getArgumentValueChunk(argumentValue)\n );\n })\n .join('_') +\n '_c'\n );\n }\n case 'Literal': {\n return 'l_' + argumentValue.value;\n }\n case 'Variable': {\n return 'v_' + argumentValue.name;\n }\n case 'String': {\n // replace all non-word characters (alphanumeric & underscore) with underscores\n return 's_' + argumentValue.value.replaceAll(/\\W/g, '_');\n }\n case 'Enum': {\n return 'e_' + argumentValue.value;\n }\n }\n}\n\n// an alias might be pullRequests____first___first____after___cursor\nexport const FIRST_SPLIT_KEY = '____';\nexport const SECOND_SPLIT_KEY = '___';\nexport const THIRD_SPLIT_KEY = '__';\n\n// Returns a key to look up an item in the store\nfunction getDataIdOfNetworkResponse(\n parentRecordLink: StoreLink,\n dataToNormalize: NetworkResponseObject,\n astNode: NormalizationLinkedField,\n variables: Variables,\n index: number | null,\n): DataId {\n const __typename =\n astNode.concreteType ?? dataToNormalize[TYPENAME_FIELD_NAME];\n if (__typename == null) {\n throw new Error(\n 'Unexpected missing __typename in network response when normalizing a linked field. ' +\n 'This is indicative of a bug in Isograph.',\n );\n }\n // If we are dealing with nested Query, use __ROOT as id\n // TODO do not hard code this value here\n if (__typename === 'Query') {\n return ROOT_ID;\n }\n\n // Check whether the dataToNormalize has an id field. If so, that is the key.\n // If not, we construct an id from the parentRecordId and the field parameters.\n\n const dataId = dataToNormalize.id;\n if (dataId != null) {\n return dataId;\n }\n\n let storeKey = `${parentRecordLink.__typename}:${parentRecordLink.__link}.${astNode.fieldName}`;\n if (index != null) {\n storeKey += `.${index}`;\n }\n\n const fieldParameters = astNode.arguments;\n if (fieldParameters == null) {\n return storeKey;\n }\n\n for (const fieldParameter of fieldParameters) {\n storeKey += getStoreKeyChunkForArgument(fieldParameter, variables);\n }\n return storeKey;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"cache.mjs","names":["dataIds: (StoreLink | null)[]","argumentValue"],"sources":["../../src/core/cache.ts"],"sourcesContent":["import { type Factory, ParentCache } from '@isograph/react-disposable-state';\nimport type { Brand } from './brand';\nimport type {\n NormalizationAstNodes,\n NormalizationInlineFragment,\n NormalizationLinkedField,\n NormalizationScalarField,\n} from './entrypoint';\nimport type {\n FragmentReference,\n UnknownTReadFromStore,\n Variables,\n VariableValue,\n} from './FragmentReference';\nimport {\n type DataId,\n type DataTypeValueLinked,\n getLink,\n type IsographEnvironment,\n ROOT_ID,\n type StoreLink,\n type StoreRecord,\n type TypeName,\n} from './IsographEnvironment';\nimport { logMessage } from './logging';\nimport {\n getMutableStoreRecordProxy,\n type StoreLayerWithData,\n} from './optimisticProxy';\nimport type { ReaderLinkedField, ReaderScalarField } from './reader';\nimport { type Argument, type ArgumentValue, isArray, stableCopy } from './util';\n\nexport const TYPENAME_FIELD_NAME = '__typename';\n\nexport function getOrCreateItemInSuspenseCache<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n>(\n environment: IsographEnvironment,\n index: string,\n factory: Factory<FragmentReference<TReadFromStore, TClientFieldValue>>,\n): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>> {\n if (environment.fragmentCache[index] == null) {\n environment.fragmentCache[index] = new ParentCache(factory);\n }\n\n return environment.fragmentCache[index];\n}\n\nexport type NetworkResponsePlural<T> =\n | null\n | T\n | readonly T[]\n | readonly (null | T)[];\nexport type NetworkResponseScalarValue = string | number | boolean | unknown;\n\nexport type NetworkResponseValue =\n | NetworkResponsePlural<NetworkResponseScalarValue>\n | NetworkResponsePlural<NetworkResponseObject>;\n\nexport type NetworkResponseObject = {\n // N.B. undefined is here to support optional id's, but\n // undefined should not *actually* be present in the network response.\n readonly [K in\n | ScalarNetworkResponseKey\n | LinkedNetworkResponseKey]: K extends ScalarNetworkResponseKey\n ? undefined | NetworkResponsePlural<NetworkResponseScalarValue>\n : undefined | NetworkResponsePlural<NetworkResponseObject>;\n} & {\n readonly id?: DataId;\n readonly __typename?: TypeName;\n};\n\nexport function normalizeData(\n environment: IsographEnvironment,\n storeLayer: StoreLayerWithData,\n normalizationAst: NormalizationAstNodes,\n networkResponse: NetworkResponseObject,\n variables: Variables,\n root: StoreLink,\n encounteredIds: EncounteredIds,\n): EncounteredIds {\n logMessage(environment, () => ({\n kind: 'AboutToNormalize',\n normalizationAst,\n networkResponse,\n variables,\n }));\n\n const newStoreRecord = getMutableStoreRecordProxy(storeLayer, root);\n\n normalizeDataIntoRecord(\n environment,\n storeLayer,\n normalizationAst,\n networkResponse,\n newStoreRecord,\n root,\n variables,\n encounteredIds,\n );\n\n return encounteredIds;\n}\n\nexport function subscribeToAnyChange(\n environment: IsographEnvironment,\n callback: () => void,\n): () => void {\n const subscription = {\n kind: 'AnyRecords',\n callback,\n } as const;\n environment.subscriptions.add(subscription);\n return () => environment.subscriptions.delete(subscription);\n}\n\nexport function subscribeToAnyChangesToRecord(\n environment: IsographEnvironment,\n recordLink: StoreLink,\n callback: () => void,\n): () => void {\n const subscription = {\n kind: 'AnyChangesToRecord',\n recordLink,\n callback,\n } as const;\n environment.subscriptions.add(subscription);\n return () => environment.subscriptions.delete(subscription);\n}\n\nexport function onNextChangeToRecord(\n environment: IsographEnvironment,\n recordLink: StoreLink,\n): Promise<void> {\n return new Promise((resolve) => {\n const unsubscribe = subscribeToAnyChangesToRecord(\n environment,\n recordLink,\n () => {\n unsubscribe();\n resolve();\n },\n );\n });\n}\n\nexport type EncounteredIds = Map<TypeName, Set<DataId>>;\n/**\n * Mutate targetParentRecord according to the normalizationAst and networkResponseParentRecord.\n */\nfunction normalizeDataIntoRecord(\n environment: IsographEnvironment,\n storeLayer: StoreLayerWithData,\n normalizationAst: NormalizationAstNodes,\n networkResponseParentRecord: NetworkResponseObject,\n targetParentRecord: StoreRecord,\n targetParentRecordLink: StoreLink,\n variables: Variables,\n mutableEncounteredIds: EncounteredIds,\n): RecordHasBeenUpdated {\n let recordHasBeenUpdated = false;\n for (const normalizationNode of normalizationAst) {\n switch (normalizationNode.kind) {\n case 'Scalar': {\n const scalarFieldResultedInChange = normalizeScalarField(\n normalizationNode,\n networkResponseParentRecord,\n targetParentRecord,\n variables,\n );\n recordHasBeenUpdated =\n recordHasBeenUpdated || scalarFieldResultedInChange;\n break;\n }\n case 'Linked': {\n const linkedFieldResultedInChange = normalizeLinkedField(\n environment,\n storeLayer,\n normalizationNode,\n networkResponseParentRecord,\n targetParentRecord,\n targetParentRecordLink,\n variables,\n mutableEncounteredIds,\n );\n recordHasBeenUpdated =\n recordHasBeenUpdated || linkedFieldResultedInChange;\n break;\n }\n case 'InlineFragment': {\n const inlineFragmentResultedInChange = normalizeInlineFragment(\n environment,\n storeLayer,\n normalizationNode,\n networkResponseParentRecord,\n targetParentRecord,\n targetParentRecordLink,\n variables,\n mutableEncounteredIds,\n );\n recordHasBeenUpdated =\n recordHasBeenUpdated || inlineFragmentResultedInChange;\n break;\n }\n }\n }\n if (recordHasBeenUpdated) {\n let encounteredRecordsIds = insertEmptySetIfMissing(\n mutableEncounteredIds,\n targetParentRecordLink.__typename,\n );\n\n encounteredRecordsIds.add(targetParentRecordLink.__link);\n }\n return recordHasBeenUpdated;\n}\n\nexport function insertEmptySetIfMissing<K, V>(map: Map<K, Set<V>>, key: K) {\n let result = map.get(key);\n if (result === undefined) {\n result = new Set();\n map.set(key, result);\n }\n return result;\n}\n\ntype RecordHasBeenUpdated = boolean;\nfunction normalizeScalarField(\n astNode: NormalizationScalarField,\n networkResponseParentRecord: NetworkResponseObject,\n targetStoreRecord: StoreRecord,\n variables: Variables,\n): RecordHasBeenUpdated {\n const networkResponseKey = getNetworkResponseKey(astNode);\n const networkResponseData = networkResponseParentRecord[networkResponseKey];\n const parentRecordKey = getParentRecordKey(astNode, variables);\n const existingValue = targetStoreRecord[parentRecordKey];\n\n if (networkResponseData == null) {\n targetStoreRecord[parentRecordKey] = null;\n return existingValue === undefined || existingValue != null;\n }\n\n targetStoreRecord[parentRecordKey] = networkResponseData;\n return existingValue !== networkResponseData;\n}\n\n/**\n * Mutate targetParentRecord with a given linked field ast node.\n */\nfunction normalizeLinkedField(\n environment: IsographEnvironment,\n storeLayer: StoreLayerWithData,\n astNode: NormalizationLinkedField,\n networkResponseParentRecord: NetworkResponseObject,\n targetParentRecord: StoreRecord,\n targetParentRecordLink: StoreLink,\n variables: Variables,\n mutableEncounteredIds: EncounteredIds,\n): RecordHasBeenUpdated {\n const networkResponseKey = getNetworkResponseKey(astNode);\n const networkResponseData = networkResponseParentRecord[networkResponseKey];\n const parentRecordKey = getParentRecordKey(astNode, variables);\n const existingValue = targetParentRecord[parentRecordKey];\n\n if (networkResponseData == null) {\n targetParentRecord[parentRecordKey] = null;\n return existingValue === undefined || existingValue != null;\n }\n\n if (isArray(networkResponseData)) {\n // TODO check astNode.plural or the like\n const dataIds: (StoreLink | null)[] = [];\n for (let i = 0; i < networkResponseData.length; i++) {\n const networkResponseObject = networkResponseData[i];\n if (networkResponseObject == null) {\n dataIds.push(null);\n continue;\n }\n const newStoreRecordId = normalizeNetworkResponseObject(\n environment,\n storeLayer,\n astNode,\n networkResponseObject,\n targetParentRecordLink,\n variables,\n i,\n mutableEncounteredIds,\n );\n\n const __typename =\n astNode.concreteType ?? networkResponseObject[TYPENAME_FIELD_NAME];\n if (__typename == null) {\n throw new Error(\n 'Unexpected missing __typename in network response when normalizing a linked field. ' +\n 'This is indicative of a bug in Isograph.',\n );\n }\n dataIds.push({\n __link: newStoreRecordId,\n __typename,\n });\n }\n targetParentRecord[parentRecordKey] = dataIds;\n return !dataIdsAreTheSame(existingValue, dataIds);\n } else {\n const newStoreRecordId = normalizeNetworkResponseObject(\n environment,\n storeLayer,\n astNode,\n networkResponseData,\n targetParentRecordLink,\n variables,\n null,\n mutableEncounteredIds,\n );\n\n let __typename =\n astNode.concreteType ?? networkResponseData[TYPENAME_FIELD_NAME];\n\n if (__typename == null) {\n throw new Error(\n 'Unexpected missing __typename in network response when normalizing a linked field. ' +\n 'This is indicative of a bug in Isograph.',\n );\n }\n\n targetParentRecord[parentRecordKey] = {\n __link: newStoreRecordId,\n __typename,\n };\n\n const link = getLink(existingValue);\n return link?.__link !== newStoreRecordId || link.__typename !== __typename;\n }\n}\n\n/**\n * Mutate targetParentRecord with a given linked field ast node.\n */\nfunction normalizeInlineFragment(\n environment: IsographEnvironment,\n storeLayer: StoreLayerWithData,\n astNode: NormalizationInlineFragment,\n networkResponseParentRecord: NetworkResponseObject,\n targetParentRecord: StoreRecord,\n targetParentRecordLink: StoreLink,\n variables: Variables,\n mutableEncounteredIds: EncounteredIds,\n): RecordHasBeenUpdated {\n const typeToRefineTo = astNode.type;\n if (networkResponseParentRecord[TYPENAME_FIELD_NAME] === typeToRefineTo) {\n const hasBeenModified = normalizeDataIntoRecord(\n environment,\n storeLayer,\n astNode.selections,\n networkResponseParentRecord,\n targetParentRecord,\n targetParentRecordLink,\n variables,\n mutableEncounteredIds,\n );\n return hasBeenModified;\n }\n return false;\n}\n\nfunction dataIdsAreTheSame(\n existingValue: DataTypeValueLinked,\n newDataIds: (StoreLink | null)[],\n): boolean {\n if (isArray(existingValue)) {\n if (newDataIds.length !== existingValue.length) {\n return false;\n }\n for (let i = 0; i < newDataIds.length; i++) {\n const maybeLink = getLink(existingValue[i]);\n if (\n newDataIds[i]?.__link !== maybeLink?.__link ||\n newDataIds[i]?.__typename !== maybeLink?.__typename\n ) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n}\n\nfunction normalizeNetworkResponseObject(\n environment: IsographEnvironment,\n storeLayer: StoreLayerWithData,\n astNode: NormalizationLinkedField,\n networkResponseData: NetworkResponseObject,\n targetParentRecordLink: StoreLink,\n variables: Variables,\n index: number | null,\n mutableEncounteredIds: EncounteredIds,\n): DataId /* The id of the modified or newly created item */ {\n const newStoreRecordId = getDataIdOfNetworkResponse(\n targetParentRecordLink,\n networkResponseData,\n astNode,\n variables,\n index,\n );\n const __typename =\n astNode.concreteType ?? networkResponseData[TYPENAME_FIELD_NAME];\n\n if (__typename == null) {\n throw new Error(\n 'Unexpected missing __typename in network response object. ' +\n 'This is indicative of a bug in Isograph.',\n );\n }\n\n const link = { __link: newStoreRecordId, __typename };\n const newStoreRecord = getMutableStoreRecordProxy(storeLayer, link);\n\n normalizeDataIntoRecord(\n environment,\n storeLayer,\n astNode.selections,\n networkResponseData,\n newStoreRecord,\n link,\n variables,\n mutableEncounteredIds,\n );\n\n return newStoreRecordId;\n}\n\ndeclare const LinkedParentRecordKeyBrand: unique symbol;\nexport type LinkedParentRecordKey = string & {\n brand?: Brand<undefined, typeof LinkedParentRecordKeyBrand>;\n};\n\ndeclare const ScalarParentRecordKeyBrand: unique symbol;\nexport type ScalarParentRecordKey = string & {\n brand?: Brand<undefined, typeof ScalarParentRecordKeyBrand>;\n};\n\nexport function getParentRecordKey(\n astNode: NormalizationLinkedField | ReaderLinkedField,\n variables: Variables,\n): LinkedParentRecordKey;\nexport function getParentRecordKey(\n astNode: NormalizationScalarField | ReaderScalarField,\n variables: Variables,\n): ScalarParentRecordKey;\nexport function getParentRecordKey(\n astNode:\n | NormalizationLinkedField\n | NormalizationScalarField\n | ReaderLinkedField\n | ReaderScalarField,\n variables: Variables,\n): string {\n let parentRecordKey = astNode.fieldName;\n const fieldParameters = astNode.arguments;\n if (fieldParameters != null) {\n for (const fieldParameter of fieldParameters) {\n parentRecordKey += getStoreKeyChunkForArgument(fieldParameter, variables);\n }\n }\n\n return parentRecordKey;\n}\n\nfunction getStoreKeyChunkForArgumentValue(\n argumentValue: ArgumentValue,\n variables: Variables,\n): VariableValue {\n switch (argumentValue.kind) {\n case 'Object': {\n return Object.fromEntries(\n argumentValue.value.map(([argumentName, argumentValue]) => {\n return [\n argumentName,\n // substitute variables\n getStoreKeyChunkForArgumentValue(argumentValue, variables),\n ];\n }),\n );\n }\n case 'Literal': {\n return argumentValue.value;\n }\n case 'Variable': {\n return variables[argumentValue.name] ?? 'null';\n }\n case 'String': {\n return argumentValue.value;\n }\n case 'Enum': {\n return argumentValue.value;\n }\n }\n}\n\nfunction getStoreKeyChunkForArgument(argument: Argument, variables: Variables) {\n const [argumentName, argumentValue] = argument;\n let chunk = getStoreKeyChunkForArgumentValue(argumentValue, variables);\n\n if (typeof chunk === 'object') {\n chunk = JSON.stringify(stableCopy(chunk));\n }\n\n return `${FIRST_SPLIT_KEY}${argumentName}${SECOND_SPLIT_KEY}${chunk}`;\n}\n\ndeclare const LinkedNetworkResponseKeyBrand: unique symbol;\nexport type LinkedNetworkResponseKey = string & {\n brand?: Brand<undefined, typeof LinkedNetworkResponseKeyBrand>;\n};\n\ndeclare const ScalarNetworkResponseKeyBrand: unique symbol;\nexport type ScalarNetworkResponseKey = string & {\n brand?: Brand<undefined, typeof ScalarNetworkResponseKeyBrand>;\n};\n\nfunction getNetworkResponseKey(\n astNode: NormalizationLinkedField,\n): LinkedNetworkResponseKey;\nfunction getNetworkResponseKey(\n astNode: NormalizationScalarField,\n): ScalarNetworkResponseKey;\nfunction getNetworkResponseKey(\n astNode: NormalizationLinkedField | NormalizationScalarField,\n): string {\n let networkResponseKey = astNode.fieldName;\n const fieldParameters = astNode.arguments;\n\n if (fieldParameters != null) {\n for (const [argumentName, argumentValue] of fieldParameters) {\n let argumentValueChunk = getArgumentValueChunk(argumentValue);\n networkResponseKey += `${FIRST_SPLIT_KEY}${argumentName}${SECOND_SPLIT_KEY}${argumentValueChunk}`;\n }\n }\n\n return networkResponseKey;\n}\n\nfunction getArgumentValueChunk(argumentValue: ArgumentValue): string {\n switch (argumentValue.kind) {\n case 'Object': {\n return (\n 'o_' +\n argumentValue.value\n .map(([argumentName, argumentValue]) => {\n return (\n argumentName +\n THIRD_SPLIT_KEY +\n getArgumentValueChunk(argumentValue)\n );\n })\n .join('_') +\n '_c'\n );\n }\n case 'Literal': {\n return 'l_' + argumentValue.value;\n }\n case 'Variable': {\n return 'v_' + argumentValue.name;\n }\n case 'String': {\n // replace all non-word characters (alphanumeric & underscore) with underscores\n return 's_' + argumentValue.value.replaceAll(/\\W/g, '_');\n }\n case 'Enum': {\n return 'e_' + argumentValue.value;\n }\n }\n}\n\n// an alias might be pullRequests____first___first____after___cursor\nexport const FIRST_SPLIT_KEY = '____';\nexport const SECOND_SPLIT_KEY = '___';\nexport const THIRD_SPLIT_KEY = '__';\n\n// Returns a key to look up an item in the store\nfunction getDataIdOfNetworkResponse(\n parentRecordLink: StoreLink,\n dataToNormalize: NetworkResponseObject,\n astNode: NormalizationLinkedField,\n variables: Variables,\n index: number | null,\n): DataId {\n // If we are dealing with nested Query, use __ROOT as id\n // TODO do not hard code this value here\n if (astNode.concreteType === 'Query') {\n return ROOT_ID;\n }\n\n // Check whether the dataToNormalize has an id field. If so, that is the key.\n // If not, we construct an id from the parentRecordId and the field parameters.\n\n const dataId = dataToNormalize.id;\n if (dataId != null) {\n return dataId;\n }\n\n let storeKey = `${parentRecordLink.__typename}:${parentRecordLink.__link}.${astNode.fieldName}`;\n if (index != null) {\n storeKey += `.${index}`;\n }\n\n const fieldParameters = astNode.arguments;\n if (fieldParameters == null) {\n return storeKey;\n }\n\n for (const fieldParameter of fieldParameters) {\n storeKey += getStoreKeyChunkForArgument(fieldParameter, variables);\n }\n return storeKey;\n}\n"],"mappings":";;;;;;;AAgCA,MAAa,sBAAsB;AAEnC,SAAgB,+BAId,aACA,OACA,SACmE;AACnE,KAAI,YAAY,cAAc,UAAU,KACtC,aAAY,cAAc,SAAS,IAAI,YAAY,QAAQ;AAG7D,QAAO,YAAY,cAAc;;AA2BnC,SAAgB,cACd,aACA,YACA,kBACA,iBACA,WACA,MACA,gBACgB;AAChB,YAAW,oBAAoB;EAC7B,MAAM;EACN;EACA;EACA;EACD,EAAE;AAIH,yBACE,aACA,YACA,kBACA,iBANqB,2BAA2B,YAAY,KAAK,EAQjE,MACA,WACA,eACD;AAED,QAAO;;AAGT,SAAgB,qBACd,aACA,UACY;CACZ,MAAM,eAAe;EACnB,MAAM;EACN;EACD;AACD,aAAY,cAAc,IAAI,aAAa;AAC3C,cAAa,YAAY,cAAc,OAAO,aAAa;;AAG7D,SAAgB,8BACd,aACA,YACA,UACY;CACZ,MAAM,eAAe;EACnB,MAAM;EACN;EACA;EACD;AACD,aAAY,cAAc,IAAI,aAAa;AAC3C,cAAa,YAAY,cAAc,OAAO,aAAa;;AAG7D,SAAgB,qBACd,aACA,YACe;AACf,QAAO,IAAI,SAAS,YAAY;EAC9B,MAAM,cAAc,8BAClB,aACA,kBACM;AACJ,gBAAa;AACb,YAAS;IAEZ;GACD;;;;;AAOJ,SAAS,wBACP,aACA,YACA,kBACA,6BACA,oBACA,wBACA,WACA,uBACsB;CACtB,IAAI,uBAAuB;AAC3B,MAAK,MAAM,qBAAqB,iBAC9B,SAAQ,kBAAkB,MAA1B;EACE,KAAK,UAAU;GACb,MAAM,8BAA8B,qBAClC,mBACA,6BACA,oBACA,UACD;AACD,0BACE,wBAAwB;AAC1B;;EAEF,KAAK,UAAU;GACb,MAAM,8BAA8B,qBAClC,aACA,YACA,mBACA,6BACA,oBACA,wBACA,WACA,sBACD;AACD,0BACE,wBAAwB;AAC1B;;EAEF,KAAK,kBAAkB;GACrB,MAAM,iCAAiC,wBACrC,aACA,YACA,mBACA,6BACA,oBACA,wBACA,WACA,sBACD;AACD,0BACE,wBAAwB;AAC1B;;;AAIN,KAAI,qBAMF,CAL4B,wBAC1B,uBACA,uBAAuB,WACxB,CAEqB,IAAI,uBAAuB,OAAO;AAE1D,QAAO;;AAGT,SAAgB,wBAA8B,KAAqB,KAAQ;CACzE,IAAI,SAAS,IAAI,IAAI,IAAI;AACzB,KAAI,WAAW,QAAW;AACxB,2BAAS,IAAI,KAAK;AAClB,MAAI,IAAI,KAAK,OAAO;;AAEtB,QAAO;;AAIT,SAAS,qBACP,SACA,6BACA,mBACA,WACsB;CAEtB,MAAM,sBAAsB,4BADD,sBAAsB,QAAQ;CAEzD,MAAM,kBAAkB,mBAAmB,SAAS,UAAU;CAC9D,MAAM,gBAAgB,kBAAkB;AAExC,KAAI,uBAAuB,MAAM;AAC/B,oBAAkB,mBAAmB;AACrC,SAAO,kBAAkB,UAAa,iBAAiB;;AAGzD,mBAAkB,mBAAmB;AACrC,QAAO,kBAAkB;;;;;AAM3B,SAAS,qBACP,aACA,YACA,SACA,6BACA,oBACA,wBACA,WACA,uBACsB;CAEtB,MAAM,sBAAsB,4BADD,sBAAsB,QAAQ;CAEzD,MAAM,kBAAkB,mBAAmB,SAAS,UAAU;CAC9D,MAAM,gBAAgB,mBAAmB;AAEzC,KAAI,uBAAuB,MAAM;AAC/B,qBAAmB,mBAAmB;AACtC,SAAO,kBAAkB,UAAa,iBAAiB;;AAGzD,KAAI,QAAQ,oBAAoB,EAAE;EAEhC,MAAMA,UAAgC,EAAE;AACxC,OAAK,IAAI,IAAI,GAAG,IAAI,oBAAoB,QAAQ,KAAK;GACnD,MAAM,wBAAwB,oBAAoB;AAClD,OAAI,yBAAyB,MAAM;AACjC,YAAQ,KAAK,KAAK;AAClB;;GAEF,MAAM,mBAAmB,+BACvB,aACA,YACA,SACA,uBACA,wBACA,WACA,GACA,sBACD;GAED,MAAM,aACJ,QAAQ,gBAAgB,sBAAsB;AAChD,OAAI,cAAc,KAChB,OAAM,IAAI,MACR,8HAED;AAEH,WAAQ,KAAK;IACX,QAAQ;IACR;IACD,CAAC;;AAEJ,qBAAmB,mBAAmB;AACtC,SAAO,CAAC,kBAAkB,eAAe,QAAQ;QAC5C;EACL,MAAM,mBAAmB,+BACvB,aACA,YACA,SACA,qBACA,wBACA,WACA,MACA,sBACD;EAED,IAAI,aACF,QAAQ,gBAAgB,oBAAoB;AAE9C,MAAI,cAAc,KAChB,OAAM,IAAI,MACR,8HAED;AAGH,qBAAmB,mBAAmB;GACpC,QAAQ;GACR;GACD;EAED,MAAM,OAAO,QAAQ,cAAc;AACnC,SAAO,MAAM,WAAW,oBAAoB,KAAK,eAAe;;;;;;AAOpE,SAAS,wBACP,aACA,YACA,SACA,6BACA,oBACA,wBACA,WACA,uBACsB;CACtB,MAAM,iBAAiB,QAAQ;AAC/B,KAAI,4BAA4B,yBAAyB,eAWvD,QAVwB,wBACtB,aACA,YACA,QAAQ,YACR,6BACA,oBACA,wBACA,WACA,sBACD;AAGH,QAAO;;AAGT,SAAS,kBACP,eACA,YACS;AACT,KAAI,QAAQ,cAAc,EAAE;AAC1B,MAAI,WAAW,WAAW,cAAc,OACtC,QAAO;AAET,OAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;GAC1C,MAAM,YAAY,QAAQ,cAAc,GAAG;AAC3C,OACE,WAAW,IAAI,WAAW,WAAW,UACrC,WAAW,IAAI,eAAe,WAAW,WAEzC,QAAO;;AAGX,SAAO;OAEP,QAAO;;AAIX,SAAS,+BACP,aACA,YACA,SACA,qBACA,wBACA,WACA,OACA,uBAC2D;CAC3D,MAAM,mBAAmB,2BACvB,wBACA,qBACA,SACA,WACA,MACD;CACD,MAAM,aACJ,QAAQ,gBAAgB,oBAAoB;AAE9C,KAAI,cAAc,KAChB,OAAM,IAAI,MACR,qGAED;CAGH,MAAM,OAAO;EAAE,QAAQ;EAAkB;EAAY;CACrD,MAAM,iBAAiB,2BAA2B,YAAY,KAAK;AAEnE,yBACE,aACA,YACA,QAAQ,YACR,qBACA,gBACA,MACA,WACA,sBACD;AAED,QAAO;;AAqBT,SAAgB,mBACd,SAKA,WACQ;CACR,IAAI,kBAAkB,QAAQ;CAC9B,MAAM,kBAAkB,QAAQ;AAChC,KAAI,mBAAmB,KACrB,MAAK,MAAM,kBAAkB,gBAC3B,oBAAmB,4BAA4B,gBAAgB,UAAU;AAI7E,QAAO;;AAGT,SAAS,iCACP,eACA,WACe;AACf,SAAQ,cAAc,MAAtB;EACE,KAAK,SACH,QAAO,OAAO,YACZ,cAAc,MAAM,KAAK,CAAC,cAAcC,qBAAmB;AACzD,UAAO,CACL,cAEA,iCAAiCA,iBAAe,UAAU,CAC3D;IACD,CACH;EAEH,KAAK,UACH,QAAO,cAAc;EAEvB,KAAK,WACH,QAAO,UAAU,cAAc,SAAS;EAE1C,KAAK,SACH,QAAO,cAAc;EAEvB,KAAK,OACH,QAAO,cAAc;;;AAK3B,SAAS,4BAA4B,UAAoB,WAAsB;CAC7E,MAAM,CAAC,cAAc,iBAAiB;CACtC,IAAI,QAAQ,iCAAiC,eAAe,UAAU;AAEtE,KAAI,OAAO,UAAU,SACnB,SAAQ,KAAK,UAAU,WAAW,MAAM,CAAC;AAG3C,QAAO,GAAG,kBAAkB,eAAe,mBAAmB;;AAmBhE,SAAS,sBACP,SACQ;CACR,IAAI,qBAAqB,QAAQ;CACjC,MAAM,kBAAkB,QAAQ;AAEhC,KAAI,mBAAmB,KACrB,MAAK,MAAM,CAAC,cAAc,kBAAkB,iBAAiB;EAC3D,IAAI,qBAAqB,sBAAsB,cAAc;AAC7D,wBAAsB,GAAG,kBAAkB,eAAe,mBAAmB;;AAIjF,QAAO;;AAGT,SAAS,sBAAsB,eAAsC;AACnE,SAAQ,cAAc,MAAtB;EACE,KAAK,SACH,QACE,OACA,cAAc,MACX,KAAK,CAAC,cAAcA,qBAAmB;AACtC,UACE,eACA,kBACA,sBAAsBA,gBAAc;IAEtC,CACD,KAAK,IAAI,GACZ;EAGJ,KAAK,UACH,QAAO,OAAO,cAAc;EAE9B,KAAK,WACH,QAAO,OAAO,cAAc;EAE9B,KAAK,SAEH,QAAO,OAAO,cAAc,MAAM,WAAW,OAAO,IAAI;EAE1D,KAAK,OACH,QAAO,OAAO,cAAc;;;AAMlC,MAAa,kBAAkB;AAC/B,MAAa,mBAAmB;AAChC,MAAa,kBAAkB;AAG/B,SAAS,2BACP,kBACA,iBACA,SACA,WACA,OACQ;AAGR,KAAI,QAAQ,iBAAiB,QAC3B,QAAO;CAMT,MAAM,SAAS,gBAAgB;AAC/B,KAAI,UAAU,KACZ,QAAO;CAGT,IAAI,WAAW,GAAG,iBAAiB,WAAW,GAAG,iBAAiB,OAAO,GAAG,QAAQ;AACpF,KAAI,SAAS,KACX,aAAY,IAAI;CAGlB,MAAM,kBAAkB,QAAQ;AAChC,KAAI,mBAAmB,KACrB,QAAO;AAGT,MAAK,MAAM,kBAAkB,gBAC3B,aAAY,4BAA4B,gBAAgB,UAAU;AAEpE,QAAO"}
@@ -11,11 +11,16 @@ type ReaderWithRefetchQueries<TReadFromStore extends UnknownTReadFromStore, TCli
11
11
  readonly readerArtifact: TopLevelReaderArtifact<TReadFromStore, TClientFieldValue, any>;
12
12
  readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];
13
13
  };
14
+ type RawReaderWithRefetchQueries<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue> = {
15
+ readonly kind: 'ReaderWithRefetchQueries';
16
+ readonly readerArtifact: () => TopLevelReaderArtifact<TReadFromStore, TClientFieldValue, any>;
17
+ readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];
18
+ };
14
19
  type ReaderWithRefetchQueriesLoader<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue> = {
15
20
  readonly kind: 'ReaderWithRefetchQueriesLoader';
16
21
  readonly fieldName: ComponentOrFieldName;
17
22
  readonly readerArtifactKind: 'EagerReaderArtifact' | 'ComponentReaderArtifact';
18
- readonly loader: () => Promise<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>>;
23
+ readonly loader: () => Promise<RawReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>>;
19
24
  };
20
25
  type NetworkRequestInfo<TNormalizationAst> = {
21
26
  readonly kind: 'NetworkRequestInfo';
@@ -39,7 +44,7 @@ type IsographPersistedOperationExtraInfo = {
39
44
  type IsographEntrypoint<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType extends NetworkResponseObject> = {
40
45
  readonly kind: 'Entrypoint';
41
46
  readonly networkRequestInfo: NetworkRequestInfo<TNormalizationAst>;
42
- readonly readerWithRefetchQueries: ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue> | ReaderWithRefetchQueriesLoader<TReadFromStore, TClientFieldValue>;
47
+ readonly readerWithRefetchQueries: RawReaderWithRefetchQueries<TReadFromStore, TClientFieldValue> | ReaderWithRefetchQueriesLoader<TReadFromStore, TClientFieldValue>;
43
48
  readonly concreteType: TypeName;
44
49
  /**
45
50
  * This field exists solely for typechecking, and will not exist at runtime.
@@ -1 +1 @@
1
- {"version":3,"file":"entrypoint.d.mts","names":[],"sources":["../../src/core/entrypoint.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"entrypoint.d.mts","names":[],"sources":["../../src/core/entrypoint.ts"],"sourcesContent":[],"mappings":"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"}
@@ -11,11 +11,16 @@ type ReaderWithRefetchQueries<TReadFromStore extends UnknownTReadFromStore, TCli
11
11
  readonly readerArtifact: TopLevelReaderArtifact<TReadFromStore, TClientFieldValue, any>;
12
12
  readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];
13
13
  };
14
+ type RawReaderWithRefetchQueries<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue> = {
15
+ readonly kind: 'ReaderWithRefetchQueries';
16
+ readonly readerArtifact: () => TopLevelReaderArtifact<TReadFromStore, TClientFieldValue, any>;
17
+ readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];
18
+ };
14
19
  type ReaderWithRefetchQueriesLoader<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue> = {
15
20
  readonly kind: 'ReaderWithRefetchQueriesLoader';
16
21
  readonly fieldName: ComponentOrFieldName;
17
22
  readonly readerArtifactKind: 'EagerReaderArtifact' | 'ComponentReaderArtifact';
18
- readonly loader: () => Promise<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>>;
23
+ readonly loader: () => Promise<RawReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>>;
19
24
  };
20
25
  type NetworkRequestInfo<TNormalizationAst> = {
21
26
  readonly kind: 'NetworkRequestInfo';
@@ -39,7 +44,7 @@ type IsographPersistedOperationExtraInfo = {
39
44
  type IsographEntrypoint<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType extends NetworkResponseObject> = {
40
45
  readonly kind: 'Entrypoint';
41
46
  readonly networkRequestInfo: NetworkRequestInfo<TNormalizationAst>;
42
- readonly readerWithRefetchQueries: ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue> | ReaderWithRefetchQueriesLoader<TReadFromStore, TClientFieldValue>;
47
+ readonly readerWithRefetchQueries: RawReaderWithRefetchQueries<TReadFromStore, TClientFieldValue> | ReaderWithRefetchQueriesLoader<TReadFromStore, TClientFieldValue>;
43
48
  readonly concreteType: TypeName;
44
49
  /**
45
50
  * This field exists solely for typechecking, and will not exist at runtime.
@@ -1 +1 @@
1
- {"version":3,"file":"entrypoint.d.ts","names":[],"sources":["../../src/core/entrypoint.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"entrypoint.d.ts","names":[],"sources":["../../src/core/entrypoint.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"entrypoint.mjs","names":[],"sources":["../../src/core/entrypoint.ts"],"sourcesContent":["import type { Contravariant, PhantomData } from './brand';\nimport type { NetworkResponseObject } from './cache';\nimport type {\n FragmentReference,\n UnknownTReadFromStore,\n} from './FragmentReference';\nimport type { ComponentOrFieldName, TypeName } from './IsographEnvironment';\nimport type { TopLevelReaderArtifact } from './reader';\nimport type { Arguments } from './util';\n\nexport type ReaderWithRefetchQueries<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n> = {\n readonly kind: 'ReaderWithRefetchQueries';\n readonly readerArtifact: TopLevelReaderArtifact<\n TReadFromStore,\n TClientFieldValue,\n // TODO don't type this as any\n any\n >;\n readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];\n};\n\nexport type ReaderWithRefetchQueriesLoader<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n> = {\n readonly kind: 'ReaderWithRefetchQueriesLoader';\n readonly fieldName: ComponentOrFieldName;\n readonly readerArtifactKind:\n | 'EagerReaderArtifact'\n | 'ComponentReaderArtifact';\n readonly loader: () => Promise<\n ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>\n >;\n};\n\nexport type NetworkRequestInfo<TNormalizationAst> = {\n readonly kind: 'NetworkRequestInfo';\n readonly operation: IsographOperation | IsographPersistedOperation;\n readonly normalizationAst: TNormalizationAst;\n};\n\nexport type IsographOperation = {\n readonly kind: 'Operation';\n readonly text: string;\n};\n\nexport type IsographPersistedOperation = {\n readonly kind: 'PersistedOperation';\n readonly operationId: string;\n readonly extraInfo: IsographPersistedOperationExtraInfo | null;\n};\n\nexport type IsographPersistedOperationExtraInfo = {\n readonly kind: 'PersistedOperationExtraInfo';\n readonly operationName: string | null;\n readonly operationKind: 'Query' | 'Mutation' | 'Subscription';\n};\n\n// This type should be treated as an opaque type.\nexport type IsographEntrypoint<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n> = {\n readonly kind: 'Entrypoint';\n readonly networkRequestInfo: NetworkRequestInfo<TNormalizationAst>;\n readonly readerWithRefetchQueries:\n | ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>\n | ReaderWithRefetchQueriesLoader<TReadFromStore, TClientFieldValue>;\n readonly concreteType: TypeName;\n /**\n * This field exists solely for typechecking, and will not exist at runtime.\n */\n readonly '~TRawResponseType'?: PhantomData<Contravariant<TRawResponseType>>;\n};\n\nexport type FragmentReferenceOfEntrypoint<\n TEntrypoint extends IsographEntrypoint<any, any, any, any>,\n> = FragmentReference<\n ExtractReadFromStore<TEntrypoint>,\n ExtractClientFieldValue<TEntrypoint>\n>;\n\nexport type IsographEntrypointLoader<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TRawResponseType extends NetworkResponseObject,\n> = {\n readonly kind: 'EntrypointLoader';\n readonly typeAndField: string;\n readonly readerArtifactKind:\n | 'EagerReaderArtifact'\n | 'ComponentReaderArtifact';\n readonly loader: () => Promise<\n IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n NormalizationAst,\n TRawResponseType\n >\n >;\n};\n\nexport type NormalizationAstNode =\n | NormalizationScalarField\n | NormalizationLinkedField\n | NormalizationInlineFragment;\n\nexport type NormalizationAstNodes = ReadonlyArray<NormalizationAstNode>;\n\nexport type NormalizationAst = {\n readonly kind: 'NormalizationAst';\n readonly selections: NormalizationAstNodes;\n};\n\nexport type NormalizationAstLoader = {\n readonly kind: 'NormalizationAstLoader';\n readonly loader: () => Promise<NormalizationAst>;\n};\n\nexport type NormalizationScalarField = {\n readonly kind: 'Scalar';\n readonly fieldName: string;\n readonly arguments: Arguments | null;\n};\n\nexport type NormalizationLinkedField = {\n readonly kind: 'Linked';\n readonly fieldName: string;\n readonly arguments: Arguments | null;\n readonly selections: NormalizationAstNodes;\n readonly concreteType: TypeName | null;\n};\n\nexport type NormalizationInlineFragment = {\n readonly kind: 'InlineFragment';\n readonly type: string;\n readonly selections: NormalizationAstNodes;\n};\n\n// This is more like an entrypoint, but one specifically for a refetch query/mutation\nexport type RefetchQueryNormalizationArtifact = {\n readonly kind: 'RefetchQuery';\n readonly networkRequestInfo: NetworkRequestInfo<NormalizationAst>;\n readonly concreteType: TypeName;\n};\n\n// TODO rename\nexport type RefetchQueryNormalizationArtifactWrapper = {\n readonly artifact: RefetchQueryNormalizationArtifact;\n readonly allowedVariables: string[];\n};\n\nexport function assertIsEntrypoint<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n>(\n value:\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n >\n | ((_: any) => any)\n // Temporarily, allow any here. Once we automatically provide\n // types to entrypoints, we probably don't need this.\n | any,\n): asserts value is IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n> {\n if (typeof value === 'function') throw new Error('Not a string');\n}\n\nexport type ExtractReadFromStore<Type> =\n Type extends IsographEntrypoint<infer X, any, any, any> ? X : never;\nexport type ExtractClientFieldValue<Type> =\n Type extends IsographEntrypoint<any, infer X, any, any> ? X : never;\nexport type ExtractRawResponseType<Type> =\n Type extends IsographEntrypoint<any, any, any, infer X> ? X : never;\nexport type ExtractResolverResult<Type> =\n Type extends IsographEntrypoint<any, infer X, any, any> ? X : never;\nexport type ExtractProps<Type> = Type extends React.FC<infer X> ? X : never;\n"],"mappings":";AA6JA,SAAgB,mBAMd,OAgBA;AACA,KAAI,OAAO,UAAU,WAAY,OAAM,IAAI,MAAM,eAAe"}
1
+ {"version":3,"file":"entrypoint.mjs","names":[],"sources":["../../src/core/entrypoint.ts"],"sourcesContent":["import type { Contravariant, PhantomData } from './brand';\nimport type { NetworkResponseObject } from './cache';\nimport type {\n FragmentReference,\n UnknownTReadFromStore,\n} from './FragmentReference';\nimport type { ComponentOrFieldName, TypeName } from './IsographEnvironment';\nimport type { TopLevelReaderArtifact } from './reader';\nimport type { Arguments } from './util';\n\nexport type ReaderWithRefetchQueries<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n> = {\n readonly kind: 'ReaderWithRefetchQueries';\n readonly readerArtifact: TopLevelReaderArtifact<\n TReadFromStore,\n TClientFieldValue,\n // TODO don't type this as any\n any\n >;\n readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];\n};\n\nexport type RawReaderWithRefetchQueries<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n> = {\n readonly kind: 'ReaderWithRefetchQueries';\n readonly readerArtifact: () => TopLevelReaderArtifact<\n TReadFromStore,\n TClientFieldValue,\n // TODO don't type this as any\n any\n >;\n readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];\n};\n\nexport type ReaderWithRefetchQueriesLoader<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n> = {\n readonly kind: 'ReaderWithRefetchQueriesLoader';\n readonly fieldName: ComponentOrFieldName;\n readonly readerArtifactKind:\n | 'EagerReaderArtifact'\n | 'ComponentReaderArtifact';\n readonly loader: () => Promise<\n RawReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>\n >;\n};\n\nexport type NetworkRequestInfo<TNormalizationAst> = {\n readonly kind: 'NetworkRequestInfo';\n readonly operation: IsographOperation | IsographPersistedOperation;\n readonly normalizationAst: TNormalizationAst;\n};\n\nexport type IsographOperation = {\n readonly kind: 'Operation';\n readonly text: string;\n};\n\nexport type IsographPersistedOperation = {\n readonly kind: 'PersistedOperation';\n readonly operationId: string;\n readonly extraInfo: IsographPersistedOperationExtraInfo | null;\n};\n\nexport type IsographPersistedOperationExtraInfo = {\n readonly kind: 'PersistedOperationExtraInfo';\n readonly operationName: string | null;\n readonly operationKind: 'Query' | 'Mutation' | 'Subscription';\n};\n\n// This type should be treated as an opaque type.\nexport type IsographEntrypoint<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n> = {\n readonly kind: 'Entrypoint';\n readonly networkRequestInfo: NetworkRequestInfo<TNormalizationAst>;\n readonly readerWithRefetchQueries:\n | RawReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>\n | ReaderWithRefetchQueriesLoader<TReadFromStore, TClientFieldValue>;\n readonly concreteType: TypeName;\n /**\n * This field exists solely for typechecking, and will not exist at runtime.\n */\n readonly '~TRawResponseType'?: PhantomData<Contravariant<TRawResponseType>>;\n};\n\nexport type FragmentReferenceOfEntrypoint<\n TEntrypoint extends IsographEntrypoint<any, any, any, any>,\n> = FragmentReference<\n ExtractReadFromStore<TEntrypoint>,\n ExtractClientFieldValue<TEntrypoint>\n>;\n\nexport type IsographEntrypointLoader<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TRawResponseType extends NetworkResponseObject,\n> = {\n readonly kind: 'EntrypointLoader';\n readonly typeAndField: string;\n readonly readerArtifactKind:\n | 'EagerReaderArtifact'\n | 'ComponentReaderArtifact';\n readonly loader: () => Promise<\n IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n NormalizationAst,\n TRawResponseType\n >\n >;\n};\n\nexport type NormalizationAstNode =\n | NormalizationScalarField\n | NormalizationLinkedField\n | NormalizationInlineFragment;\n\nexport type NormalizationAstNodes = ReadonlyArray<NormalizationAstNode>;\n\nexport type NormalizationAst = {\n readonly kind: 'NormalizationAst';\n readonly selections: NormalizationAstNodes;\n};\n\nexport type NormalizationAstLoader = {\n readonly kind: 'NormalizationAstLoader';\n readonly loader: () => Promise<NormalizationAst>;\n};\n\nexport type NormalizationScalarField = {\n readonly kind: 'Scalar';\n readonly fieldName: string;\n readonly arguments: Arguments | null;\n};\n\nexport type NormalizationLinkedField = {\n readonly kind: 'Linked';\n readonly fieldName: string;\n readonly arguments: Arguments | null;\n readonly selections: NormalizationAstNodes;\n readonly concreteType: TypeName | null;\n};\n\nexport type NormalizationInlineFragment = {\n readonly kind: 'InlineFragment';\n readonly type: string;\n readonly selections: NormalizationAstNodes;\n};\n\n// This is more like an entrypoint, but one specifically for a refetch query/mutation\nexport type RefetchQueryNormalizationArtifact = {\n readonly kind: 'RefetchQuery';\n readonly networkRequestInfo: NetworkRequestInfo<NormalizationAst>;\n readonly concreteType: TypeName;\n};\n\n// TODO rename\nexport type RefetchQueryNormalizationArtifactWrapper = {\n readonly artifact: RefetchQueryNormalizationArtifact;\n readonly allowedVariables: string[];\n};\n\nexport function assertIsEntrypoint<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n>(\n value:\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n >\n | ((_: any) => any)\n // Temporarily, allow any here. Once we automatically provide\n // types to entrypoints, we probably don't need this.\n | any,\n): asserts value is IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n> {\n if (typeof value === 'function') throw new Error('Not a string');\n}\n\nexport type ExtractReadFromStore<Type> =\n Type extends IsographEntrypoint<infer X, any, any, any> ? X : never;\nexport type ExtractClientFieldValue<Type> =\n Type extends IsographEntrypoint<any, infer X, any, any> ? X : never;\nexport type ExtractRawResponseType<Type> =\n Type extends IsographEntrypoint<any, any, any, infer X> ? X : never;\nexport type ExtractResolverResult<Type> =\n Type extends IsographEntrypoint<any, infer X, any, any> ? X : never;\nexport type ExtractProps<Type> = Type extends React.FC<infer X> ? X : never;\n"],"mappings":";AA2KA,SAAgB,mBAMd,OAgBA;AACA,KAAI,OAAO,UAAU,WAAY,OAAM,IAAI,MAAM,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"logging.d.ts","names":[],"sources":["../../src/core/logging.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;AA8BA;;;;;;;;;;AA6BiB,KA7BL,UAAA,GA6BK;EAgBL,IAAA,EAAA,kBAAA;EACO,gBAAA,EA3CK,qBA2CL;EAEF,eAAA,EA5CM,qBA4CN;EACA,SAAA,EA5CA,SA4CA;CAID,GAAA;EAEJ,IAAA,EAAA,oBAAA;EAQE,KAAA,EAtDD,UAsDC;EAWI,cAAA,EAhEI,cAgEJ;CAAc,GAAA;EAOpB,IAAA,EAAA,mBAAW;EAGX,iBAAA,EAtEa,iBAuElB,CAAA,GAAA,EAAA,GAAW,CAAA;EAGF,GAAA,EAAA,MAAA;EAcA,GAAA,EAAA,MAAA;EACD,WAAA,EAAA,OAAA;CACR,GAAA;EACJ,IAAA,EAAA,qBAAA;EAAS,aAAA,EAAA,MAAA;YAnFI;;;YAKN,oCACA;aACO;;;;;;;;;;;;QAgBL;eACO;;aAEF;aACA;;;YAID;;QAEJ;;;;;;UAQE;;;;;;;;cAWI;;;;;KAON,WAAA,gBAA2B;KAG3B,kBAAA;OACL;;iBAGS,UAAA,cACD,uCACK;iBAYJ,cAAA,cACD,0BACR,cACJ"}
1
+ {"version":3,"file":"logging.d.ts","names":[],"sources":["../../src/core/logging.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;AA8BA;;;;;;;;;;AA6BiB,KA7BL,UAAA,GA6BK;EAgBL,IAAA,EAAA,kBAAA;EACO,gBAAA,EA3CK,qBA2CL;EAEF,eAAA,EA5CM,qBA4CN;EACA,SAAA,EA5CA,SA4CA;CAID,GAAA;EAEJ,IAAA,EAAA,oBAAA;EAQE,KAAA,EAtDD,UAsDC;EAWI,cAAA,EAhEI,cAgEJ;CAAc,GAAA;EAOpB,IAAA,EAAA,mBAAW;EAGX,iBAAA,EAtEa,iBAuElB,CAAA,GAAA,EAAA,GAAA,CAAW;EAGF,GAAA,EAAA,MAAA;EAcA,GAAA,EAAA,MAAA;EACD,WAAA,EAAA,OAAA;CACR,GAAA;EACJ,IAAA,EAAA,qBAAA;EAAS,aAAA,EAAA,MAAA;YAnFI;;;YAKN,oCACA;aACO;;;;;;;;;;;;QAgBL;eACO;;aAEF;aACA;;;YAID;;QAEJ;;;;;;UAQE;;;;;;;;cAWI;;;;;KAON,WAAA,gBAA2B;KAG3B,kBAAA;OACL;;iBAGS,UAAA,cACD,uCACK;iBAYJ,cAAA,cACD,0BACR,cACJ"}
@@ -114,25 +114,25 @@ function readDataForOnComplete(artifact, environment, root, variables, readerWit
114
114
  suspendIfInFlight: false,
115
115
  throwOnNetworkError: false
116
116
  };
117
- const resolvedReaderWithRefetchQueries = readerWithRefetchQueries;
117
+ if (readerWithRefetchQueries == null) throw new Error("Expected readerWithRefetchQueries to be not null. This is indicative of a bug in Isograph.");
118
118
  const fragment = {
119
119
  kind: "FragmentReference",
120
- readerWithRefetchQueries: require_PromiseWrapper.wrapResolvedValue(resolvedReaderWithRefetchQueries),
121
- fieldName: resolvedReaderWithRefetchQueries.readerArtifact.fieldName,
122
- readerArtifactKind: resolvedReaderWithRefetchQueries.readerArtifact.kind,
120
+ readerWithRefetchQueries: require_PromiseWrapper.wrapResolvedValue(readerWithRefetchQueries),
121
+ fieldName: readerWithRefetchQueries.readerArtifact.fieldName,
122
+ readerArtifactKind: readerWithRefetchQueries.readerArtifact.kind,
123
123
  root,
124
124
  variables,
125
125
  networkRequest: fakeNetworkRequest
126
126
  };
127
127
  const fragmentResult = require_read.readButDoNotEvaluate(environment, fragment, fakeNetworkRequestOptions).item;
128
- const readerArtifact = resolvedReaderWithRefetchQueries.readerArtifact;
128
+ const readerArtifact = readerWithRefetchQueries.readerArtifact;
129
129
  switch (readerArtifact.kind) {
130
130
  case "ComponentReaderArtifact": return require_componentCache.getOrCreateCachedComponent(environment, {
131
131
  kind: "FragmentReference",
132
132
  readerWithRefetchQueries: require_PromiseWrapper.wrapResolvedValue({
133
133
  kind: "ReaderWithRefetchQueries",
134
134
  readerArtifact,
135
- nestedRefetchQueries: resolvedReaderWithRefetchQueries.nestedRefetchQueries
135
+ nestedRefetchQueries: readerWithRefetchQueries.nestedRefetchQueries
136
136
  }),
137
137
  fieldName: readerArtifact.fieldName,
138
138
  readerArtifactKind: readerArtifact.kind,
@@ -114,25 +114,25 @@ function readDataForOnComplete(artifact, environment, root, variables, readerWit
114
114
  suspendIfInFlight: false,
115
115
  throwOnNetworkError: false
116
116
  };
117
- const resolvedReaderWithRefetchQueries = readerWithRefetchQueries;
117
+ if (readerWithRefetchQueries == null) throw new Error("Expected readerWithRefetchQueries to be not null. This is indicative of a bug in Isograph.");
118
118
  const fragment = {
119
119
  kind: "FragmentReference",
120
- readerWithRefetchQueries: wrapResolvedValue(resolvedReaderWithRefetchQueries),
121
- fieldName: resolvedReaderWithRefetchQueries.readerArtifact.fieldName,
122
- readerArtifactKind: resolvedReaderWithRefetchQueries.readerArtifact.kind,
120
+ readerWithRefetchQueries: wrapResolvedValue(readerWithRefetchQueries),
121
+ fieldName: readerWithRefetchQueries.readerArtifact.fieldName,
122
+ readerArtifactKind: readerWithRefetchQueries.readerArtifact.kind,
123
123
  root,
124
124
  variables,
125
125
  networkRequest: fakeNetworkRequest
126
126
  };
127
127
  const fragmentResult = readButDoNotEvaluate(environment, fragment, fakeNetworkRequestOptions).item;
128
- const readerArtifact = resolvedReaderWithRefetchQueries.readerArtifact;
128
+ const readerArtifact = readerWithRefetchQueries.readerArtifact;
129
129
  switch (readerArtifact.kind) {
130
130
  case "ComponentReaderArtifact": return getOrCreateCachedComponent(environment, {
131
131
  kind: "FragmentReference",
132
132
  readerWithRefetchQueries: wrapResolvedValue({
133
133
  kind: "ReaderWithRefetchQueries",
134
134
  readerArtifact,
135
- nestedRefetchQueries: resolvedReaderWithRefetchQueries.nestedRefetchQueries
135
+ nestedRefetchQueries: readerWithRefetchQueries.nestedRefetchQueries
136
136
  }),
137
137
  fieldName: readerArtifact.fieldName,
138
138
  readerArtifactKind: readerArtifact.kind,