@isograph/react 0.5.2 → 0.5.4
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.
- package/.turbo/turbo-compile-libs.log +9 -6
- package/.turbo/turbo-tsc.log +5 -0
- package/dist/_virtual/{rolldown_runtime.js → rolldown_runtime.cjs} +10 -6
- package/dist/core/{FragmentReference.js → FragmentReference.cjs} +1 -1
- package/dist/core/{FragmentReference.d.ts → FragmentReference.d.cts} +5 -5
- package/dist/core/FragmentReference.d.cts.map +1 -0
- package/dist/core/FragmentReference.d.mts.map +1 -1
- package/dist/core/{IsographEnvironment.js → IsographEnvironment.cjs} +19 -9
- package/dist/core/{IsographEnvironment.d.ts → IsographEnvironment.d.cts} +19 -15
- package/dist/core/IsographEnvironment.d.cts.map +1 -0
- package/dist/core/IsographEnvironment.d.mts +9 -5
- package/dist/core/IsographEnvironment.d.mts.map +1 -1
- package/dist/core/IsographEnvironment.mjs +17 -7
- package/dist/core/IsographEnvironment.mjs.map +1 -1
- package/dist/core/{PromiseWrapper.d.ts → PromiseWrapper.d.cts} +1 -1
- package/dist/core/PromiseWrapper.d.cts.map +1 -0
- package/dist/core/PromiseWrapper.d.mts.map +1 -1
- package/dist/core/PromiseWrapper.mjs.map +1 -1
- package/dist/core/{areEqualWithDeepComparison.js → areEqualWithDeepComparison.cjs} +7 -7
- package/dist/core/areEqualWithDeepComparison.mjs +7 -7
- package/dist/core/areEqualWithDeepComparison.mjs.map +1 -1
- package/dist/core/{brand.d.ts → brand.d.cts} +2 -2
- package/dist/core/brand.d.cts.map +1 -0
- package/dist/core/brand.d.mts +1 -1
- package/dist/core/brand.d.mts.map +1 -1
- package/dist/core/{cache.js → cache.cjs} +16 -29
- package/dist/core/cache.d.cts +44 -0
- package/dist/core/cache.d.cts.map +1 -0
- package/dist/core/cache.d.mts +29 -4
- package/dist/core/cache.d.mts.map +1 -1
- package/dist/core/cache.mjs +9 -21
- package/dist/core/cache.mjs.map +1 -1
- package/dist/core/{check.js → check.cjs} +4 -4
- package/dist/core/{check.d.ts → check.d.cts} +4 -4
- package/dist/core/check.d.cts.map +1 -0
- package/dist/core/check.d.mts.map +1 -1
- package/dist/core/check.mjs.map +1 -1
- package/dist/core/{componentCache.js → componentCache.cjs} +2 -2
- package/dist/core/{entrypoint.d.ts → entrypoint.d.cts} +16 -9
- package/dist/core/entrypoint.d.cts.map +1 -0
- package/dist/core/entrypoint.d.mts +9 -2
- package/dist/core/entrypoint.d.mts.map +1 -1
- package/dist/core/entrypoint.mjs.map +1 -1
- package/dist/core/{garbageCollection.js → garbageCollection.cjs} +3 -3
- package/dist/core/{garbageCollection.d.ts → garbageCollection.d.cts} +4 -4
- package/dist/core/garbageCollection.d.cts.map +1 -0
- package/dist/core/garbageCollection.d.mts.map +1 -1
- package/dist/core/garbageCollection.mjs.map +1 -1
- package/dist/core/{getOrCreateCacheForArtifact.js → getOrCreateCacheForArtifact.cjs} +4 -4
- package/dist/core/getOrCreateCacheForArtifact.mjs.map +1 -1
- package/dist/core/{logging.d.ts → logging.d.cts} +9 -10
- package/dist/core/logging.d.cts.map +1 -0
- package/dist/core/logging.d.mts +0 -1
- package/dist/core/logging.d.mts.map +1 -1
- package/dist/core/{makeNetworkRequest.js → makeNetworkRequest.cjs} +21 -21
- package/dist/core/{makeNetworkRequest.d.ts → makeNetworkRequest.d.cts} +7 -7
- package/dist/core/makeNetworkRequest.d.cts.map +1 -0
- package/dist/core/makeNetworkRequest.d.mts.map +1 -1
- package/dist/core/makeNetworkRequest.mjs +10 -10
- package/dist/core/makeNetworkRequest.mjs.map +1 -1
- package/dist/core/{optimisticProxy.js → optimisticProxy.cjs} +2 -2
- package/dist/core/{optimisticProxy.d.ts → optimisticProxy.d.cts} +2 -3
- package/dist/core/optimisticProxy.d.cts.map +1 -0
- package/dist/core/optimisticProxy.d.mts +0 -1
- package/dist/core/optimisticProxy.d.mts.map +1 -1
- package/dist/core/optimisticProxy.mjs.map +1 -1
- package/dist/core/{read.js → read.cjs} +66 -63
- package/dist/core/{read.d.ts → read.d.cts} +4 -5
- package/dist/core/read.d.cts.map +1 -0
- package/dist/core/read.d.mts.map +1 -1
- package/dist/core/read.mjs +58 -55
- package/dist/core/read.mjs.map +1 -1
- package/dist/core/{reader.d.ts → reader.d.cts} +11 -9
- package/dist/core/reader.d.cts.map +1 -0
- package/dist/core/reader.d.mts +5 -3
- package/dist/core/reader.d.mts.map +1 -1
- package/dist/core/{startUpdate.js → startUpdate.cjs} +14 -14
- package/dist/core/startUpdate.mjs +6 -6
- package/dist/core/startUpdate.mjs.map +1 -1
- package/dist/core/{subscribe.js → subscribe.cjs} +3 -3
- package/dist/core/{subscribe.d.ts → subscribe.d.cts} +6 -6
- package/dist/core/subscribe.d.cts.map +1 -0
- package/dist/core/subscribe.d.mts.map +1 -1
- package/dist/core/subscribe.mjs.map +1 -1
- package/dist/core/{util.d.ts → util.d.cts} +1 -1
- package/dist/core/util.d.cts.map +1 -0
- package/dist/core/util.d.mts.map +1 -1
- package/dist/core/util.mjs.map +1 -1
- package/dist/core/{writeData.js → writeData.cjs} +6 -6
- package/dist/core/{writeData.d.ts → writeData.d.cts} +6 -6
- package/dist/core/writeData.d.cts.map +1 -0
- package/dist/core/writeData.d.mts +1 -1
- package/dist/core/writeData.d.mts.map +1 -1
- package/dist/core/writeData.mjs.map +1 -1
- package/dist/{index.js → index.cjs} +29 -29
- package/dist/index.d.cts +32 -0
- package/dist/index.d.mts +2 -2
- package/dist/loadable-hooks/useClientSideDefer.cjs +14 -0
- package/dist/loadable-hooks/{useClientSideDefer.d.ts → useClientSideDefer.d.cts} +4 -4
- package/dist/loadable-hooks/useClientSideDefer.d.cts.map +1 -0
- package/dist/loadable-hooks/useClientSideDefer.d.mts.map +1 -1
- package/dist/loadable-hooks/{useConnectionSpecPagination.js → useConnectionSpecPagination.cjs} +13 -16
- package/dist/loadable-hooks/{useConnectionSpecPagination.d.ts → useConnectionSpecPagination.d.cts} +4 -4
- package/dist/loadable-hooks/useConnectionSpecPagination.d.cts.map +1 -0
- package/dist/loadable-hooks/useConnectionSpecPagination.d.mts.map +1 -1
- package/dist/loadable-hooks/useConnectionSpecPagination.mjs.map +1 -1
- package/dist/loadable-hooks/{useImperativeExposedMutationField.d.ts → useImperativeExposedMutationField.d.cts} +1 -1
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.cts.map +1 -0
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.mts.map +1 -1
- package/dist/loadable-hooks/{useImperativeLoadableField.js → useImperativeLoadableField.cjs} +4 -5
- package/dist/loadable-hooks/{useImperativeLoadableField.d.ts → useImperativeLoadableField.d.cts} +4 -4
- package/dist/loadable-hooks/useImperativeLoadableField.d.cts.map +1 -0
- package/dist/loadable-hooks/useImperativeLoadableField.d.mts.map +1 -1
- package/dist/loadable-hooks/{useSkipLimitPagination.js → useSkipLimitPagination.cjs} +13 -16
- package/dist/loadable-hooks/{useSkipLimitPagination.d.ts → useSkipLimitPagination.d.cts} +4 -4
- package/dist/loadable-hooks/useSkipLimitPagination.d.cts.map +1 -0
- package/dist/loadable-hooks/useSkipLimitPagination.d.mts.map +1 -1
- package/dist/loadable-hooks/useSkipLimitPagination.mjs.map +1 -1
- package/dist/react/{FragmentReader.js → FragmentReader.cjs} +1 -1
- package/dist/react/{FragmentReader.d.ts → FragmentReader.d.cts} +5 -5
- package/dist/react/FragmentReader.d.cts.map +1 -0
- package/dist/react/FragmentReader.d.mts.map +1 -1
- package/dist/react/{FragmentRenderer.js → FragmentRenderer.cjs} +2 -2
- package/dist/react/{FragmentRenderer.d.ts → FragmentRenderer.d.cts} +5 -5
- package/dist/react/FragmentRenderer.d.cts.map +1 -0
- package/dist/react/FragmentRenderer.d.mts.map +1 -1
- package/dist/react/{IsographEnvironmentProvider.js → IsographEnvironmentProvider.cjs} +1 -1
- package/dist/react/{IsographEnvironmentProvider.d.ts → IsographEnvironmentProvider.d.cts} +2 -2
- package/dist/react/IsographEnvironmentProvider.d.cts.map +1 -0
- package/dist/react/IsographEnvironmentProvider.d.mts.map +1 -1
- package/dist/react/{LoadableFieldReader.js → LoadableFieldReader.cjs} +3 -3
- package/dist/react/{LoadableFieldReader.d.ts → LoadableFieldReader.d.cts} +5 -5
- package/dist/react/LoadableFieldReader.d.cts.map +1 -0
- package/dist/react/LoadableFieldReader.d.mts.map +1 -1
- package/dist/react/{LoadableFieldRenderer.js → LoadableFieldRenderer.cjs} +3 -3
- package/dist/react/{LoadableFieldRenderer.d.ts → LoadableFieldRenderer.d.cts} +5 -5
- package/dist/react/LoadableFieldRenderer.d.cts.map +1 -0
- package/dist/react/LoadableFieldRenderer.d.mts.map +1 -1
- package/dist/react/{RenderAfterCommit__DO_NOT_USE.js → RenderAfterCommit__DO_NOT_USE.cjs} +1 -2
- package/dist/react/{RenderAfterCommit__DO_NOT_USE.d.ts → RenderAfterCommit__DO_NOT_USE.d.cts} +1 -2
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.cts.map +1 -0
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.mts +0 -1
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.mts.map +1 -1
- package/dist/react/{createIsographEnvironment.js → createIsographEnvironment.cjs} +2 -2
- package/dist/react/{createIsographEnvironment.d.ts → createIsographEnvironment.d.cts} +3 -3
- package/dist/react/createIsographEnvironment.d.cts.map +1 -0
- package/dist/react/createIsographEnvironment.d.mts +0 -1
- package/dist/react/createIsographEnvironment.d.mts.map +1 -1
- package/dist/react/{maybeUnwrapNetworkRequest.js → maybeUnwrapNetworkRequest.cjs} +1 -1
- package/dist/react/{useImperativeReference.js → useImperativeReference.cjs} +7 -8
- package/dist/react/{useImperativeReference.d.ts → useImperativeReference.d.cts} +5 -6
- package/dist/react/useImperativeReference.d.cts.map +1 -0
- package/dist/react/useImperativeReference.d.mts +0 -1
- package/dist/react/useImperativeReference.d.mts.map +1 -1
- package/dist/react/useLazyReference.cjs +18 -0
- package/dist/react/{useLazyReference.d.ts → useLazyReference.d.cts} +5 -6
- package/dist/react/useLazyReference.d.cts.map +1 -0
- package/dist/react/useLazyReference.d.mts +0 -1
- package/dist/react/useLazyReference.d.mts.map +1 -1
- package/dist/react/{useReadAndSubscribe.js → useReadAndSubscribe.cjs} +9 -10
- package/dist/react/{useReadAndSubscribe.d.ts → useReadAndSubscribe.d.cts} +4 -5
- package/dist/react/useReadAndSubscribe.d.cts.map +1 -0
- package/dist/react/useReadAndSubscribe.d.mts +0 -1
- package/dist/react/useReadAndSubscribe.d.mts.map +1 -1
- package/dist/react/useReadAndSubscribe.mjs.map +1 -1
- package/dist/react/{useRerenderOnChange.js → useRerenderOnChange.cjs} +3 -4
- package/dist/react/{useRerenderOnChange.d.ts → useRerenderOnChange.d.cts} +4 -4
- package/dist/react/useRerenderOnChange.d.cts.map +1 -0
- package/dist/react/useRerenderOnChange.d.mts.map +1 -1
- package/dist/react/{useResult.js → useResult.cjs} +7 -7
- package/dist/react/{useResult.d.ts → useResult.d.cts} +3 -3
- package/dist/react/useResult.d.cts.map +1 -0
- package/dist/react/useResult.d.mts.map +1 -1
- package/package.json +9 -9
- package/src/core/IsographEnvironment.ts +47 -22
- package/src/core/cache.ts +76 -55
- package/src/core/entrypoint.ts +18 -2
- package/src/core/getOrCreateCacheForArtifact.ts +2 -2
- package/src/core/makeNetworkRequest.ts +10 -12
- package/src/core/read.ts +21 -19
- package/src/core/reader.ts +9 -5
- package/src/core/writeData.ts +4 -4
- package/src/index.ts +2 -1
- package/src/tests/__isograph/Economist/__link/output_type.ts +2 -1
- package/src/tests/__isograph/Node/asEconomist/resolver_reader.ts +4 -3
- package/src/tests/__isograph/Query/linkedUpdate/normalization_ast.ts +12 -0
- package/src/tests/__isograph/Query/linkedUpdate/resolver_reader.ts +9 -3
- package/src/tests/__isograph/Query/meName/normalization_ast.ts +3 -0
- package/src/tests/__isograph/Query/meName/resolver_reader.ts +5 -3
- package/src/tests/__isograph/Query/meNameSuccessor/normalization_ast.ts +8 -0
- package/src/tests/__isograph/Query/meNameSuccessor/resolver_reader.ts +8 -3
- package/src/tests/__isograph/Query/nodeField/normalization_ast.ts +3 -0
- package/src/tests/__isograph/Query/nodeField/raw_response_type.ts +1 -1
- package/src/tests/__isograph/Query/nodeField/resolver_reader.ts +5 -3
- package/src/tests/__isograph/Query/normalizeUndefinedField/normalization_ast.ts +3 -0
- package/src/tests/__isograph/Query/normalizeUndefinedField/resolver_reader.ts +5 -3
- package/src/tests/__isograph/Query/startUpdate/normalization_ast.ts +6 -0
- package/src/tests/__isograph/Query/startUpdate/resolver_reader.ts +6 -3
- package/src/tests/__isograph/Query/subquery/normalization_ast.ts +4 -0
- package/src/tests/__isograph/Query/subquery/raw_response_type.ts +1 -1
- package/src/tests/__isograph/Query/subquery/resolver_reader.ts +6 -3
- package/src/tests/garbageCollection.test.ts +11 -11
- package/src/tests/normalizeData.test.ts +11 -3
- package/src/tests/optimisticProxy.test.ts +23 -23
- package/src/tests/startUpdate.test.ts +2 -2
- package/tsconfig.json +5 -4
- package/tsconfig.package.json +8 -0
- package/tsconfig.test.json +12 -0
- package/tsdown.config.ts +8 -0
- package/vitest.config.ts +1 -1
- package/dist/core/FragmentReference.d.ts.map +0 -1
- package/dist/core/IsographEnvironment.d.ts.map +0 -1
- package/dist/core/PromiseWrapper.d.ts.map +0 -1
- package/dist/core/brand.d.ts.map +0 -1
- package/dist/core/cache.d.ts +0 -20
- package/dist/core/cache.d.ts.map +0 -1
- package/dist/core/check.d.ts.map +0 -1
- package/dist/core/entrypoint.d.ts.map +0 -1
- package/dist/core/garbageCollection.d.ts.map +0 -1
- package/dist/core/logging.d.ts.map +0 -1
- package/dist/core/makeNetworkRequest.d.ts.map +0 -1
- package/dist/core/optimisticProxy.d.ts.map +0 -1
- package/dist/core/read.d.ts.map +0 -1
- package/dist/core/reader.d.ts.map +0 -1
- package/dist/core/subscribe.d.ts.map +0 -1
- package/dist/core/util.d.ts.map +0 -1
- package/dist/core/writeData.d.ts.map +0 -1
- package/dist/index.d.ts +0 -32
- package/dist/loadable-hooks/useClientSideDefer.d.ts.map +0 -1
- package/dist/loadable-hooks/useClientSideDefer.js +0 -15
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +0 -1
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts.map +0 -1
- package/dist/loadable-hooks/useImperativeLoadableField.d.ts.map +0 -1
- package/dist/loadable-hooks/useSkipLimitPagination.d.ts.map +0 -1
- package/dist/react/FragmentReader.d.ts.map +0 -1
- package/dist/react/FragmentRenderer.d.ts.map +0 -1
- package/dist/react/IsographEnvironmentProvider.d.ts.map +0 -1
- package/dist/react/LoadableFieldReader.d.ts.map +0 -1
- package/dist/react/LoadableFieldRenderer.d.ts.map +0 -1
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.ts.map +0 -1
- package/dist/react/createIsographEnvironment.d.ts.map +0 -1
- package/dist/react/useImperativeReference.d.ts.map +0 -1
- package/dist/react/useLazyReference.d.ts.map +0 -1
- package/dist/react/useLazyReference.js +0 -19
- package/dist/react/useReadAndSubscribe.d.ts.map +0 -1
- package/dist/react/useRerenderOnChange.d.ts.map +0 -1
- package/dist/react/useResult.d.ts.map +0 -1
- package/src/tests/tsconfig.json +0 -21
- package/tsconfig.pkg.json +0 -16
- /package/dist/core/{PromiseWrapper.js → PromiseWrapper.cjs} +0 -0
- /package/dist/core/{entrypoint.js → entrypoint.cjs} +0 -0
- /package/dist/core/{logging.js → logging.cjs} +0 -0
- /package/dist/core/{util.js → util.cjs} +0 -0
- /package/dist/loadable-hooks/{useImperativeExposedMutationField.js → useImperativeExposedMutationField.cjs} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint.d.mts","names":[],"sources":["../../src/core/entrypoint.ts"],"
|
|
1
|
+
{"version":3,"file":"entrypoint.d.mts","names":[],"sources":["../../src/core/entrypoint.ts"],"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
|
|
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 isFallible: boolean;\n readonly fieldName: string;\n readonly arguments: Arguments | null;\n};\n\nexport type NormalizationLinkedField = {\n readonly kind: 'Linked';\n readonly isFallible: boolean;\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":";AA6KA,SAAgB,mBAMd,OAgBA;AACA,KAAI,OAAO,UAAU,WAAY,OAAM,IAAI,MAAM,eAAe"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const require_PromiseWrapper = require('./PromiseWrapper.
|
|
2
|
-
const require_IsographEnvironment = require('./IsographEnvironment.
|
|
3
|
-
const require_cache = require('./cache.
|
|
1
|
+
const require_PromiseWrapper = require('./PromiseWrapper.cjs');
|
|
2
|
+
const require_IsographEnvironment = require('./IsographEnvironment.cjs');
|
|
3
|
+
const require_cache = require('./cache.cjs');
|
|
4
4
|
|
|
5
5
|
//#region src/core/garbageCollection.ts
|
|
6
6
|
function isRetainedQueryWithNormalizationAst(query) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { PromiseWrapper } from "./PromiseWrapper.
|
|
2
|
-
import { IsographEnvironment, StoreLink } from "./IsographEnvironment.
|
|
3
|
-
import { NormalizationAst } from "./entrypoint.
|
|
1
|
+
import { PromiseWrapper } from "./PromiseWrapper.cjs";
|
|
2
|
+
import { IsographEnvironment, StoreLink } from "./IsographEnvironment.cjs";
|
|
3
|
+
import { NormalizationAst } from "./entrypoint.cjs";
|
|
4
4
|
|
|
5
5
|
//#region src/core/garbageCollection.d.ts
|
|
6
6
|
type RetainedQuery = {
|
|
@@ -14,4 +14,4 @@ declare function retainQuery(environment: IsographEnvironment, queryToRetain: Re
|
|
|
14
14
|
declare function garbageCollectEnvironment(environment: IsographEnvironment): void;
|
|
15
15
|
//#endregion
|
|
16
16
|
export { DidUnretainSomeQuery, RetainedQuery, garbageCollectEnvironment, retainQuery, unretainQuery };
|
|
17
|
-
//# sourceMappingURL=garbageCollection.d.
|
|
17
|
+
//# sourceMappingURL=garbageCollection.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"garbageCollection.d.cts","names":[],"sources":["../../src/core/garbageCollection.ts"],"mappings":";;;;;KAmBY,aAAA;EAAA,SACD,gBAAA,EAAkB,cAAA,CAAe,gBAAA;EAAA,SACjC,SAAA;EAAA,SACA,IAAA,EAAM,SAAA;AAAA;AAAA,KAgBL,oBAAA;AAAA,iBACI,aAAA,CACd,WAAA,EAAa,mBAAA,EACb,aAAA,EAAe,aAAA,GACd,oBAAA;AAAA,iBAYa,WAAA,CACd,WAAA,EAAa,mBAAA,EACb,aAAA,EAAe,aAAA;AAAA,iBAQD,yBAAA,CAA0B,WAAA,EAAa,mBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"garbageCollection.d.mts","names":[],"sources":["../../src/core/garbageCollection.ts"],"
|
|
1
|
+
{"version":3,"file":"garbageCollection.d.mts","names":[],"sources":["../../src/core/garbageCollection.ts"],"mappings":";;;;;;KAmBY,aAAA;EAAA,SACD,gBAAA,EAAkB,cAAA,CAAe,gBAAA;EAAA,SACjC,SAAA;EAAA,SACA,IAAA,EAAM,SAAA;AAAA;AAAA,KAgBL,oBAAA;AAAA,iBACI,aAAA,CACd,WAAA,EAAa,mBAAA,EACb,aAAA,EAAe,aAAA,GACd,oBAAA;AAAA,iBAYa,WAAA,CACd,WAAA,EAAa,mBAAA,EACb,aAAA,EAAe,aAAA;AAAA,iBAQD,yBAAA,CAA0B,WAAA,EAAa,mBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"garbageCollection.mjs","names":[
|
|
1
|
+
{"version":3,"file":"garbageCollection.mjs","names":[],"sources":["../../src/core/garbageCollection.ts"],"sourcesContent":["import { getParentRecordKey, TYPENAME_FIELD_NAME } from './cache';\nimport type { NormalizationAstNodes, NormalizationAst } from './entrypoint';\nimport type { Variables } from './FragmentReference';\nimport {\n assertLink,\n type DataId,\n type IsographEnvironment,\n type StoreRecord,\n type StoreLayerData,\n type StoreLink,\n type TypeName,\n} from './IsographEnvironment';\nimport type { BaseStoreLayer } from './optimisticProxy';\nimport {\n NOT_SET,\n type PromiseWrapper,\n type PromiseWrapperOk,\n} from './PromiseWrapper';\n\nexport type RetainedQuery = {\n readonly normalizationAst: PromiseWrapper<NormalizationAst>;\n readonly variables: {};\n readonly root: StoreLink;\n};\n\nexport interface RetainedQueryWithNormalizationAst extends RetainedQuery {\n readonly normalizationAst: PromiseWrapperOk<NormalizationAst>;\n}\n\nfunction isRetainedQueryWithNormalizationAst(\n query: RetainedQuery,\n): query is RetainedQueryWithNormalizationAst {\n return (\n query.normalizationAst.result !== NOT_SET &&\n query.normalizationAst.result.kind === 'Ok'\n );\n}\n\nexport type DidUnretainSomeQuery = boolean;\nexport function unretainQuery(\n environment: IsographEnvironment,\n retainedQuery: RetainedQuery,\n): DidUnretainSomeQuery {\n environment.retainedQueries.delete(retainedQuery);\n environment.gcBuffer.push(retainedQuery);\n\n if (environment.gcBuffer.length > environment.gcBufferSize) {\n environment.gcBuffer.shift();\n return true;\n }\n\n return false;\n}\n\nexport function retainQuery(\n environment: IsographEnvironment,\n queryToRetain: RetainedQuery,\n) {\n environment.retainedQueries.add(queryToRetain);\n // TODO can we remove this query from the buffer somehow?\n // We are relying on === equality, but we really should be comparing\n // id + variables\n}\n\nexport function garbageCollectEnvironment(environment: IsographEnvironment) {\n if (environment.store.kind !== 'BaseStoreLayer') {\n return;\n }\n\n const retainedQueries: RetainedQueryWithNormalizationAst[] = [];\n for (const query of environment.retainedQueries) {\n if (!isRetainedQueryWithNormalizationAst(query)) {\n return;\n }\n retainedQueries.push(query);\n }\n\n for (const query of environment.gcBuffer) {\n if (!isRetainedQueryWithNormalizationAst(query)) {\n return;\n }\n retainedQueries.push(query);\n }\n\n garbageCollectBaseStoreLayer(retainedQueries, environment.store);\n}\n\nexport function garbageCollectBaseStoreLayer(\n retainedQueries: RetainedQueryWithNormalizationAst[],\n baseStoreLayer: BaseStoreLayer,\n) {\n const retainedIds: RetainedIds = {};\n\n for (const query of retainedQueries) {\n recordReachableIds(baseStoreLayer.data, query, retainedIds);\n }\n\n for (const typeName in baseStoreLayer.data) {\n const dataById = baseStoreLayer.data[typeName];\n if (dataById == null) continue;\n const retainedTypeIds = retainedIds[typeName];\n\n // delete all objects\n if (retainedTypeIds === undefined || retainedTypeIds.size === 0) {\n delete baseStoreLayer.data[typeName];\n continue;\n }\n\n for (const dataId in dataById) {\n if (!retainedTypeIds.has(dataId)) {\n delete dataById[dataId];\n }\n }\n\n if (Object.keys(dataById).length === 0) {\n delete baseStoreLayer.data[typeName];\n }\n }\n}\n\ninterface RetainedIds {\n [typeName: TypeName]: Set<DataId>;\n}\n\nfunction recordReachableIds(\n dataLayer: StoreLayerData,\n retainedQuery: RetainedQueryWithNormalizationAst,\n mutableRetainedIds: RetainedIds,\n) {\n const record =\n dataLayer[retainedQuery.root.__typename]?.[retainedQuery.root.__link];\n\n const retainedRecordsIds = (mutableRetainedIds[\n retainedQuery.root.__typename\n ] ??= new Set());\n retainedRecordsIds.add(retainedQuery.root.__link);\n\n if (record != null) {\n recordReachableIdsFromRecord(\n dataLayer,\n record,\n mutableRetainedIds,\n retainedQuery.normalizationAst.result.value.selections,\n retainedQuery.variables,\n );\n }\n}\n\nfunction recordReachableIdsFromRecord(\n dataLayer: StoreLayerData,\n currentRecord: StoreRecord,\n mutableRetainedIds: RetainedIds,\n selections: NormalizationAstNodes,\n variables: Variables | null,\n) {\n for (const selection of selections) {\n switch (selection.kind) {\n case 'InlineFragment':\n if (currentRecord[TYPENAME_FIELD_NAME] === selection.type) {\n recordReachableIdsFromRecord(\n dataLayer,\n currentRecord,\n mutableRetainedIds,\n selection.selections,\n variables,\n );\n }\n continue;\n case 'Linked':\n const linkKey = getParentRecordKey(selection, variables ?? {});\n const linkedFieldOrFields = currentRecord[linkKey];\n\n const links: StoreLink[] = [];\n if (Array.isArray(linkedFieldOrFields)) {\n for (const maybeLink of linkedFieldOrFields) {\n const link = assertLink(maybeLink);\n if (link != null) {\n links.push(link);\n }\n }\n } else {\n const link = assertLink(linkedFieldOrFields);\n if (link != null) {\n links.push(link);\n }\n }\n\n let typeStore =\n selection.concreteType != null\n ? dataLayer[selection.concreteType]\n : null;\n\n if (typeStore == null && selection.concreteType != null) {\n continue;\n }\n\n for (const nextRecordLink of links) {\n let __typename = nextRecordLink.__typename;\n\n const resolvedTypeStore = typeStore ?? dataLayer[__typename];\n\n if (resolvedTypeStore == null) {\n continue;\n }\n\n const nextRecord = resolvedTypeStore[nextRecordLink.__link];\n if (nextRecord != null) {\n const retainedRecordsIds = (mutableRetainedIds[__typename] ??=\n new Set());\n retainedRecordsIds.add(nextRecordLink.__link);\n recordReachableIdsFromRecord(\n dataLayer,\n nextRecord,\n mutableRetainedIds,\n selection.selections,\n variables,\n );\n }\n }\n\n continue;\n case 'Scalar':\n continue;\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const require_util = require('./util.
|
|
2
|
-
const require_IsographEnvironment = require('./IsographEnvironment.
|
|
3
|
-
const require_makeNetworkRequest = require('./makeNetworkRequest.
|
|
4
|
-
const require_cache = require('./cache.
|
|
1
|
+
const require_util = require('./util.cjs');
|
|
2
|
+
const require_IsographEnvironment = require('./IsographEnvironment.cjs');
|
|
3
|
+
const require_makeNetworkRequest = require('./makeNetworkRequest.cjs');
|
|
4
|
+
const require_cache = require('./cache.cjs');
|
|
5
5
|
|
|
6
6
|
//#region src/core/getOrCreateCacheForArtifact.ts
|
|
7
7
|
function getOrCreateCacheForArtifact(environment, entrypoint, variables, fetchOptions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOrCreateCacheForArtifact.mjs","names":[],"sources":["../../src/core/getOrCreateCacheForArtifact.ts"],"sourcesContent":["import type { ItemCleanupPair } from '@isograph/
|
|
1
|
+
{"version":3,"file":"getOrCreateCacheForArtifact.mjs","names":[],"sources":["../../src/core/getOrCreateCacheForArtifact.ts"],"sourcesContent":["import type { ItemCleanupPair } from '@isograph/disposable-types';\nimport type { ParentCache } from '@isograph/react-disposable-state';\nimport {\n type NetworkResponseObject,\n getOrCreateItemInSuspenseCache,\n} from './cache';\nimport type { FetchOptions } from './check';\nimport type {\n IsographEntrypoint,\n NormalizationAst,\n NormalizationAstLoader,\n} from './entrypoint';\nimport type {\n ExtractParameters,\n FragmentReference,\n UnknownTReadFromStore,\n} from './FragmentReference';\nimport {\n type IsographEnvironment,\n getOrLoadReaderWithRefetchQueries,\n ROOT_ID,\n} from './IsographEnvironment';\nimport { maybeMakeNetworkRequest } from './makeNetworkRequest';\nimport { stableCopy } from './util';\n\nexport function getOrCreateCacheForArtifact<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n>(\n environment: IsographEnvironment,\n entrypoint: IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n >,\n variables: ExtractParameters<TReadFromStore>,\n fetchOptions?: FetchOptions<TClientFieldValue, TRawResponseType>,\n): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>> {\n let cacheKey = '';\n switch (entrypoint.networkRequestInfo.operation.kind) {\n case 'Operation':\n cacheKey =\n entrypoint.networkRequestInfo.operation.text +\n JSON.stringify(stableCopy(variables));\n break;\n case 'PersistedOperation':\n cacheKey =\n entrypoint.networkRequestInfo.operation.operationId +\n JSON.stringify(stableCopy(variables));\n break;\n }\n const factory = () => {\n const { fieldName, readerArtifactKind, readerWithRefetchQueries } =\n getOrLoadReaderWithRefetchQueries(\n environment,\n entrypoint.readerWithRefetchQueries,\n );\n const [networkRequest, disposeNetworkRequest] = maybeMakeNetworkRequest(\n environment,\n entrypoint,\n variables,\n readerWithRefetchQueries,\n fetchOptions ?? null,\n );\n\n const itemCleanupPair: ItemCleanupPair<\n FragmentReference<TReadFromStore, TClientFieldValue>\n > = [\n {\n kind: 'FragmentReference',\n readerWithRefetchQueries,\n fieldName,\n readerArtifactKind,\n root: { __link: ROOT_ID, __typename: entrypoint.concreteType },\n variables,\n networkRequest: networkRequest,\n },\n disposeNetworkRequest,\n ];\n return itemCleanupPair;\n };\n return getOrCreateItemInSuspenseCache(environment, cacheKey, factory);\n}\n"],"mappings":";;;;;;AAyBA,SAAgB,4BAMd,aACA,YAMA,WACA,cACmE;CACnE,IAAI,WAAW;AACf,SAAQ,WAAW,mBAAmB,UAAU,MAAhD;EACE,KAAK;AACH,cACE,WAAW,mBAAmB,UAAU,OACxC,KAAK,UAAU,WAAW,UAAU,CAAC;AACvC;EACF,KAAK;AACH,cACE,WAAW,mBAAmB,UAAU,cACxC,KAAK,UAAU,WAAW,UAAU,CAAC;AACvC;;CAEJ,MAAM,gBAAgB;EACpB,MAAM,EAAE,WAAW,oBAAoB,6BACrC,kCACE,aACA,WAAW,yBACZ;EACH,MAAM,CAAC,gBAAgB,yBAAyB,wBAC9C,aACA,YACA,WACA,0BACA,gBAAgB,KACjB;AAgBD,SAZI,CACF;GACE,MAAM;GACN;GACA;GACA;GACA,MAAM;IAAE,QAAQ;IAAS,YAAY,WAAW;IAAc;GAC9D;GACgB;GACjB,EACD,sBACD;;AAGH,QAAO,+BAA+B,aAAa,UAAU,QAAQ"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { CheckResult } from "./check.
|
|
2
|
-
import { Arguments } from "./util.
|
|
3
|
-
import { ReadDataResult } from "./read.
|
|
4
|
-
import { StoreLayer } from "./optimisticProxy.
|
|
5
|
-
import { IsographEnvironment, StoreLink, StoreRecord } from "./IsographEnvironment.
|
|
6
|
-
import { FragmentReference, Variables } from "./FragmentReference.
|
|
7
|
-
import { EncounteredIds, NetworkResponseObject } from "./cache.
|
|
8
|
-
import { IsographEntrypoint, NormalizationAstNodes, RefetchQueryNormalizationArtifact } from "./entrypoint.
|
|
1
|
+
import { CheckResult } from "./check.cjs";
|
|
2
|
+
import { Arguments } from "./util.cjs";
|
|
3
|
+
import { ReadDataResult } from "./read.cjs";
|
|
4
|
+
import { StoreLayer } from "./optimisticProxy.cjs";
|
|
5
|
+
import { IsographEnvironment, StoreLink, StoreRecord } from "./IsographEnvironment.cjs";
|
|
6
|
+
import { FragmentReference, Variables } from "./FragmentReference.cjs";
|
|
7
|
+
import { EncounteredIds, NetworkResponseObject } from "./cache.cjs";
|
|
8
|
+
import { IsographEntrypoint, NormalizationAstNodes, RefetchQueryNormalizationArtifact } from "./entrypoint.cjs";
|
|
9
9
|
import { CleanupFn } from "@isograph/disposable-types";
|
|
10
10
|
|
|
11
11
|
//#region src/core/logging.d.ts
|
|
12
|
-
|
|
13
12
|
/**
|
|
14
13
|
* Note: these types are unstable. We will add and remove items from this enum
|
|
15
14
|
* and add and remove fields. Please do not rely on the specifics here (for now).
|
|
@@ -92,4 +91,4 @@ declare function logMessage(environment: IsographEnvironment, getMessage: () =>
|
|
|
92
91
|
declare function registerLogger(environment: IsographEnvironment, log: LogFunction): CleanupFn;
|
|
93
92
|
//#endregion
|
|
94
93
|
export { LogFunction, LogMessage, WrappedLogFunction, logMessage, registerLogger };
|
|
95
|
-
//# sourceMappingURL=logging.d.
|
|
94
|
+
//# sourceMappingURL=logging.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.d.cts","names":[],"sources":["../../src/core/logging.ts"],"mappings":";;;;;;;;;;;;;AA8BA;;;;;;;;;;KAAY,UAAA;EAEN,IAAA;EACA,gBAAA,EAAkB,qBAAA;EAClB,eAAA,EAAiB,qBAAA;EACjB,SAAA,EAAW,SAAA;AAAA;EAGX,IAAA;EACA,KAAA,EAAO,UAAA;EACP,cAAA,EAAgB,cAAA;AAAA;EAGhB,IAAA;EACA,iBAAA,EAAmB,iBAAA;EACnB,GAAA;EACA,GAAA;EACA,WAAA;AAAA;EAGA,IAAA;EACA,aAAA;EACA,QAAA,EAAU,SAAA;AAAA;EAGV,IAAA;EACA,QAAA,EACI,iCAAA,GACA,kBAAA;EACJ,SAAA,EAAW,SAAA;EACX,gBAAA;AAAA;EAGA,IAAA;EAEA,eAAA;EACA,gBAAA;AAAA;EAGA,IAAA;EACA,KAAA;EACA,gBAAA;AAAA;EAGA,IAAA;EACA,IAAA,EAAM,SAAA;EACN,WAAA,EAAa,WAAA;EACb,SAAA;EACA,SAAA,EAAW,SAAA;EACX,SAAA,EAAW,SAAA;AAAA;EAGX,IAAA;EACA,QAAA,EAAU,cAAA;EACV,SAAA;EACA,IAAA,EAAM,SAAA;AAAA;EAGN,IAAA;EACA,UAAA;AAAA;EAGA,IAAA;EACA,MAAA,EAAQ,WAAA;AAAA;EAGR,IAAA;AAAA;EAGA,IAAA;EACA,KAAA;AAAA;EAGA,IAAA;EACA,UAAA,EAAY,cAAA;AAAA;EAGZ,IAAA;EACA,KAAA;AAAA;AAAA,KAGM,WAAA,IAAe,UAAA,EAAY,UAAA;AAAA,KAG3B,kBAAA;EACV,GAAA,EAAK,WAAA;AAAA;AAAA,iBAGS,UAAA,CACd,WAAA,EAAa,mBAAA,EACb,UAAA,QAAkB,UAAA;AAAA,iBAYJ,cAAA,CACd,WAAA,EAAa,mBAAA,EACb,GAAA,EAAK,WAAA,GACJ,SAAA"}
|
package/dist/core/logging.d.mts
CHANGED
|
@@ -9,7 +9,6 @@ import { IsographEntrypoint, NormalizationAstNodes, RefetchQueryNormalizationArt
|
|
|
9
9
|
import { CleanupFn } from "@isograph/disposable-types";
|
|
10
10
|
|
|
11
11
|
//#region src/core/logging.d.ts
|
|
12
|
-
|
|
13
12
|
/**
|
|
14
13
|
* Note: these types are unstable. We will add and remove items from this enum
|
|
15
14
|
* and add and remove fields. Please do not rely on the specifics here (for now).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.d.mts","names":[],"sources":["../../src/core/logging.ts"],"
|
|
1
|
+
{"version":3,"file":"logging.d.mts","names":[],"sources":["../../src/core/logging.ts"],"mappings":";;;;;;;;;;;;;AA8BA;;;;;;;;;;KAAY,UAAA;EAEN,IAAA;EACA,gBAAA,EAAkB,qBAAA;EAClB,eAAA,EAAiB,qBAAA;EACjB,SAAA,EAAW,SAAA;AAAA;EAGX,IAAA;EACA,KAAA,EAAO,UAAA;EACP,cAAA,EAAgB,cAAA;AAAA;EAGhB,IAAA;EACA,iBAAA,EAAmB,iBAAA;EACnB,GAAA;EACA,GAAA;EACA,WAAA;AAAA;EAGA,IAAA;EACA,aAAA;EACA,QAAA,EAAU,SAAA;AAAA;EAGV,IAAA;EACA,QAAA,EACI,iCAAA,GACA,kBAAA;EACJ,SAAA,EAAW,SAAA;EACX,gBAAA;AAAA;EAGA,IAAA;EAEA,eAAA;EACA,gBAAA;AAAA;EAGA,IAAA;EACA,KAAA;EACA,gBAAA;AAAA;EAGA,IAAA;EACA,IAAA,EAAM,SAAA;EACN,WAAA,EAAa,WAAA;EACb,SAAA;EACA,SAAA,EAAW,SAAA;EACX,SAAA,EAAW,SAAA;AAAA;EAGX,IAAA;EACA,QAAA,EAAU,cAAA;EACV,SAAA;EACA,IAAA,EAAM,SAAA;AAAA;EAGN,IAAA;EACA,UAAA;AAAA;EAGA,IAAA;EACA,MAAA,EAAQ,WAAA;AAAA;EAGR,IAAA;AAAA;EAGA,IAAA;EACA,KAAA;AAAA;EAGA,IAAA;EACA,UAAA,EAAY,cAAA;AAAA;EAGZ,IAAA;EACA,KAAA;AAAA;AAAA,KAGM,WAAA,IAAe,UAAA,EAAY,UAAA;AAAA,KAG3B,kBAAA;EACV,GAAA,EAAK,WAAA;AAAA;AAAA,iBAGS,UAAA,CACd,WAAA,EAAa,mBAAA,EACb,UAAA,QAAkB,UAAA;AAAA,iBAYJ,cAAA,CACd,WAAA,EAAa,mBAAA,EACb,GAAA,EAAK,WAAA,GACJ,SAAA"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
const require_PromiseWrapper = require('./PromiseWrapper.
|
|
2
|
-
const require_IsographEnvironment = require('./IsographEnvironment.
|
|
3
|
-
const require_logging = require('./logging.
|
|
4
|
-
const require_startUpdate = require('./startUpdate.
|
|
5
|
-
const require_componentCache = require('./componentCache.
|
|
6
|
-
const require_check = require('./check.
|
|
7
|
-
const require_read = require('./read.
|
|
8
|
-
const require_subscribe = require('./subscribe.
|
|
9
|
-
const require_optimisticProxy = require('./optimisticProxy.
|
|
10
|
-
const require_cache = require('./cache.
|
|
11
|
-
const require_garbageCollection = require('./garbageCollection.
|
|
1
|
+
const require_PromiseWrapper = require('./PromiseWrapper.cjs');
|
|
2
|
+
const require_IsographEnvironment = require('./IsographEnvironment.cjs');
|
|
3
|
+
const require_logging = require('./logging.cjs');
|
|
4
|
+
const require_startUpdate = require('./startUpdate.cjs');
|
|
5
|
+
const require_componentCache = require('./componentCache.cjs');
|
|
6
|
+
const require_check = require('./check.cjs');
|
|
7
|
+
const require_read = require('./read.cjs');
|
|
8
|
+
const require_subscribe = require('./subscribe.cjs');
|
|
9
|
+
const require_optimisticProxy = require('./optimisticProxy.cjs');
|
|
10
|
+
const require_cache = require('./cache.cjs');
|
|
11
|
+
const require_garbageCollection = require('./garbageCollection.cjs');
|
|
12
12
|
|
|
13
13
|
//#region src/core/makeNetworkRequest.ts
|
|
14
14
|
let networkRequestId = 0;
|
|
@@ -52,7 +52,7 @@ function makeNetworkRequest(environment, artifact, variables, readerWithRefetchQ
|
|
|
52
52
|
environment.networkFunction(artifact.networkRequestInfo.operation, variables),
|
|
53
53
|
status.retainedQuery.normalizationAst.promise,
|
|
54
54
|
readerWithRefetchQueries?.promise
|
|
55
|
-
]).then(([networkResponse, normalizationAst, readerWithRefetchQueries
|
|
55
|
+
]).then(([networkResponse, normalizationAst, readerWithRefetchQueries]) => {
|
|
56
56
|
require_logging.logMessage(environment, () => ({
|
|
57
57
|
kind: "ReceivedNetworkResponse",
|
|
58
58
|
networkResponse,
|
|
@@ -86,7 +86,7 @@ function makeNetworkRequest(environment, artifact, variables, readerWithRefetchQ
|
|
|
86
86
|
}
|
|
87
87
|
const onComplete = fetchOptions?.onComplete;
|
|
88
88
|
if (onComplete != null) {
|
|
89
|
-
let data = readDataForOnComplete(artifact, environment, root, variables, readerWithRefetchQueries
|
|
89
|
+
let data = readDataForOnComplete(artifact, environment, root, variables, readerWithRefetchQueries);
|
|
90
90
|
try {
|
|
91
91
|
onComplete(data);
|
|
92
92
|
} catch {}
|
|
@@ -114,25 +114,25 @@ function readDataForOnComplete(artifact, environment, root, variables, readerWit
|
|
|
114
114
|
suspendIfInFlight: false,
|
|
115
115
|
throwOnNetworkError: false
|
|
116
116
|
};
|
|
117
|
-
|
|
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(
|
|
121
|
-
fieldName:
|
|
122
|
-
readerArtifactKind:
|
|
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 =
|
|
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:
|
|
135
|
+
nestedRefetchQueries: readerWithRefetchQueries.nestedRefetchQueries
|
|
136
136
|
}),
|
|
137
137
|
fieldName: readerArtifact.fieldName,
|
|
138
138
|
readerArtifactKind: readerArtifact.kind,
|
|
@@ -178,8 +178,8 @@ function makeOptimisticUpdate(environment, artifact, variables, optimisticNetwor
|
|
|
178
178
|
require_subscribe.callSubscriptions(environment, encounteredIds);
|
|
179
179
|
return optimistic;
|
|
180
180
|
}
|
|
181
|
-
function revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(environment, status, normalizeData
|
|
182
|
-
if (status.optimistic != null) require_optimisticProxy.revertOptimisticStoreLayerAndMaybeReplace(environment, status.optimistic, normalizeData
|
|
181
|
+
function revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(environment, status, normalizeData) {
|
|
182
|
+
if (status.optimistic != null) require_optimisticProxy.revertOptimisticStoreLayerAndMaybeReplace(environment, status.optimistic, normalizeData);
|
|
183
183
|
return {
|
|
184
184
|
kind: "UndisposedComplete",
|
|
185
185
|
retainedQuery: status.retainedQuery
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { FetchOptions } from "./check.
|
|
2
|
-
import { AnyError, PromiseWrapper } from "./PromiseWrapper.
|
|
3
|
-
import { IsographEnvironment } from "./IsographEnvironment.
|
|
4
|
-
import { ExtractParameters, UnknownTReadFromStore } from "./FragmentReference.
|
|
5
|
-
import { NetworkResponseObject } from "./cache.
|
|
6
|
-
import { IsographEntrypoint, NormalizationAst, NormalizationAstLoader, ReaderWithRefetchQueries, RefetchQueryNormalizationArtifact } from "./entrypoint.
|
|
1
|
+
import { FetchOptions } from "./check.cjs";
|
|
2
|
+
import { AnyError, PromiseWrapper } from "./PromiseWrapper.cjs";
|
|
3
|
+
import { IsographEnvironment } from "./IsographEnvironment.cjs";
|
|
4
|
+
import { ExtractParameters, UnknownTReadFromStore } from "./FragmentReference.cjs";
|
|
5
|
+
import { NetworkResponseObject } from "./cache.cjs";
|
|
6
|
+
import { IsographEntrypoint, NormalizationAst, NormalizationAstLoader, ReaderWithRefetchQueries, RefetchQueryNormalizationArtifact } from "./entrypoint.cjs";
|
|
7
7
|
import { ItemCleanupPair } from "@isograph/disposable-types";
|
|
8
8
|
|
|
9
9
|
//#region src/core/makeNetworkRequest.d.ts
|
|
10
10
|
declare function makeNetworkRequest<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType extends NetworkResponseObject>(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst, TRawResponseType>, variables: ExtractParameters<TReadFromStore>, readerWithRefetchQueries: PromiseWrapper<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>> | null, fetchOptions: FetchOptions<TClientFieldValue, TRawResponseType> | null): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
|
|
11
11
|
//#endregion
|
|
12
12
|
export { makeNetworkRequest };
|
|
13
|
-
//# sourceMappingURL=makeNetworkRequest.d.
|
|
13
|
+
//# sourceMappingURL=makeNetworkRequest.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeNetworkRequest.d.cts","names":[],"sources":["../../src/core/makeNetworkRequest.ts"],"mappings":";;;;;;;;;iBA8JgB,kBAAA,wBACS,qBAAA,+CAEG,gBAAA,GAAmB,sBAAA,2BACpB,qBAAA,CAAA,CAEzB,WAAA,EAAa,mBAAA,EACb,QAAA,EACI,iCAAA,GACA,kBAAA,CACE,cAAA,EACA,iBAAA,EACA,iBAAA,EACA,gBAAA,GAEN,SAAA,EAAW,iBAAA,CAAkB,cAAA,GAC7B,wBAAA,EAA0B,cAAA,CACxB,wBAAA,CAAyB,cAAA,EAAgB,iBAAA,WAE3C,YAAA,EAAc,YAAA,CAAa,iBAAA,EAAmB,gBAAA,WAC7C,eAAA,CAAgB,cAAA,OAAqB,QAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeNetworkRequest.d.mts","names":[],"sources":["../../src/core/makeNetworkRequest.ts"],"
|
|
1
|
+
{"version":3,"file":"makeNetworkRequest.d.mts","names":[],"sources":["../../src/core/makeNetworkRequest.ts"],"mappings":";;;;;;;;;iBA8JgB,kBAAA,wBACS,qBAAA,+CAEG,gBAAA,GAAmB,sBAAA,2BACpB,qBAAA,CAAA,CAEzB,WAAA,EAAa,mBAAA,EACb,QAAA,EACI,iCAAA,GACA,kBAAA,CACE,cAAA,EACA,iBAAA,EACA,iBAAA,EACA,gBAAA,GAEN,SAAA,EAAW,iBAAA,CAAkB,cAAA,GAC7B,wBAAA,EAA0B,cAAA,CACxB,wBAAA,CAAyB,cAAA,EAAgB,iBAAA,WAE3C,YAAA,EAAc,YAAA,CAAa,iBAAA,EAAmB,gBAAA,WAC7C,eAAA,CAAgB,cAAA,OAAqB,QAAA"}
|
|
@@ -52,7 +52,7 @@ function makeNetworkRequest(environment, artifact, variables, readerWithRefetchQ
|
|
|
52
52
|
environment.networkFunction(artifact.networkRequestInfo.operation, variables),
|
|
53
53
|
status.retainedQuery.normalizationAst.promise,
|
|
54
54
|
readerWithRefetchQueries?.promise
|
|
55
|
-
]).then(([networkResponse, normalizationAst, readerWithRefetchQueries
|
|
55
|
+
]).then(([networkResponse, normalizationAst, readerWithRefetchQueries]) => {
|
|
56
56
|
logMessage(environment, () => ({
|
|
57
57
|
kind: "ReceivedNetworkResponse",
|
|
58
58
|
networkResponse,
|
|
@@ -86,7 +86,7 @@ function makeNetworkRequest(environment, artifact, variables, readerWithRefetchQ
|
|
|
86
86
|
}
|
|
87
87
|
const onComplete = fetchOptions?.onComplete;
|
|
88
88
|
if (onComplete != null) {
|
|
89
|
-
let data = readDataForOnComplete(artifact, environment, root, variables, readerWithRefetchQueries
|
|
89
|
+
let data = readDataForOnComplete(artifact, environment, root, variables, readerWithRefetchQueries);
|
|
90
90
|
try {
|
|
91
91
|
onComplete(data);
|
|
92
92
|
} catch {}
|
|
@@ -114,25 +114,25 @@ function readDataForOnComplete(artifact, environment, root, variables, readerWit
|
|
|
114
114
|
suspendIfInFlight: false,
|
|
115
115
|
throwOnNetworkError: false
|
|
116
116
|
};
|
|
117
|
-
|
|
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(
|
|
121
|
-
fieldName:
|
|
122
|
-
readerArtifactKind:
|
|
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 =
|
|
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:
|
|
135
|
+
nestedRefetchQueries: readerWithRefetchQueries.nestedRefetchQueries
|
|
136
136
|
}),
|
|
137
137
|
fieldName: readerArtifact.fieldName,
|
|
138
138
|
readerArtifactKind: readerArtifact.kind,
|
|
@@ -178,8 +178,8 @@ function makeOptimisticUpdate(environment, artifact, variables, optimisticNetwor
|
|
|
178
178
|
callSubscriptions(environment, encounteredIds);
|
|
179
179
|
return optimistic;
|
|
180
180
|
}
|
|
181
|
-
function revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(environment, status, normalizeData
|
|
182
|
-
if (status.optimistic != null) revertOptimisticStoreLayerAndMaybeReplace(environment, status.optimistic, normalizeData
|
|
181
|
+
function revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(environment, status, normalizeData) {
|
|
182
|
+
if (status.optimistic != null) revertOptimisticStoreLayerAndMaybeReplace(environment, status.optimistic, normalizeData);
|
|
183
183
|
return {
|
|
184
184
|
kind: "UndisposedComplete",
|
|
185
185
|
retainedQuery: status.retainedQuery
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeNetworkRequest.mjs","names":["status:\n | NetworkRequestStatusUndisposedComplete\n | NetworkRequestStatusDisposed","status: NetworkRequestStatus","readerWithRefetchQueries","encounteredIds: EncounteredIds","fragment: FragmentReference<TReadFromStore, TClientFieldValue>","retainedQuery: RetainedQuery","normalizeData"],"sources":["../../src/core/makeNetworkRequest.ts"],"sourcesContent":["import type { ItemCleanupPair } from '@isograph/disposable-types';\nimport {\n normalizeData,\n type EncounteredIds,\n type NetworkResponseObject,\n} from './cache';\nimport type { FetchOptions } from './check';\nimport { check, DEFAULT_SHOULD_FETCH_VALUE } from './check';\nimport { getOrCreateCachedComponent } from './componentCache';\nimport type {\n IsographEntrypoint,\n NormalizationAst,\n NormalizationAstLoader,\n ReaderWithRefetchQueries,\n RefetchQueryNormalizationArtifact,\n} from './entrypoint';\nimport type {\n ExtractParameters,\n FragmentReference,\n UnknownTReadFromStore,\n} from './FragmentReference';\nimport type { RetainedQuery } from './garbageCollection';\nimport {\n garbageCollectEnvironment,\n retainQuery,\n unretainQuery,\n} from './garbageCollection';\nimport type { IsographEnvironment, StoreLink } from './IsographEnvironment';\nimport { ROOT_ID } from './IsographEnvironment';\nimport { logMessage } from './logging';\nimport {\n addNetworkResponseStoreLayer,\n addOptimisticNetworkResponseStoreLayer,\n revertOptimisticStoreLayerAndMaybeReplace,\n type OptimisticStoreLayer,\n type StoreLayerWithData,\n} from './optimisticProxy';\nimport type { AnyError, PromiseWrapper } from './PromiseWrapper';\nimport { wrapPromise, wrapResolvedValue } from './PromiseWrapper';\nimport { readButDoNotEvaluate } from './read';\nimport { getOrCreateCachedStartUpdate } from './startUpdate';\nimport { callSubscriptions } from './subscribe';\n\nlet networkRequestId = 0;\n\nexport function maybeMakeNetworkRequest<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n>(\n environment: IsographEnvironment,\n artifact:\n | RefetchQueryNormalizationArtifact\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n >,\n variables: ExtractParameters<TReadFromStore>,\n readerWithRefetchQueries: PromiseWrapper<\n ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>\n > | null,\n fetchOptions: FetchOptions<TClientFieldValue, TRawResponseType> | null,\n): ItemCleanupPair<PromiseWrapper<void, AnyError>> {\n switch (fetchOptions?.shouldFetch ?? DEFAULT_SHOULD_FETCH_VALUE) {\n case 'Yes': {\n return makeNetworkRequest(\n environment,\n artifact,\n variables,\n readerWithRefetchQueries,\n fetchOptions,\n );\n }\n case 'No': {\n return retainQueryWithoutMakingNetworkRequest(\n environment,\n artifact,\n variables,\n );\n }\n case 'IfNecessary': {\n if (\n artifact.networkRequestInfo.normalizationAst.kind ===\n 'NormalizationAstLoader'\n ) {\n throw new Error(\n 'Using lazy loaded normalizationAst with shouldFetch: \"IfNecessary\" is ' +\n 'not supported as it will lead to a network waterfall.',\n );\n }\n const result = check(\n environment,\n artifact.networkRequestInfo.normalizationAst.selections,\n variables,\n {\n __link: ROOT_ID,\n __typename: artifact.concreteType,\n },\n );\n\n if (result.kind === 'EnoughData') {\n return retainQueryWithoutMakingNetworkRequest(\n environment,\n artifact,\n variables,\n );\n } else {\n return makeNetworkRequest(\n environment,\n artifact,\n variables,\n readerWithRefetchQueries,\n fetchOptions,\n );\n }\n }\n }\n}\n\nexport function retainQueryWithoutMakingNetworkRequest<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TRawResponseType extends NetworkResponseObject,\n>(\n environment: IsographEnvironment,\n artifact:\n | RefetchQueryNormalizationArtifact\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n NormalizationAst | NormalizationAstLoader,\n TRawResponseType\n >,\n variables: ExtractParameters<TReadFromStore>,\n): ItemCleanupPair<PromiseWrapper<void, AnyError>> {\n let status:\n | NetworkRequestStatusUndisposedComplete\n | NetworkRequestStatusDisposed = {\n kind: 'UndisposedComplete',\n retainedQuery: fetchNormalizationAstAndRetainArtifact(\n environment,\n artifact,\n variables,\n ),\n };\n return [\n wrapResolvedValue(undefined),\n () => {\n if (status.kind !== 'Disposed') {\n status = unretainAndGarbageCollect(environment, status);\n }\n },\n ];\n}\n\nexport function makeNetworkRequest<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n>(\n environment: IsographEnvironment,\n artifact:\n | RefetchQueryNormalizationArtifact\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n >,\n variables: ExtractParameters<TReadFromStore>,\n readerWithRefetchQueries: PromiseWrapper<\n ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>\n > | null,\n fetchOptions: FetchOptions<TClientFieldValue, TRawResponseType> | null,\n): ItemCleanupPair<PromiseWrapper<void, AnyError>> {\n // TODO this should be a DataId and stored in the store\n const myNetworkRequestId = networkRequestId + '';\n networkRequestId++;\n let status: NetworkRequestStatus = {\n kind: 'UndisposedIncomplete',\n retainedQuery: fetchNormalizationAstAndRetainArtifact(\n environment,\n artifact,\n variables,\n ),\n optimistic:\n fetchOptions?.optimisticNetworkResponse != null\n ? makeOptimisticUpdate(\n environment,\n artifact,\n variables,\n fetchOptions?.optimisticNetworkResponse,\n )\n : null,\n };\n\n logMessage(environment, () => ({\n kind: 'MakeNetworkRequest',\n artifact,\n variables,\n networkRequestId: myNetworkRequestId,\n }));\n\n // This should be an observable, not a promise\n const promise = Promise.all([\n environment.networkFunction(\n artifact.networkRequestInfo.operation,\n variables,\n ),\n status.retainedQuery.normalizationAst.promise,\n readerWithRefetchQueries?.promise,\n ])\n .then(([networkResponse, normalizationAst, readerWithRefetchQueries]) => {\n logMessage(environment, () => ({\n kind: 'ReceivedNetworkResponse',\n networkResponse,\n networkRequestId: myNetworkRequestId,\n }));\n\n if (networkResponse.errors != null) {\n try {\n fetchOptions?.onError?.();\n } catch {}\n throw new Error('Network response had errors', {\n cause: networkResponse,\n });\n }\n\n const root = { __link: ROOT_ID, __typename: artifact.concreteType };\n\n if (status.kind === 'UndisposedIncomplete') {\n if (status.optimistic != null) {\n status =\n revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(\n environment,\n status,\n (storeLayer) =>\n normalizeData(\n environment,\n storeLayer,\n normalizationAst.selections,\n networkResponse.data ?? {},\n variables,\n root,\n new Map(),\n ),\n );\n } else {\n const encounteredIds: EncounteredIds = new Map();\n environment.store = addNetworkResponseStoreLayer(environment.store);\n normalizeData(\n environment,\n environment.store,\n normalizationAst.selections,\n networkResponse.data ?? {},\n variables,\n root,\n encounteredIds,\n );\n\n logMessage(environment, () => ({\n kind: 'AfterNormalization',\n store: environment.store,\n encounteredIds: encounteredIds,\n }));\n\n callSubscriptions(environment, encounteredIds);\n\n status = {\n kind: 'UndisposedComplete',\n retainedQuery: status.retainedQuery,\n };\n }\n }\n\n const onComplete = fetchOptions?.onComplete;\n if (onComplete != null) {\n let data = readDataForOnComplete(\n artifact,\n environment,\n root,\n variables,\n readerWithRefetchQueries,\n );\n\n try {\n // @ts-expect-error this problem will be fixed when we remove RefetchQueryNormalizationArtifact\n // (or we can fix this by having a single param of type { kind: 'Entrypoint', entrypoint,\n // fetchOptions: FetchOptions<TReadFromStore> } | { kind: 'RefetchQuery', refetchQuery,\n // fetchOptions: FetchOptions<void> }).\n onComplete(data);\n } catch {}\n }\n })\n .catch((e) => {\n logMessage(environment, () => ({\n kind: 'ReceivedNetworkError',\n networkRequestId: myNetworkRequestId,\n error: e,\n }));\n try {\n fetchOptions?.onError?.();\n } catch {}\n\n if (status.kind === 'UndisposedIncomplete') {\n status =\n revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(\n environment,\n status,\n null,\n );\n }\n\n throw e;\n });\n\n const wrapper = wrapPromise(promise);\n\n const response: ItemCleanupPair<PromiseWrapper<void, AnyError>> = [\n wrapper,\n () => {\n if (status.kind === 'UndisposedIncomplete') {\n status =\n revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(\n environment,\n status,\n null,\n );\n }\n if (status.kind !== 'Disposed') {\n status = unretainAndGarbageCollect(environment, status);\n }\n },\n ];\n return response;\n}\n\ntype NetworkRequestStatusUndisposedIncomplete = {\n readonly kind: 'UndisposedIncomplete';\n readonly retainedQuery: RetainedQuery;\n readonly optimistic: OptimisticStoreLayer | null;\n};\n\ntype NetworkRequestStatusUndisposedComplete = {\n readonly kind: 'UndisposedComplete';\n readonly retainedQuery: RetainedQuery;\n};\n\ntype NetworkRequestStatusDisposed = {\n readonly kind: 'Disposed';\n};\n\ntype NetworkRequestStatus =\n | NetworkRequestStatusUndisposedIncomplete\n | NetworkRequestStatusUndisposedComplete\n | NetworkRequestStatusDisposed;\n\nfunction readDataForOnComplete<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n>(\n artifact:\n | RefetchQueryNormalizationArtifact\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n >,\n environment: IsographEnvironment,\n root: StoreLink,\n variables: ExtractParameters<TReadFromStore>,\n readerWithRefetchQueries:\n | ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>\n | undefined,\n): TClientFieldValue | null {\n // An entrypoint, but not a RefetchQueryNormalizationArtifact, has a reader ASTs.\n // So, we can only pass data to onComplete if makeNetworkRequest was passed an entrypoint.\n // This is awkward, since we don't express that in the types of the parameters\n // (i.e. FetchOptions could be passed, along with a RefetchQueryNormalizationArtifact).\n //\n // However, this isn't a big deal: RefetchQueryNormalizationArtifact is going away.\n if (artifact.kind === 'Entrypoint') {\n // TODO this is a smell!\n const fakeNetworkRequest = wrapResolvedValue(undefined);\n // TODO this is a smell — we know the network response is not in flight,\n // so we don't really care!\n const fakeNetworkRequestOptions = {\n suspendIfInFlight: false,\n throwOnNetworkError: false,\n };\n const resolvedReaderWithRefetchQueries =\n readerWithRefetchQueries as ReaderWithRefetchQueries<\n TReadFromStore,\n TClientFieldValue\n >;\n\n const fragment: FragmentReference<TReadFromStore, TClientFieldValue> = {\n kind: 'FragmentReference',\n // TODO this smells.\n readerWithRefetchQueries: wrapResolvedValue(\n resolvedReaderWithRefetchQueries,\n ),\n fieldName: resolvedReaderWithRefetchQueries.readerArtifact.fieldName,\n readerArtifactKind: resolvedReaderWithRefetchQueries.readerArtifact.kind,\n root,\n variables,\n networkRequest: fakeNetworkRequest,\n };\n const fragmentResult = readButDoNotEvaluate(\n environment,\n fragment,\n fakeNetworkRequestOptions,\n ).item;\n const readerArtifact = resolvedReaderWithRefetchQueries.readerArtifact;\n switch (readerArtifact.kind) {\n case 'ComponentReaderArtifact': {\n // @ts-expect-error We should find a way to encode this in the type system:\n // if we have a ComponentReaderArtifact, we will necessarily have a\n // TClientFieldValue which is a React.FC<...>\n return getOrCreateCachedComponent(\n environment,\n {\n kind: 'FragmentReference',\n readerWithRefetchQueries: wrapResolvedValue({\n kind: 'ReaderWithRefetchQueries',\n readerArtifact: readerArtifact,\n nestedRefetchQueries:\n resolvedReaderWithRefetchQueries.nestedRefetchQueries,\n }),\n fieldName: readerArtifact.fieldName,\n readerArtifactKind: readerArtifact.kind,\n root,\n variables,\n networkRequest: fakeNetworkRequest,\n } as const,\n fakeNetworkRequestOptions,\n );\n }\n case 'EagerReaderArtifact': {\n return readerArtifact.resolver({\n data: fragmentResult,\n parameters: variables,\n ...(readerArtifact.hasUpdatable\n ? {\n startUpdate: getOrCreateCachedStartUpdate(\n environment,\n fragment,\n fakeNetworkRequestOptions,\n ),\n }\n : undefined),\n });\n }\n }\n }\n return null;\n}\n\nfunction fetchNormalizationAstAndRetainArtifact<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TRawResponseType extends NetworkResponseObject,\n>(\n environment: IsographEnvironment,\n artifact:\n | RefetchQueryNormalizationArtifact\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n NormalizationAst | NormalizationAstLoader,\n TRawResponseType\n >,\n variables: ExtractParameters<TReadFromStore>,\n): RetainedQuery {\n const normalizationAst =\n artifact.networkRequestInfo.normalizationAst.kind === 'NormalizationAst'\n ? wrapResolvedValue(artifact.networkRequestInfo.normalizationAst)\n : wrapPromise(artifact.networkRequestInfo.normalizationAst.loader());\n\n const root = { __link: ROOT_ID, __typename: artifact.concreteType };\n const retainedQuery: RetainedQuery = {\n normalizationAst: normalizationAst,\n variables,\n root,\n };\n retainQuery(environment, retainedQuery);\n return retainedQuery;\n}\n\nfunction makeOptimisticUpdate<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n>(\n environment: IsographEnvironment,\n artifact:\n | RefetchQueryNormalizationArtifact\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n >,\n variables: ExtractParameters<TReadFromStore>,\n optimisticNetworkResponse: TRawResponseType,\n): OptimisticStoreLayer {\n const root = { __link: ROOT_ID, __typename: artifact.concreteType };\n\n if (\n artifact.networkRequestInfo.normalizationAst.kind ===\n 'NormalizationAstLoader'\n ) {\n throw new Error(\n 'Using lazy loaded normalizationAst with optimisticNetworkResponse is not supported.',\n );\n }\n const encounteredIds: EncounteredIds = new Map();\n const optimistic = (environment.store =\n addOptimisticNetworkResponseStoreLayer(environment.store));\n normalizeData(\n environment,\n environment.store,\n artifact.networkRequestInfo.normalizationAst.selections,\n optimisticNetworkResponse,\n variables,\n root,\n encounteredIds,\n );\n\n logMessage(environment, () => ({\n kind: 'AfterNormalization',\n store: environment.store,\n encounteredIds: encounteredIds,\n }));\n\n callSubscriptions(environment, encounteredIds);\n return optimistic;\n}\n\nfunction revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(\n environment: IsographEnvironment,\n status: NetworkRequestStatusUndisposedIncomplete,\n normalizeData: null | ((storeLayer: StoreLayerWithData) => void),\n): NetworkRequestStatusUndisposedComplete {\n if (status.optimistic != null) {\n revertOptimisticStoreLayerAndMaybeReplace(\n environment,\n status.optimistic,\n normalizeData,\n );\n }\n\n return {\n kind: 'UndisposedComplete',\n retainedQuery: status.retainedQuery,\n };\n}\n\nfunction unretainAndGarbageCollect(\n environment: IsographEnvironment,\n status: NetworkRequestStatusUndisposedComplete,\n): NetworkRequestStatusDisposed {\n const didUnretainSomeQuery = unretainQuery(environment, status.retainedQuery);\n if (didUnretainSomeQuery) {\n garbageCollectEnvironment(environment);\n }\n\n return {\n kind: 'Disposed',\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"makeNetworkRequest.mjs","names":[],"sources":["../../src/core/makeNetworkRequest.ts"],"sourcesContent":["import type { ItemCleanupPair } from '@isograph/disposable-types';\nimport {\n normalizeData,\n type EncounteredIds,\n type NetworkResponseObject,\n} from './cache';\nimport type { FetchOptions } from './check';\nimport { check, DEFAULT_SHOULD_FETCH_VALUE } from './check';\nimport { getOrCreateCachedComponent } from './componentCache';\nimport type {\n IsographEntrypoint,\n NormalizationAst,\n NormalizationAstLoader,\n ReaderWithRefetchQueries,\n RefetchQueryNormalizationArtifact,\n} from './entrypoint';\nimport type {\n ExtractParameters,\n FragmentReference,\n UnknownTReadFromStore,\n} from './FragmentReference';\nimport type { RetainedQuery } from './garbageCollection';\nimport {\n garbageCollectEnvironment,\n retainQuery,\n unretainQuery,\n} from './garbageCollection';\nimport type { IsographEnvironment, StoreLink } from './IsographEnvironment';\nimport { ROOT_ID } from './IsographEnvironment';\nimport { logMessage } from './logging';\nimport {\n addNetworkResponseStoreLayer,\n addOptimisticNetworkResponseStoreLayer,\n revertOptimisticStoreLayerAndMaybeReplace,\n type OptimisticStoreLayer,\n type StoreLayerWithData,\n} from './optimisticProxy';\nimport type { AnyError, PromiseWrapper } from './PromiseWrapper';\nimport { wrapPromise, wrapResolvedValue } from './PromiseWrapper';\nimport { readButDoNotEvaluate } from './read';\nimport { getOrCreateCachedStartUpdate } from './startUpdate';\nimport { callSubscriptions } from './subscribe';\n\nlet networkRequestId = 0;\n\nexport function maybeMakeNetworkRequest<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n>(\n environment: IsographEnvironment,\n artifact:\n | RefetchQueryNormalizationArtifact\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n >,\n variables: ExtractParameters<TReadFromStore>,\n readerWithRefetchQueries: PromiseWrapper<\n ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>\n > | null,\n fetchOptions: FetchOptions<TClientFieldValue, TRawResponseType> | null,\n): ItemCleanupPair<PromiseWrapper<void, AnyError>> {\n switch (fetchOptions?.shouldFetch ?? DEFAULT_SHOULD_FETCH_VALUE) {\n case 'Yes': {\n return makeNetworkRequest(\n environment,\n artifact,\n variables,\n readerWithRefetchQueries,\n fetchOptions,\n );\n }\n case 'No': {\n return retainQueryWithoutMakingNetworkRequest(\n environment,\n artifact,\n variables,\n );\n }\n case 'IfNecessary': {\n if (\n artifact.networkRequestInfo.normalizationAst.kind ===\n 'NormalizationAstLoader'\n ) {\n throw new Error(\n 'Using lazy loaded normalizationAst with shouldFetch: \"IfNecessary\" is ' +\n 'not supported as it will lead to a network waterfall.',\n );\n }\n const result = check(\n environment,\n artifact.networkRequestInfo.normalizationAst.selections,\n variables,\n {\n __link: ROOT_ID,\n __typename: artifact.concreteType,\n },\n );\n\n if (result.kind === 'EnoughData') {\n return retainQueryWithoutMakingNetworkRequest(\n environment,\n artifact,\n variables,\n );\n } else {\n return makeNetworkRequest(\n environment,\n artifact,\n variables,\n readerWithRefetchQueries,\n fetchOptions,\n );\n }\n }\n }\n}\n\nexport function retainQueryWithoutMakingNetworkRequest<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TRawResponseType extends NetworkResponseObject,\n>(\n environment: IsographEnvironment,\n artifact:\n | RefetchQueryNormalizationArtifact\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n NormalizationAst | NormalizationAstLoader,\n TRawResponseType\n >,\n variables: ExtractParameters<TReadFromStore>,\n): ItemCleanupPair<PromiseWrapper<void, AnyError>> {\n let status:\n | NetworkRequestStatusUndisposedComplete\n | NetworkRequestStatusDisposed = {\n kind: 'UndisposedComplete',\n retainedQuery: fetchNormalizationAstAndRetainArtifact(\n environment,\n artifact,\n variables,\n ),\n };\n return [\n wrapResolvedValue(undefined),\n () => {\n if (status.kind !== 'Disposed') {\n status = unretainAndGarbageCollect(environment, status);\n }\n },\n ];\n}\n\nexport function makeNetworkRequest<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n>(\n environment: IsographEnvironment,\n artifact:\n | RefetchQueryNormalizationArtifact\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n >,\n variables: ExtractParameters<TReadFromStore>,\n readerWithRefetchQueries: PromiseWrapper<\n ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>\n > | null,\n fetchOptions: FetchOptions<TClientFieldValue, TRawResponseType> | null,\n): ItemCleanupPair<PromiseWrapper<void, AnyError>> {\n // TODO this should be a DataId and stored in the store\n const myNetworkRequestId = networkRequestId + '';\n networkRequestId++;\n let status: NetworkRequestStatus = {\n kind: 'UndisposedIncomplete',\n retainedQuery: fetchNormalizationAstAndRetainArtifact(\n environment,\n artifact,\n variables,\n ),\n optimistic:\n fetchOptions?.optimisticNetworkResponse != null\n ? makeOptimisticUpdate(\n environment,\n artifact,\n variables,\n fetchOptions?.optimisticNetworkResponse,\n )\n : null,\n };\n\n logMessage(environment, () => ({\n kind: 'MakeNetworkRequest',\n artifact,\n variables,\n networkRequestId: myNetworkRequestId,\n }));\n\n // This should be an observable, not a promise\n const promise = Promise.all([\n environment.networkFunction(\n artifact.networkRequestInfo.operation,\n variables,\n ),\n status.retainedQuery.normalizationAst.promise,\n readerWithRefetchQueries?.promise,\n ])\n .then(([networkResponse, normalizationAst, readerWithRefetchQueries]) => {\n logMessage(environment, () => ({\n kind: 'ReceivedNetworkResponse',\n networkResponse,\n networkRequestId: myNetworkRequestId,\n }));\n\n if (networkResponse.errors != null) {\n try {\n fetchOptions?.onError?.();\n } catch {}\n throw new Error('Network response had errors', {\n cause: networkResponse,\n });\n }\n\n const root = { __link: ROOT_ID, __typename: artifact.concreteType };\n\n if (status.kind === 'UndisposedIncomplete') {\n if (status.optimistic != null) {\n status =\n revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(\n environment,\n status,\n (storeLayer) =>\n normalizeData(\n environment,\n storeLayer,\n normalizationAst.selections,\n networkResponse.data ?? {},\n variables,\n root,\n new Map(),\n ),\n );\n } else {\n const encounteredIds: EncounteredIds = new Map();\n environment.store = addNetworkResponseStoreLayer(environment.store);\n normalizeData(\n environment,\n environment.store,\n normalizationAst.selections,\n networkResponse.data ?? {},\n variables,\n root,\n encounteredIds,\n );\n\n logMessage(environment, () => ({\n kind: 'AfterNormalization',\n store: environment.store,\n encounteredIds: encounteredIds,\n }));\n\n callSubscriptions(environment, encounteredIds);\n\n status = {\n kind: 'UndisposedComplete',\n retainedQuery: status.retainedQuery,\n };\n }\n }\n\n const onComplete = fetchOptions?.onComplete;\n if (onComplete != null) {\n let data = readDataForOnComplete(\n artifact,\n environment,\n root,\n variables,\n readerWithRefetchQueries,\n );\n\n try {\n // @ts-expect-error this problem will be fixed when we remove RefetchQueryNormalizationArtifact\n // (or we can fix this by having a single param of type { kind: 'Entrypoint', entrypoint,\n // fetchOptions: FetchOptions<TReadFromStore> } | { kind: 'RefetchQuery', refetchQuery,\n // fetchOptions: FetchOptions<void> }).\n onComplete(data);\n } catch {}\n }\n })\n .catch((e) => {\n logMessage(environment, () => ({\n kind: 'ReceivedNetworkError',\n networkRequestId: myNetworkRequestId,\n error: e,\n }));\n try {\n fetchOptions?.onError?.();\n } catch {}\n\n if (status.kind === 'UndisposedIncomplete') {\n status =\n revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(\n environment,\n status,\n null,\n );\n }\n\n throw e;\n });\n\n const wrapper = wrapPromise(promise);\n\n const response: ItemCleanupPair<PromiseWrapper<void, AnyError>> = [\n wrapper,\n () => {\n if (status.kind === 'UndisposedIncomplete') {\n status =\n revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(\n environment,\n status,\n null,\n );\n }\n if (status.kind !== 'Disposed') {\n status = unretainAndGarbageCollect(environment, status);\n }\n },\n ];\n return response;\n}\n\ntype NetworkRequestStatusUndisposedIncomplete = {\n readonly kind: 'UndisposedIncomplete';\n readonly retainedQuery: RetainedQuery;\n readonly optimistic: OptimisticStoreLayer | null;\n};\n\ntype NetworkRequestStatusUndisposedComplete = {\n readonly kind: 'UndisposedComplete';\n readonly retainedQuery: RetainedQuery;\n};\n\ntype NetworkRequestStatusDisposed = {\n readonly kind: 'Disposed';\n};\n\ntype NetworkRequestStatus =\n | NetworkRequestStatusUndisposedIncomplete\n | NetworkRequestStatusUndisposedComplete\n | NetworkRequestStatusDisposed;\n\nfunction readDataForOnComplete<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n>(\n artifact:\n | RefetchQueryNormalizationArtifact\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n >,\n environment: IsographEnvironment,\n root: StoreLink,\n variables: ExtractParameters<TReadFromStore>,\n readerWithRefetchQueries:\n | ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>\n | undefined,\n): TClientFieldValue | null {\n // An entrypoint, but not a RefetchQueryNormalizationArtifact, has a reader ASTs.\n // So, we can only pass data to onComplete if makeNetworkRequest was passed an entrypoint.\n // This is awkward, since we don't express that in the types of the parameters\n // (i.e. FetchOptions could be passed, along with a RefetchQueryNormalizationArtifact).\n //\n // However, this isn't a big deal: RefetchQueryNormalizationArtifact is going away.\n if (artifact.kind === 'Entrypoint') {\n // TODO this is a smell!\n const fakeNetworkRequest = wrapResolvedValue(undefined);\n // TODO this is a smell — we know the network response is not in flight,\n // so we don't really care!\n const fakeNetworkRequestOptions = {\n suspendIfInFlight: false,\n throwOnNetworkError: false,\n };\n if (readerWithRefetchQueries == null) {\n throw new Error(\n 'Expected readerWithRefetchQueries to be not null. This is indicative of a bug in Isograph.',\n );\n }\n\n const fragment: FragmentReference<TReadFromStore, TClientFieldValue> = {\n kind: 'FragmentReference',\n // TODO this smells.\n readerWithRefetchQueries: wrapResolvedValue(readerWithRefetchQueries),\n fieldName: readerWithRefetchQueries.readerArtifact.fieldName,\n readerArtifactKind: readerWithRefetchQueries.readerArtifact.kind,\n root,\n variables,\n networkRequest: fakeNetworkRequest,\n };\n const fragmentResult = readButDoNotEvaluate(\n environment,\n fragment,\n fakeNetworkRequestOptions,\n ).item;\n const readerArtifact = readerWithRefetchQueries.readerArtifact;\n switch (readerArtifact.kind) {\n case 'ComponentReaderArtifact': {\n // @ts-expect-error We should find a way to encode this in the type system:\n // if we have a ComponentReaderArtifact, we will necessarily have a\n // TClientFieldValue which is a React.FC<...>\n return getOrCreateCachedComponent(\n environment,\n {\n kind: 'FragmentReference',\n readerWithRefetchQueries: wrapResolvedValue({\n kind: 'ReaderWithRefetchQueries',\n readerArtifact: readerArtifact,\n nestedRefetchQueries:\n readerWithRefetchQueries.nestedRefetchQueries,\n }),\n fieldName: readerArtifact.fieldName,\n readerArtifactKind: readerArtifact.kind,\n root,\n variables,\n networkRequest: fakeNetworkRequest,\n } as const,\n fakeNetworkRequestOptions,\n );\n }\n case 'EagerReaderArtifact': {\n return readerArtifact.resolver({\n data: fragmentResult,\n parameters: variables,\n ...(readerArtifact.hasUpdatable\n ? {\n startUpdate: getOrCreateCachedStartUpdate(\n environment,\n fragment,\n fakeNetworkRequestOptions,\n ),\n }\n : undefined),\n });\n }\n }\n }\n return null;\n}\n\nfunction fetchNormalizationAstAndRetainArtifact<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TRawResponseType extends NetworkResponseObject,\n>(\n environment: IsographEnvironment,\n artifact:\n | RefetchQueryNormalizationArtifact\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n NormalizationAst | NormalizationAstLoader,\n TRawResponseType\n >,\n variables: ExtractParameters<TReadFromStore>,\n): RetainedQuery {\n const normalizationAst =\n artifact.networkRequestInfo.normalizationAst.kind === 'NormalizationAst'\n ? wrapResolvedValue(artifact.networkRequestInfo.normalizationAst)\n : wrapPromise(artifact.networkRequestInfo.normalizationAst.loader());\n\n const root = { __link: ROOT_ID, __typename: artifact.concreteType };\n const retainedQuery: RetainedQuery = {\n normalizationAst: normalizationAst,\n variables,\n root,\n };\n retainQuery(environment, retainedQuery);\n return retainedQuery;\n}\n\nfunction makeOptimisticUpdate<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n>(\n environment: IsographEnvironment,\n artifact:\n | RefetchQueryNormalizationArtifact\n | IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n >,\n variables: ExtractParameters<TReadFromStore>,\n optimisticNetworkResponse: TRawResponseType,\n): OptimisticStoreLayer {\n const root = { __link: ROOT_ID, __typename: artifact.concreteType };\n\n if (\n artifact.networkRequestInfo.normalizationAst.kind ===\n 'NormalizationAstLoader'\n ) {\n throw new Error(\n 'Using lazy loaded normalizationAst with optimisticNetworkResponse is not supported.',\n );\n }\n const encounteredIds: EncounteredIds = new Map();\n const optimistic = (environment.store =\n addOptimisticNetworkResponseStoreLayer(environment.store));\n normalizeData(\n environment,\n environment.store,\n artifact.networkRequestInfo.normalizationAst.selections,\n optimisticNetworkResponse,\n variables,\n root,\n encounteredIds,\n );\n\n logMessage(environment, () => ({\n kind: 'AfterNormalization',\n store: environment.store,\n encounteredIds: encounteredIds,\n }));\n\n callSubscriptions(environment, encounteredIds);\n return optimistic;\n}\n\nfunction revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(\n environment: IsographEnvironment,\n status: NetworkRequestStatusUndisposedIncomplete,\n normalizeData: null | ((storeLayer: StoreLayerWithData) => void),\n): NetworkRequestStatusUndisposedComplete {\n if (status.optimistic != null) {\n revertOptimisticStoreLayerAndMaybeReplace(\n environment,\n status.optimistic,\n normalizeData,\n );\n }\n\n return {\n kind: 'UndisposedComplete',\n retainedQuery: status.retainedQuery,\n };\n}\n\nfunction unretainAndGarbageCollect(\n environment: IsographEnvironment,\n status: NetworkRequestStatusUndisposedComplete,\n): NetworkRequestStatusDisposed {\n const didUnretainSomeQuery = unretainQuery(environment, status.retainedQuery);\n if (didUnretainSomeQuery) {\n garbageCollectEnvironment(environment);\n }\n\n return {\n kind: 'Disposed',\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_subscribe = require('./subscribe.
|
|
2
|
-
const require_cache = require('./cache.
|
|
1
|
+
const require_subscribe = require('./subscribe.cjs');
|
|
2
|
+
const require_cache = require('./cache.cjs');
|
|
3
3
|
|
|
4
4
|
//#region src/core/optimisticProxy.ts
|
|
5
5
|
function getOrInsertRecord(dataLayer, link) {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { BaseStoreLayerData, StoreLayerData } from "./IsographEnvironment.
|
|
1
|
+
import { BaseStoreLayerData, StoreLayerData } from "./IsographEnvironment.cjs";
|
|
2
2
|
|
|
3
3
|
//#region src/core/optimisticProxy.d.ts
|
|
4
|
-
|
|
5
4
|
type BaseStoreLayer = {
|
|
6
5
|
readonly kind: 'BaseStoreLayer';
|
|
7
6
|
childStoreLayer: OptimisticStoreLayer | null;
|
|
@@ -40,4 +39,4 @@ type StoreLayer = OptimisticStoreLayer | NetworkResponseStoreLayer | StartUpdate
|
|
|
40
39
|
type StoreLayerWithData = BaseStoreLayer | NetworkResponseStoreLayer | OptimisticNetworkResponseStoreLayer;
|
|
41
40
|
//#endregion
|
|
42
41
|
export { StoreLayer, StoreLayerWithData };
|
|
43
|
-
//# sourceMappingURL=optimisticProxy.d.
|
|
42
|
+
//# sourceMappingURL=optimisticProxy.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optimisticProxy.d.cts","names":[],"sources":["../../src/core/optimisticProxy.ts"],"mappings":";;;KAmGY,cAAA;EAAA,SACD,IAAA;EACT,eAAA,EAAiB,oBAAA;EAAA,SACR,gBAAA;EAAA,SACA,IAAA,EAAM,kBAAA;AAAA;AAAA,KAGL,yBAAA;EAAA,SACD,IAAA;EACT,eAAA,EAAiB,oBAAA,GAAuB,qBAAA;EACxC,gBAAA,EAAkB,oBAAA,GAAuB,qBAAA;EAAA,SAChC,IAAA,EAAM,cAAA;AAAA;AAAA,KAGL,UAAA,qBAA+B,UAAA,KACzC,UAAA,EAAY,WAAA;AAAA,KAGF,qBAAA;EAAA,SACD,IAAA;EACT,eAAA,EAAiB,oBAAA,GAAuB,yBAAA;EACxC,gBAAA,EAAkB,oBAAA,GAAuB,yBAAA;EACzC,IAAA,EAAM,cAAA;EACN,WAAA,EAAa,UAAA,CAAW,qBAAA,GAAwB,cAAA;AAAA;AAAA,KAGtC,oBAAA,GACR,2BAAA,GACA,mCAAA;AAAA,KAEQ,2BAAA;EAAA,SACD,IAAA;EACT,eAAA,EACI,oBAAA,GACA,qBAAA,GACA,yBAAA;EAEJ,gBAAA,EACI,oBAAA,GACA,qBAAA,GACA,yBAAA,GACA,cAAA;EACJ,IAAA,EAAM,cAAA;EAAA,SACG,WAAA,EAAa,UAAA,CAAW,2BAAA;AAAA;AAAA,KAGvB,mCAAA;EAAA,SACD,IAAA;EACT,eAAA,EACI,oBAAA,GACA,qBAAA,GACA,yBAAA;EAEJ,gBAAA,EACI,oBAAA,GACA,qBAAA,GACA,yBAAA,GACA,cAAA;EACJ,IAAA,EAAM,cAAA;AAAA;AAAA,KAiVI,UAAA,GACR,oBAAA,GACA,yBAAA,GACA,qBAAA,GACA,cAAA;AAAA,KAEQ,kBAAA,GACR,cAAA,GACA,yBAAA,GACA,mCAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimisticProxy.d.mts","names":[],"sources":["../../src/core/optimisticProxy.ts"],"
|
|
1
|
+
{"version":3,"file":"optimisticProxy.d.mts","names":[],"sources":["../../src/core/optimisticProxy.ts"],"mappings":";;;KAmGY,cAAA;EAAA,SACD,IAAA;EACT,eAAA,EAAiB,oBAAA;EAAA,SACR,gBAAA;EAAA,SACA,IAAA,EAAM,kBAAA;AAAA;AAAA,KAGL,yBAAA;EAAA,SACD,IAAA;EACT,eAAA,EAAiB,oBAAA,GAAuB,qBAAA;EACxC,gBAAA,EAAkB,oBAAA,GAAuB,qBAAA;EAAA,SAChC,IAAA,EAAM,cAAA;AAAA;AAAA,KAGL,UAAA,qBAA+B,UAAA,KACzC,UAAA,EAAY,WAAA;AAAA,KAGF,qBAAA;EAAA,SACD,IAAA;EACT,eAAA,EAAiB,oBAAA,GAAuB,yBAAA;EACxC,gBAAA,EAAkB,oBAAA,GAAuB,yBAAA;EACzC,IAAA,EAAM,cAAA;EACN,WAAA,EAAa,UAAA,CAAW,qBAAA,GAAwB,cAAA;AAAA;AAAA,KAGtC,oBAAA,GACR,2BAAA,GACA,mCAAA;AAAA,KAEQ,2BAAA;EAAA,SACD,IAAA;EACT,eAAA,EACI,oBAAA,GACA,qBAAA,GACA,yBAAA;EAEJ,gBAAA,EACI,oBAAA,GACA,qBAAA,GACA,yBAAA,GACA,cAAA;EACJ,IAAA,EAAM,cAAA;EAAA,SACG,WAAA,EAAa,UAAA,CAAW,2BAAA;AAAA;AAAA,KAGvB,mCAAA;EAAA,SACD,IAAA;EACT,eAAA,EACI,oBAAA,GACA,qBAAA,GACA,yBAAA;EAEJ,gBAAA,EACI,oBAAA,GACA,qBAAA,GACA,yBAAA,GACA,cAAA;EACJ,IAAA,EAAM,cAAA;AAAA;AAAA,KAiVI,UAAA,GACR,oBAAA,GACA,yBAAA,GACA,qBAAA,GACA,cAAA;AAAA,KAEQ,kBAAA,GACR,cAAA,GACA,yBAAA,GACA,mCAAA"}
|