@isograph/react 0.0.0-main-3de26263 → 0.0.0-main-709dc2bb
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 -2
- package/dist/_virtual/rolldown_runtime.js +25 -0
- package/dist/core/FragmentReference.d.mts +38 -0
- package/dist/core/FragmentReference.d.mts.map +1 -0
- package/dist/core/FragmentReference.d.ts +31 -29
- package/dist/core/FragmentReference.d.ts.map +1 -1
- package/dist/core/FragmentReference.js +7 -5
- package/dist/core/FragmentReference.mjs +10 -0
- package/dist/core/FragmentReference.mjs.map +1 -0
- package/dist/core/IsographEnvironment.d.mts +89 -0
- package/dist/core/IsographEnvironment.d.mts.map +1 -0
- package/dist/core/IsographEnvironment.d.ts +76 -81
- package/dist/core/IsographEnvironment.d.ts.map +1 -1
- package/dist/core/IsographEnvironment.js +59 -82
- package/dist/core/IsographEnvironment.mjs +67 -0
- package/dist/core/IsographEnvironment.mjs.map +1 -0
- package/dist/core/PromiseWrapper.d.mts +36 -0
- package/dist/core/PromiseWrapper.d.mts.map +1 -0
- package/dist/core/PromiseWrapper.d.ts +26 -23
- package/dist/core/PromiseWrapper.d.ts.map +1 -1
- package/dist/core/PromiseWrapper.js +45 -43
- package/dist/core/PromiseWrapper.mjs +49 -0
- package/dist/core/PromiseWrapper.mjs.map +1 -0
- package/dist/core/areEqualWithDeepComparison.js +56 -93
- package/dist/core/areEqualWithDeepComparison.mjs +62 -0
- package/dist/core/areEqualWithDeepComparison.mjs.map +1 -0
- package/dist/core/brand.d.mts +19 -0
- package/dist/core/brand.d.mts.map +1 -0
- package/dist/core/brand.d.ts +6 -6
- package/dist/core/brand.d.ts.map +1 -1
- package/dist/core/cache.d.mts +20 -0
- package/dist/core/cache.d.mts.map +1 -0
- package/dist/core/cache.d.ts +18 -24
- package/dist/core/cache.d.ts.map +1 -1
- package/dist/core/cache.js +203 -306
- package/dist/core/cache.mjs +237 -0
- package/dist/core/cache.mjs.map +1 -0
- package/dist/core/check.d.mts +28 -0
- package/dist/core/check.d.mts.map +1 -0
- package/dist/core/check.d.ts +21 -19
- package/dist/core/check.d.ts.map +1 -1
- package/dist/core/check.js +80 -122
- package/dist/core/check.mjs +84 -0
- package/dist/core/check.mjs.map +1 -0
- package/dist/core/componentCache.js +9 -10
- package/dist/core/componentCache.mjs +12 -0
- package/dist/core/componentCache.mjs.map +1 -0
- package/dist/core/entrypoint.d.mts +99 -0
- package/dist/core/entrypoint.d.mts.map +1 -0
- package/dist/core/entrypoint.d.ts +83 -80
- package/dist/core/entrypoint.d.ts.map +1 -1
- package/dist/core/entrypoint.js +6 -5
- package/dist/core/entrypoint.mjs +8 -0
- package/dist/core/entrypoint.mjs.map +1 -0
- package/dist/core/garbageCollection.d.mts +18 -0
- package/dist/core/garbageCollection.d.mts.map +1 -0
- package/dist/core/garbageCollection.d.ts +15 -16
- package/dist/core/garbageCollection.d.ts.map +1 -1
- package/dist/core/garbageCollection.js +76 -120
- package/dist/core/garbageCollection.mjs +89 -0
- package/dist/core/garbageCollection.mjs.map +1 -0
- package/dist/core/getOrCreateCacheForArtifact.js +35 -38
- package/dist/core/getOrCreateCacheForArtifact.mjs +38 -0
- package/dist/core/getOrCreateCacheForArtifact.mjs.map +1 -0
- package/dist/core/logging.d.mts +95 -0
- package/dist/core/logging.d.mts.map +1 -0
- package/dist/core/logging.d.ts +66 -61
- package/dist/core/logging.d.ts.map +1 -1
- package/dist/core/logging.js +17 -18
- package/dist/core/logging.mjs +20 -0
- package/dist/core/logging.mjs.map +1 -0
- package/dist/core/makeNetworkRequest.d.mts +13 -0
- package/dist/core/makeNetworkRequest.d.mts.map +1 -0
- package/dist/core/makeNetworkRequest.d.ts +12 -10
- package/dist/core/makeNetworkRequest.d.ts.map +1 -1
- package/dist/core/makeNetworkRequest.js +180 -260
- package/dist/core/makeNetworkRequest.mjs +195 -0
- package/dist/core/makeNetworkRequest.mjs.map +1 -0
- package/dist/core/optimisticProxy.d.mts +43 -0
- package/dist/core/optimisticProxy.d.mts.map +1 -0
- package/dist/core/optimisticProxy.d.ts +37 -53
- package/dist/core/optimisticProxy.d.ts.map +1 -1
- package/dist/core/optimisticProxy.js +245 -353
- package/dist/core/optimisticProxy.mjs +268 -0
- package/dist/core/optimisticProxy.mjs.map +1 -0
- package/dist/core/read.d.mts +29 -0
- package/dist/core/read.d.mts.map +1 -0
- package/dist/core/read.d.ts +23 -29
- package/dist/core/read.d.ts.map +1 -1
- package/dist/core/read.js +435 -634
- package/dist/core/read.mjs +456 -0
- package/dist/core/read.mjs.map +1 -0
- package/dist/core/reader.d.mts +89 -0
- package/dist/core/reader.d.mts.map +1 -0
- package/dist/core/reader.d.ts +78 -79
- package/dist/core/reader.d.ts.map +1 -1
- package/dist/core/startUpdate.js +115 -149
- package/dist/core/startUpdate.mjs +125 -0
- package/dist/core/startUpdate.mjs.map +1 -0
- package/dist/core/subscribe.d.mts +12 -0
- package/dist/core/subscribe.d.mts.map +1 -0
- package/dist/core/subscribe.d.ts +11 -7
- package/dist/core/subscribe.d.ts.map +1 -1
- package/dist/core/subscribe.js +67 -109
- package/dist/core/subscribe.mjs +79 -0
- package/dist/core/subscribe.mjs.map +1 -0
- package/dist/core/util.d.mts +27 -0
- package/dist/core/util.d.mts.map +1 -0
- package/dist/core/util.d.ts +21 -24
- package/dist/core/util.d.ts.map +1 -1
- package/dist/core/util.js +17 -23
- package/dist/core/util.mjs +21 -0
- package/dist/core/util.mjs.map +1 -0
- package/dist/core/writeData.d.mts +11 -0
- package/dist/core/writeData.d.mts.map +1 -0
- package/dist/core/writeData.d.ts +10 -6
- package/dist/core/writeData.d.ts.map +1 -1
- package/dist/core/writeData.js +39 -34
- package/dist/core/writeData.mjs +42 -0
- package/dist/core/writeData.mjs.map +1 -0
- package/dist/index.d.mts +32 -0
- package/dist/index.d.ts +32 -32
- package/dist/index.js +70 -72
- package/dist/index.mjs +31 -0
- package/dist/loadable-hooks/useClientSideDefer.d.mts +12 -0
- package/dist/loadable-hooks/useClientSideDefer.d.mts.map +1 -0
- package/dist/loadable-hooks/useClientSideDefer.d.ts +9 -13
- package/dist/loadable-hooks/useClientSideDefer.d.ts.map +1 -1
- package/dist/loadable-hooks/useClientSideDefer.js +13 -44
- package/dist/loadable-hooks/useClientSideDefer.mjs +14 -0
- package/dist/loadable-hooks/useClientSideDefer.mjs.map +1 -0
- package/dist/loadable-hooks/useConnectionSpecPagination.d.mts +33 -0
- package/dist/loadable-hooks/useConnectionSpecPagination.d.mts.map +1 -0
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts +26 -22
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
- package/dist/loadable-hooks/useConnectionSpecPagination.js +133 -176
- package/dist/loadable-hooks/useConnectionSpecPagination.mjs +134 -0
- package/dist/loadable-hooks/useConnectionSpecPagination.mjs.map +1 -0
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.mts +8 -0
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.mts.map +1 -0
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts +6 -3
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts.map +1 -1
- package/dist/loadable-hooks/useImperativeExposedMutationField.js +9 -12
- package/dist/loadable-hooks/useImperativeExposedMutationField.mjs +11 -0
- package/dist/loadable-hooks/useImperativeExposedMutationField.mjs.map +1 -0
- package/dist/loadable-hooks/useImperativeLoadableField.d.mts +19 -0
- package/dist/loadable-hooks/useImperativeLoadableField.d.mts.map +1 -0
- package/dist/loadable-hooks/useImperativeLoadableField.d.ts +15 -11
- package/dist/loadable-hooks/useImperativeLoadableField.d.ts.map +1 -1
- package/dist/loadable-hooks/useImperativeLoadableField.js +16 -12
- package/dist/loadable-hooks/useImperativeLoadableField.mjs +17 -0
- package/dist/loadable-hooks/useImperativeLoadableField.mjs.map +1 -0
- package/dist/loadable-hooks/useSkipLimitPagination.d.mts +24 -0
- package/dist/loadable-hooks/useSkipLimitPagination.d.mts.map +1 -0
- package/dist/loadable-hooks/useSkipLimitPagination.d.ts +19 -15
- package/dist/loadable-hooks/useSkipLimitPagination.d.ts.map +1 -1
- package/dist/loadable-hooks/useSkipLimitPagination.js +118 -164
- package/dist/loadable-hooks/useSkipLimitPagination.mjs +119 -0
- package/dist/loadable-hooks/useSkipLimitPagination.mjs.map +1 -0
- package/dist/react/FragmentReader.d.mts +18 -0
- package/dist/react/FragmentReader.d.mts.map +1 -0
- package/dist/react/FragmentReader.d.ts +16 -8
- package/dist/react/FragmentReader.d.ts.map +1 -1
- package/dist/react/FragmentReader.js +8 -7
- package/dist/react/FragmentReader.mjs +10 -0
- package/dist/react/FragmentReader.mjs.map +1 -0
- package/dist/react/FragmentRenderer.d.mts +20 -0
- package/dist/react/FragmentRenderer.d.mts.map +1 -0
- package/dist/react/FragmentRenderer.d.ts +18 -14
- package/dist/react/FragmentRenderer.d.ts.map +1 -1
- package/dist/react/FragmentRenderer.js +11 -33
- package/dist/react/FragmentRenderer.mjs +12 -0
- package/dist/react/FragmentRenderer.mjs.map +1 -0
- package/dist/react/IsographEnvironmentProvider.d.mts +17 -0
- package/dist/react/IsographEnvironmentProvider.d.mts.map +1 -0
- package/dist/react/IsographEnvironmentProvider.d.ts +15 -9
- package/dist/react/IsographEnvironmentProvider.d.ts.map +1 -1
- package/dist/react/IsographEnvironmentProvider.js +15 -39
- package/dist/react/IsographEnvironmentProvider.mjs +17 -0
- package/dist/react/IsographEnvironmentProvider.mjs.map +1 -0
- package/dist/react/LoadableFieldReader.d.mts +21 -0
- package/dist/react/LoadableFieldReader.d.mts.map +1 -0
- package/dist/react/LoadableFieldReader.d.ts +15 -13
- package/dist/react/LoadableFieldReader.d.ts.map +1 -1
- package/dist/react/LoadableFieldReader.js +13 -47
- package/dist/react/LoadableFieldReader.mjs +14 -0
- package/dist/react/LoadableFieldReader.mjs.map +1 -0
- package/dist/react/LoadableFieldRenderer.d.mts +22 -0
- package/dist/react/LoadableFieldRenderer.d.mts.map +1 -0
- package/dist/react/LoadableFieldRenderer.d.ts +16 -14
- package/dist/react/LoadableFieldRenderer.d.ts.map +1 -1
- package/dist/react/LoadableFieldRenderer.js +13 -70
- package/dist/react/LoadableFieldRenderer.mjs +14 -0
- package/dist/react/LoadableFieldRenderer.mjs.map +1 -0
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.mts +18 -0
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.mts.map +1 -0
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.ts +11 -3
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.ts.map +1 -1
- package/dist/react/RenderAfterCommit__DO_NOT_USE.js +17 -13
- package/dist/react/RenderAfterCommit__DO_NOT_USE.mjs +18 -0
- package/dist/react/RenderAfterCommit__DO_NOT_USE.mjs.map +1 -0
- package/dist/react/createIsographEnvironment.d.mts +9 -0
- package/dist/react/createIsographEnvironment.d.mts.map +1 -0
- package/dist/react/createIsographEnvironment.d.ts +7 -3
- package/dist/react/createIsographEnvironment.d.ts.map +1 -1
- package/dist/react/createIsographEnvironment.js +8 -6
- package/dist/react/createIsographEnvironment.mjs +11 -0
- package/dist/react/createIsographEnvironment.mjs.map +1 -0
- package/dist/react/maybeUnwrapNetworkRequest.js +9 -12
- package/dist/react/maybeUnwrapNetworkRequest.mjs +12 -0
- package/dist/react/maybeUnwrapNetworkRequest.mjs.map +1 -0
- package/dist/react/useImperativeReference.d.mts +15 -0
- package/dist/react/useImperativeReference.d.mts.map +1 -0
- package/dist/react/useImperativeReference.d.ts +13 -11
- package/dist/react/useImperativeReference.d.ts.map +1 -1
- package/dist/react/useImperativeReference.js +34 -30
- package/dist/react/useImperativeReference.mjs +35 -0
- package/dist/react/useImperativeReference.mjs.map +1 -0
- package/dist/react/useLazyReference.d.mts +13 -0
- package/dist/react/useLazyReference.d.mts.map +1 -0
- package/dist/react/useLazyReference.d.ts +11 -9
- package/dist/react/useLazyReference.d.ts.map +1 -1
- package/dist/react/useLazyReference.js +17 -40
- package/dist/react/useLazyReference.mjs +18 -0
- package/dist/react/useLazyReference.mjs.map +1 -0
- package/dist/react/useReadAndSubscribe.d.mts +20 -0
- package/dist/react/useReadAndSubscribe.d.mts.map +1 -0
- package/dist/react/useReadAndSubscribe.d.ts +14 -11
- package/dist/react/useReadAndSubscribe.d.ts.map +1 -1
- package/dist/react/useReadAndSubscribe.js +54 -63
- package/dist/react/useReadAndSubscribe.mjs +59 -0
- package/dist/react/useReadAndSubscribe.mjs.map +1 -0
- package/dist/react/useRerenderOnChange.d.mts +12 -0
- package/dist/react/useRerenderOnChange.d.mts.map +1 -0
- package/dist/react/useRerenderOnChange.d.ts +10 -6
- package/dist/react/useRerenderOnChange.d.ts.map +1 -1
- package/dist/react/useRerenderOnChange.js +16 -20
- package/dist/react/useRerenderOnChange.mjs +17 -0
- package/dist/react/useRerenderOnChange.mjs.map +1 -0
- package/dist/react/useResult.d.mts +8 -0
- package/dist/react/useResult.d.mts.map +1 -0
- package/dist/react/useResult.d.ts +7 -3
- package/dist/react/useResult.d.ts.map +1 -1
- package/dist/react/useResult.js +27 -30
- package/dist/react/useResult.mjs +30 -0
- package/dist/react/useResult.mjs.map +1 -0
- package/package.json +16 -8
- package/dist/core/areEqualWithDeepComparison.d.ts +0 -3
- package/dist/core/areEqualWithDeepComparison.d.ts.map +0 -1
- package/dist/core/brand.js +0 -2
- package/dist/core/componentCache.d.ts +0 -5
- package/dist/core/componentCache.d.ts.map +0 -1
- package/dist/core/getOrCreateCacheForArtifact.d.ts +0 -8
- package/dist/core/getOrCreateCacheForArtifact.d.ts.map +0 -1
- package/dist/core/reader.js +0 -2
- package/dist/core/startUpdate.d.ts +0 -9
- package/dist/core/startUpdate.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/react/maybeUnwrapNetworkRequest.d.ts +0 -4
- package/dist/react/maybeUnwrapNetworkRequest.d.ts.map +0 -1
|
@@ -1,32 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
|
|
2
|
+
const require_IsographEnvironment = require('../core/IsographEnvironment.js');
|
|
3
|
+
const require_makeNetworkRequest = require('../core/makeNetworkRequest.js');
|
|
4
|
+
const require_IsographEnvironmentProvider = require('./IsographEnvironmentProvider.js');
|
|
5
|
+
let __isograph_react_disposable_state = require("@isograph/react-disposable-state");
|
|
6
|
+
__isograph_react_disposable_state = require_rolldown_runtime.__toESM(__isograph_react_disposable_state);
|
|
7
|
+
|
|
8
|
+
//#region src/react/useImperativeReference.ts
|
|
8
9
|
function useImperativeReference(entrypoint) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
10
|
+
const { state, setState } = (0, __isograph_react_disposable_state.useUpdatableDisposableState)();
|
|
11
|
+
const environment = require_IsographEnvironmentProvider.useIsographEnvironment();
|
|
12
|
+
return {
|
|
13
|
+
fragmentReference: state !== __isograph_react_disposable_state.UNASSIGNED_STATE ? state : null,
|
|
14
|
+
loadFragmentReference: (variables, fetchOptions) => {
|
|
15
|
+
const { fieldName, readerArtifactKind, readerWithRefetchQueries } = require_IsographEnvironment.getOrLoadReaderWithRefetchQueries(environment, entrypoint.readerWithRefetchQueries);
|
|
16
|
+
const [networkRequest, disposeNetworkRequest] = require_makeNetworkRequest.maybeMakeNetworkRequest(environment, entrypoint, variables, readerWithRefetchQueries, fetchOptions ?? null);
|
|
17
|
+
setState([{
|
|
18
|
+
kind: "FragmentReference",
|
|
19
|
+
readerWithRefetchQueries,
|
|
20
|
+
fieldName,
|
|
21
|
+
readerArtifactKind,
|
|
22
|
+
root: {
|
|
23
|
+
__link: require_IsographEnvironment.ROOT_ID,
|
|
24
|
+
__typename: entrypoint.concreteType
|
|
25
|
+
},
|
|
26
|
+
variables,
|
|
27
|
+
networkRequest
|
|
28
|
+
}, () => {
|
|
29
|
+
disposeNetworkRequest();
|
|
30
|
+
}]);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
32
33
|
}
|
|
34
|
+
|
|
35
|
+
//#endregion
|
|
36
|
+
exports.useImperativeReference = useImperativeReference;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ROOT_ID, getOrLoadReaderWithRefetchQueries } from "../core/IsographEnvironment.mjs";
|
|
2
|
+
import { maybeMakeNetworkRequest } from "../core/makeNetworkRequest.mjs";
|
|
3
|
+
import { useIsographEnvironment } from "./IsographEnvironmentProvider.mjs";
|
|
4
|
+
import { UNASSIGNED_STATE, useUpdatableDisposableState } from "@isograph/react-disposable-state";
|
|
5
|
+
|
|
6
|
+
//#region src/react/useImperativeReference.ts
|
|
7
|
+
function useImperativeReference(entrypoint) {
|
|
8
|
+
const { state, setState } = useUpdatableDisposableState();
|
|
9
|
+
const environment = useIsographEnvironment();
|
|
10
|
+
return {
|
|
11
|
+
fragmentReference: state !== UNASSIGNED_STATE ? state : null,
|
|
12
|
+
loadFragmentReference: (variables, fetchOptions) => {
|
|
13
|
+
const { fieldName, readerArtifactKind, readerWithRefetchQueries } = getOrLoadReaderWithRefetchQueries(environment, entrypoint.readerWithRefetchQueries);
|
|
14
|
+
const [networkRequest, disposeNetworkRequest] = maybeMakeNetworkRequest(environment, entrypoint, variables, readerWithRefetchQueries, fetchOptions ?? null);
|
|
15
|
+
setState([{
|
|
16
|
+
kind: "FragmentReference",
|
|
17
|
+
readerWithRefetchQueries,
|
|
18
|
+
fieldName,
|
|
19
|
+
readerArtifactKind,
|
|
20
|
+
root: {
|
|
21
|
+
__link: ROOT_ID,
|
|
22
|
+
__typename: entrypoint.concreteType
|
|
23
|
+
},
|
|
24
|
+
variables,
|
|
25
|
+
networkRequest
|
|
26
|
+
}, () => {
|
|
27
|
+
disposeNetworkRequest();
|
|
28
|
+
}]);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { useImperativeReference };
|
|
35
|
+
//# sourceMappingURL=useImperativeReference.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useImperativeReference.mjs","names":[],"sources":["../../src/react/useImperativeReference.ts"],"sourcesContent":["import {\n UNASSIGNED_STATE,\n useUpdatableDisposableState,\n} from '@isograph/react-disposable-state';\nimport type { NetworkResponseObject } from '../core/cache';\nimport type { FetchOptions } from '../core/check';\nimport { type RequiredFetchOptions } from '../core/check';\nimport type { IsographEntrypoint } from '../core/entrypoint';\nimport {\n type NormalizationAst,\n type NormalizationAstLoader,\n} from '../core/entrypoint';\nimport type {\n ExtractParameters,\n FragmentReference,\n} from '../core/FragmentReference';\nimport { type UnknownTReadFromStore } from '../core/FragmentReference';\nimport {\n getOrLoadReaderWithRefetchQueries,\n ROOT_ID,\n} from '../core/IsographEnvironment';\nimport { maybeMakeNetworkRequest } from '../core/makeNetworkRequest';\nimport { useIsographEnvironment } from './IsographEnvironmentProvider';\n\nexport type UseImperativeReferenceResult<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType,\n> = {\n fragmentReference: FragmentReference<\n TReadFromStore,\n TClientFieldValue\n > | null;\n loadFragmentReference: (\n variables: ExtractParameters<TReadFromStore>,\n ...[fetchOptions]: NormalizationAstLoader extends TNormalizationAst\n ? [fetchOptions: RequiredFetchOptions<TClientFieldValue>]\n : [fetchOptions?: FetchOptions<TClientFieldValue, TRawResponseType>]\n ) => void;\n};\n\nexport function useImperativeReference<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n>(\n entrypoint: IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n >,\n): UseImperativeReferenceResult<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n> {\n const { state, setState } =\n useUpdatableDisposableState<\n FragmentReference<TReadFromStore, TClientFieldValue>\n >();\n const environment = useIsographEnvironment();\n return {\n fragmentReference: state !== UNASSIGNED_STATE ? state : null,\n loadFragmentReference: (\n variables: ExtractParameters<TReadFromStore>,\n fetchOptions?: FetchOptions<TClientFieldValue, TRawResponseType>,\n ) => {\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 setState([\n {\n kind: 'FragmentReference',\n readerWithRefetchQueries,\n fieldName,\n readerArtifactKind,\n root: { __link: ROOT_ID, __typename: entrypoint.concreteType },\n variables,\n networkRequest,\n },\n () => {\n disposeNetworkRequest();\n },\n ]);\n },\n };\n}\n"],"mappings":";;;;;;AA0CA,SAAgB,uBAMd,YAWA;CACA,MAAM,EAAE,OAAO,aACb,6BAEG;CACL,MAAM,cAAc,wBAAwB;AAC5C,QAAO;EACL,mBAAmB,UAAU,mBAAmB,QAAQ;EACxD,wBACE,WACA,iBACG;GACH,MAAM,EAAE,WAAW,oBAAoB,6BACrC,kCACE,aACA,WAAW,yBACZ;GACH,MAAM,CAAC,gBAAgB,yBAAyB,wBAC9C,aACA,YACA,WACA,0BACA,gBAAgB,KACjB;AACD,YAAS,CACP;IACE,MAAM;IACN;IACA;IACA;IACA,MAAM;KAAE,QAAQ;KAAS,YAAY,WAAW;KAAc;IAC9D;IACA;IACD,QACK;AACJ,2BAAuB;KAE1B,CAAC;;EAEL"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FetchOptions, RequiredFetchOptions } from "../core/check.mjs";
|
|
2
|
+
import { ExtractParameters, FragmentReference, UnknownTReadFromStore } from "../core/FragmentReference.mjs";
|
|
3
|
+
import { NetworkResponseObject } from "../core/cache.mjs";
|
|
4
|
+
import { IsographEntrypoint, NormalizationAst, NormalizationAstLoader } from "../core/entrypoint.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/react/useLazyReference.d.ts
|
|
7
|
+
|
|
8
|
+
declare function useLazyReference<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType extends NetworkResponseObject>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst, TRawResponseType>, variables: ExtractParameters<TReadFromStore>, ...[fetchOptions]: TNormalizationAst extends NormalizationAstLoader ? [fetchOptions: RequiredFetchOptions<TClientFieldValue>] : [fetchOptions?: FetchOptions<TClientFieldValue, TRawResponseType>]): NormalizationAst | NormalizationAstLoader extends TNormalizationAst ? unknown : {
|
|
9
|
+
fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>;
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { useLazyReference };
|
|
13
|
+
//# sourceMappingURL=useLazyReference.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLazyReference.d.mts","names":[],"sources":["../../src/react/useLazyReference.ts"],"sourcesContent":[],"mappings":";;;;;;;AAmByB,iBADT,gBACS,CAAA,uBAAA,qBAAA,EAAA,iBAAA,EAAA,0BAEG,gBAFH,GAEsB,sBAFtB,EAAA,yBAGE,qBAHF,CAAA,CAAA,UAAA,EAKX,kBALW,CAMrB,cANqB,EAOrB,iBAPqB,EAQrB,iBARqB,EASrB,gBATqB,CAAA,EAAA,SAAA,EAWZ,iBAXY,CAWM,cAXN,CAAA,EAAA,GAAA,CAAA,YAAA,CAAA,EAYJ,iBAZI,SAYsB,sBAZtB,GAAA,CAAA,YAAA,EAaJ,oBAbI,CAaiB,iBAbjB,CAAA,CAAA,GAAA,CAAA,YAAA,GAcH,YAdG,CAcU,iBAdV,EAc6B,gBAd7B,CAAA,CAAA,CAAA,EAetB,gBAfsB,GAeH,sBAfG,SAe4B,iBAf5B,GAAA,OAAA,GAAA;EAEG,iBAAA,EAgBH,iBAhBG,CAgBe,cAhBf,EAgB+B,iBAhB/B,CAAA;CAAmB"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { FetchOptions, RequiredFetchOptions } from "../core/check.js";
|
|
2
|
+
import { ExtractParameters, FragmentReference, UnknownTReadFromStore } from "../core/FragmentReference.js";
|
|
3
|
+
import { NetworkResponseObject } from "../core/cache.js";
|
|
4
|
+
import { IsographEntrypoint, NormalizationAst, NormalizationAstLoader } from "../core/entrypoint.js";
|
|
5
|
+
|
|
6
|
+
//#region src/react/useLazyReference.d.ts
|
|
7
|
+
|
|
8
|
+
declare function useLazyReference<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType extends NetworkResponseObject>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst, TRawResponseType>, variables: ExtractParameters<TReadFromStore>, ...[fetchOptions]: TNormalizationAst extends NormalizationAstLoader ? [fetchOptions: RequiredFetchOptions<TClientFieldValue>] : [fetchOptions?: FetchOptions<TClientFieldValue, TRawResponseType>]): NormalizationAst | NormalizationAstLoader extends TNormalizationAst ? unknown : {
|
|
9
|
+
fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>;
|
|
10
10
|
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { useLazyReference };
|
|
11
13
|
//# sourceMappingURL=useLazyReference.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLazyReference.d.ts","
|
|
1
|
+
{"version":3,"file":"useLazyReference.d.ts","names":[],"sources":["../../src/react/useLazyReference.ts"],"sourcesContent":[],"mappings":";;;;;;;AAmByB,iBADT,gBACS,CAAA,uBAAA,qBAAA,EAAA,iBAAA,EAAA,0BAEG,gBAFH,GAEsB,sBAFtB,EAAA,yBAGE,qBAHF,CAAA,CAAA,UAAA,EAKX,kBALW,CAMrB,cANqB,EAOrB,iBAPqB,EAQrB,iBARqB,EASrB,gBATqB,CAAA,EAAA,SAAA,EAWZ,iBAXY,CAWM,cAXN,CAAA,EAAA,GAAA,CAAA,YAAA,CAAA,EAYJ,iBAZI,SAYsB,sBAZtB,GAAA,CAAA,YAAA,EAaJ,oBAbI,CAaiB,iBAbjB,CAAA,CAAA,GAAA,CAAA,YAAA,GAcH,YAdG,CAcU,iBAdV,EAc6B,gBAd7B,CAAA,CAAA,CAAA,EAetB,gBAfsB,GAeH,sBAfG,SAe4B,iBAf5B,GAAA,OAAA,GAAA;EAEG,iBAAA,EAgBH,iBAhBG,CAgBe,cAhBf,EAgB+B,iBAhB/B,CAAA;CAAmB"}
|
|
@@ -1,42 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
|
|
2
|
+
const require_logging = require('../core/logging.js');
|
|
3
|
+
const require_IsographEnvironmentProvider = require('./IsographEnvironmentProvider.js');
|
|
4
|
+
const require_getOrCreateCacheForArtifact = require('../core/getOrCreateCacheForArtifact.js');
|
|
5
|
+
let __isograph_react_disposable_state = require("@isograph/react-disposable-state");
|
|
6
|
+
__isograph_react_disposable_state = require_rolldown_runtime.__toESM(__isograph_react_disposable_state);
|
|
7
|
+
|
|
8
|
+
//#region src/react/useLazyReference.ts
|
|
8
9
|
function useLazyReference(entrypoint, variables, ...[fetchOptions]) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}));
|
|
16
|
-
}
|
|
17
|
-
const cache = (0, getOrCreateCacheForArtifact_1.getOrCreateCacheForArtifact)(environment, entrypoint, variables, fetchOptions);
|
|
18
|
-
return {
|
|
19
|
-
fragmentReference: (0, react_disposable_state_1.useLazyDisposableState)(cache).state,
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
// @ts-ignore
|
|
23
|
-
function tsTests() {
|
|
24
|
-
let withAst;
|
|
25
|
-
let withAstLoader;
|
|
26
|
-
let withAstOrLoader;
|
|
27
|
-
useLazyReference(withAst, {});
|
|
28
|
-
useLazyReference(withAst, {}, { shouldFetch: 'Yes' });
|
|
29
|
-
useLazyReference(withAst, {}, { shouldFetch: 'IfNecessary' });
|
|
30
|
-
// @ts-expect-error if there's no ast, require `shouldFetch` to be specified
|
|
31
|
-
useLazyReference(withAstLoader, {});
|
|
32
|
-
useLazyReference(withAstLoader, {}, { shouldFetch: 'Yes' });
|
|
33
|
-
// @ts-expect-error if there's no ast, `shouldFetch` can't be `IfNecessary`
|
|
34
|
-
useLazyReference(withAstLoader, {}, { shouldFetch: 'IfNecessary' });
|
|
35
|
-
// if the type is unknown there can be no ast so we should use the same rules
|
|
36
|
-
// but because of TS bugs with inference we just return unknown
|
|
37
|
-
// @ts-expect-error this returns unknown which doesn't satisfy the constraint
|
|
38
|
-
useLazyReference(withAstOrLoader, {});
|
|
39
|
-
// @ts-expect-error this returns unknown which doesn't satisfy the constraint
|
|
40
|
-
useLazyReference(withAstOrLoader, {}, { shouldFetch: 'Yes' });
|
|
41
|
-
useLazyReference(withAstOrLoader, {}, { shouldFetch: 'IfNecessary' });
|
|
10
|
+
const environment = require_IsographEnvironmentProvider.useIsographEnvironment();
|
|
11
|
+
if (entrypoint?.kind !== "Entrypoint") require_logging.logMessage(environment, () => ({
|
|
12
|
+
kind: "NonEntrypointReceived",
|
|
13
|
+
entrypoint
|
|
14
|
+
}));
|
|
15
|
+
return { fragmentReference: (0, __isograph_react_disposable_state.useLazyDisposableState)(require_getOrCreateCacheForArtifact.getOrCreateCacheForArtifact(environment, entrypoint, variables, fetchOptions)).state };
|
|
42
16
|
}
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
exports.useLazyReference = useLazyReference;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { logMessage } from "../core/logging.mjs";
|
|
2
|
+
import { useIsographEnvironment } from "./IsographEnvironmentProvider.mjs";
|
|
3
|
+
import { getOrCreateCacheForArtifact } from "../core/getOrCreateCacheForArtifact.mjs";
|
|
4
|
+
import { useLazyDisposableState } from "@isograph/react-disposable-state";
|
|
5
|
+
|
|
6
|
+
//#region src/react/useLazyReference.ts
|
|
7
|
+
function useLazyReference(entrypoint, variables, ...[fetchOptions]) {
|
|
8
|
+
const environment = useIsographEnvironment();
|
|
9
|
+
if (entrypoint?.kind !== "Entrypoint") logMessage(environment, () => ({
|
|
10
|
+
kind: "NonEntrypointReceived",
|
|
11
|
+
entrypoint
|
|
12
|
+
}));
|
|
13
|
+
return { fragmentReference: useLazyDisposableState(getOrCreateCacheForArtifact(environment, entrypoint, variables, fetchOptions)).state };
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
export { useLazyReference };
|
|
18
|
+
//# sourceMappingURL=useLazyReference.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLazyReference.mjs","names":[],"sources":["../../src/react/useLazyReference.ts"],"sourcesContent":["import { useLazyDisposableState } from '@isograph/react-disposable-state';\nimport { type NetworkResponseObject } from '../core/cache';\nimport type { FetchOptions } from '../core/check';\nimport { type RequiredFetchOptions } from '../core/check';\nimport type { IsographEntrypoint } from '../core/entrypoint';\nimport {\n type NormalizationAst,\n type NormalizationAstLoader,\n} from '../core/entrypoint';\nimport type {\n ExtractParameters,\n FragmentReference,\n} from '../core/FragmentReference';\nimport { type UnknownTReadFromStore } from '../core/FragmentReference';\nimport { logMessage } from '../core/logging';\nimport { useIsographEnvironment } from './IsographEnvironmentProvider';\nimport { getOrCreateCacheForArtifact } from '../core/getOrCreateCacheForArtifact';\n\nexport function useLazyReference<\n TReadFromStore extends UnknownTReadFromStore,\n TClientFieldValue,\n TNormalizationAst extends NormalizationAst | NormalizationAstLoader,\n TRawResponseType extends NetworkResponseObject,\n>(\n entrypoint: IsographEntrypoint<\n TReadFromStore,\n TClientFieldValue,\n TNormalizationAst,\n TRawResponseType\n >,\n variables: ExtractParameters<TReadFromStore>,\n ...[fetchOptions]: TNormalizationAst extends NormalizationAstLoader\n ? [fetchOptions: RequiredFetchOptions<TClientFieldValue>]\n : [fetchOptions?: FetchOptions<TClientFieldValue, TRawResponseType>]\n): NormalizationAst | NormalizationAstLoader extends TNormalizationAst\n ? unknown\n : {\n fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue>;\n } {\n const environment = useIsographEnvironment();\n\n if (entrypoint?.kind !== 'Entrypoint') {\n // TODO have a separate error logger\n logMessage(environment, () => ({\n kind: 'NonEntrypointReceived',\n entrypoint,\n }));\n }\n\n const cache = getOrCreateCacheForArtifact(\n environment,\n entrypoint,\n variables,\n fetchOptions,\n );\n\n return {\n fragmentReference: useLazyDisposableState(cache).state,\n };\n}\n\n// @ts-ignore\nfunction tsTests() {\n let withAst!: IsographEntrypoint<any, unknown, NormalizationAst, any>;\n let withAstLoader!: IsographEntrypoint<\n any,\n unknown,\n NormalizationAstLoader,\n {}\n >;\n let withAstOrLoader!: IsographEntrypoint<\n any,\n unknown,\n NormalizationAst | NormalizationAstLoader,\n {}\n >;\n\n useLazyReference(withAst, {}) satisfies {};\n useLazyReference(withAst, {}, { shouldFetch: 'Yes' }) satisfies {};\n useLazyReference(withAst, {}, { shouldFetch: 'IfNecessary' }) satisfies {};\n\n // @ts-expect-error if there's no ast, require `shouldFetch` to be specified\n useLazyReference(withAstLoader, {});\n useLazyReference(withAstLoader, {}, { shouldFetch: 'Yes' }) satisfies {};\n // @ts-expect-error if there's no ast, `shouldFetch` can't be `IfNecessary`\n useLazyReference(withAstLoader, {}, { shouldFetch: 'IfNecessary' });\n\n // if the type is unknown there can be no ast so we should use the same rules\n // but because of TS bugs with inference we just return unknown\n // @ts-expect-error this returns unknown which doesn't satisfy the constraint\n useLazyReference(withAstOrLoader, {}) satisfies {};\n // @ts-expect-error this returns unknown which doesn't satisfy the constraint\n useLazyReference(withAstOrLoader, {}, { shouldFetch: 'Yes' }) satisfies {};\n useLazyReference(\n withAstOrLoader,\n {},\n { shouldFetch: 'IfNecessary' },\n // @ts-expect-error this returns unknown which doesn't satisfy the constraint\n ) satisfies {};\n}\n"],"mappings":";;;;;;AAkBA,SAAgB,iBAMd,YAMA,WACA,GAAG,CAAC,eAOA;CACJ,MAAM,cAAc,wBAAwB;AAE5C,KAAI,YAAY,SAAS,aAEvB,YAAW,oBAAoB;EAC7B,MAAM;EACN;EACD,EAAE;AAUL,QAAO,EACL,mBAAmB,uBARP,4BACZ,aACA,YACA,WACA,aACD,CAGiD,CAAC,OAClD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ReaderAst } from "../core/reader.mjs";
|
|
2
|
+
import { NetworkRequestReaderOptions, WithEncounteredRecords } from "../core/read.mjs";
|
|
3
|
+
import "../core/IsographEnvironment.mjs";
|
|
4
|
+
import { ExtractData, FragmentReference, UnknownTReadFromStore } from "../core/FragmentReference.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/react/useReadAndSubscribe.d.ts
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Read the data from a fragment reference and subscribe to updates.
|
|
10
|
+
*/
|
|
11
|
+
declare function useReadAndSubscribe<TReadFromStore extends UnknownTReadFromStore>(fragmentReference: FragmentReference<TReadFromStore, any>, networkRequestOptions: NetworkRequestReaderOptions, readerAst: ReaderAst<TReadFromStore>): ExtractData<TReadFromStore>;
|
|
12
|
+
declare function useSubscribeToMultiple<TReadFromStore extends UnknownTReadFromStore>(items: ReadonlyArray<{
|
|
13
|
+
records: WithEncounteredRecords<TReadFromStore>;
|
|
14
|
+
callback: (updatedRecords: WithEncounteredRecords<TReadFromStore>) => void;
|
|
15
|
+
fragmentReference: FragmentReference<TReadFromStore, any>;
|
|
16
|
+
readerAst: ReaderAst<TReadFromStore>;
|
|
17
|
+
}>): void;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { useReadAndSubscribe, useSubscribeToMultiple };
|
|
20
|
+
//# sourceMappingURL=useReadAndSubscribe.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useReadAndSubscribe.d.mts","names":[],"sources":["../../src/react/useReadAndSubscribe.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAwBA;AACyB,iBADT,mBACS,CAAA,uBAAA,qBAAA,CAAA,CAAA,iBAAA,EAEJ,iBAFI,CAEc,cAFd,EAAA,GAAA,CAAA,EAAA,qBAAA,EAGA,2BAHA,EAAA,SAAA,EAIZ,SAJY,CAIF,cAJE,CAAA,CAAA,EAKtB,WALsB,CAKV,cALU,CAAA;AAEc,iBAiBvB,sBAjBuB,CAAA,uBAkBd,qBAlBc,CAAA,CAAA,KAAA,EAoB9B,aApB8B,CAAA;EAAlB,OAAA,EAqBR,sBArBQ,CAqBe,cArBf,CAAA;EACI,QAAA,EAAA,CAAA,cAAA,EAqBM,sBArBN,CAqB6B,cArB7B,CAAA,EAAA,GAAA,IAAA;EACF,iBAAA,EAqBA,iBArBA,CAqBkB,cArBlB,EAAA,GAAA,CAAA;EAAV,SAAA,EAsBE,SAtBF,CAsBY,cAtBZ,CAAA;CACE,CAAA,CAAA,EAAA,IAAA"}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import { ReaderAst } from "../core/reader.js";
|
|
2
|
+
import { NetworkRequestReaderOptions, WithEncounteredRecords } from "../core/read.js";
|
|
3
|
+
import { ExtractData, FragmentReference, UnknownTReadFromStore } from "../core/FragmentReference.js";
|
|
4
|
+
|
|
5
|
+
//#region src/react/useReadAndSubscribe.d.ts
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
8
|
* Read the data from a fragment reference and subscribe to updates.
|
|
7
9
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
declare function useReadAndSubscribe<TReadFromStore extends UnknownTReadFromStore>(fragmentReference: FragmentReference<TReadFromStore, any>, networkRequestOptions: NetworkRequestReaderOptions, readerAst: ReaderAst<TReadFromStore>): ExtractData<TReadFromStore>;
|
|
11
|
+
declare function useSubscribeToMultiple<TReadFromStore extends UnknownTReadFromStore>(items: ReadonlyArray<{
|
|
12
|
+
records: WithEncounteredRecords<TReadFromStore>;
|
|
13
|
+
callback: (updatedRecords: WithEncounteredRecords<TReadFromStore>) => void;
|
|
14
|
+
fragmentReference: FragmentReference<TReadFromStore, any>;
|
|
15
|
+
readerAst: ReaderAst<TReadFromStore>;
|
|
14
16
|
}>): void;
|
|
15
|
-
|
|
17
|
+
//#endregion
|
|
18
|
+
export { useReadAndSubscribe, useSubscribeToMultiple };
|
|
16
19
|
//# sourceMappingURL=useReadAndSubscribe.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReadAndSubscribe.d.ts","
|
|
1
|
+
{"version":3,"file":"useReadAndSubscribe.d.ts","names":[],"sources":["../../src/react/useReadAndSubscribe.ts"],"sourcesContent":[],"mappings":";;;;;;;AAwBA;;AAGuC,iBAHvB,mBAGuB,CAAA,uBAFd,qBAEc,CAAA,CAAA,iBAAA,EAAlB,iBAAkB,CAAA,cAAA,EAAA,GAAA,CAAA,EAAA,qBAAA,EACd,2BADc,EAAA,SAAA,EAE1B,SAF0B,CAEhB,cAFgB,CAAA,CAAA,EAGpC,WAHoC,CAGxB,cAHwB,CAAA;AAAlB,iBAiBL,sBAjBK,CAAA,uBAkBI,qBAlBJ,CAAA,CAAA,KAAA,EAoBZ,aApBY,CAAA;EACI,OAAA,EAoBZ,sBApBY,CAoBW,cApBX,CAAA;EACF,QAAA,EAAA,CAAA,cAAA,EAoBQ,sBApBR,CAoB+B,cApB/B,CAAA,EAAA,GAAA,IAAA;EAAV,iBAAA,EAqBU,iBArBV,CAqB4B,cArB5B,EAAA,GAAA,CAAA;EACE,SAAA,EAqBA,SArBA,CAqBU,cArBV,CAAA;CAAZ,CAAA,CAAA,EAAA,IAAA"}
|
|
@@ -1,71 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const useRerenderOnChange_1 = require("./useRerenderOnChange");
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
|
|
2
|
+
const require_PromiseWrapper = require('../core/PromiseWrapper.js');
|
|
3
|
+
const require_logging = require('../core/logging.js');
|
|
4
|
+
const require_FragmentReference = require('../core/FragmentReference.js');
|
|
5
|
+
const require_read = require('../core/read.js');
|
|
6
|
+
const require_subscribe = require('../core/subscribe.js');
|
|
7
|
+
const require_IsographEnvironmentProvider = require('./IsographEnvironmentProvider.js');
|
|
8
|
+
const require_maybeUnwrapNetworkRequest = require('./maybeUnwrapNetworkRequest.js');
|
|
9
|
+
const require_useRerenderOnChange = require('./useRerenderOnChange.js');
|
|
10
|
+
let react = require("react");
|
|
11
|
+
react = require_rolldown_runtime.__toESM(react);
|
|
12
|
+
|
|
13
|
+
//#region src/react/useReadAndSubscribe.ts
|
|
15
14
|
/**
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
* Read the data from a fragment reference and subscribe to updates.
|
|
16
|
+
*/
|
|
18
17
|
function useReadAndSubscribe(fragmentReference, networkRequestOptions, readerAst) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
const environment = require_IsographEnvironmentProvider.useIsographEnvironment();
|
|
19
|
+
const [readOutDataAndRecords, setReadOutDataAndRecords] = (0, react.useState)(() => require_read.readButDoNotEvaluate(environment, fragmentReference, networkRequestOptions));
|
|
20
|
+
require_useRerenderOnChange.useRerenderOnChange(readOutDataAndRecords, fragmentReference, setReadOutDataAndRecords, readerAst);
|
|
21
|
+
return readOutDataAndRecords.item;
|
|
23
22
|
}
|
|
24
23
|
function useSubscribeToMultiple(items) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
// TODO find out
|
|
39
|
-
[
|
|
40
|
-
items
|
|
41
|
-
.map(({ fragmentReference }) => {
|
|
42
|
-
(0, FragmentReference_1.stableIdForFragmentReference)(fragmentReference);
|
|
43
|
-
})
|
|
44
|
-
.join('.'),
|
|
45
|
-
]);
|
|
24
|
+
const environment = require_IsographEnvironmentProvider.useIsographEnvironment();
|
|
25
|
+
(0, react.useEffect)(() => {
|
|
26
|
+
const cleanupFns = items.map(({ records, callback, fragmentReference, readerAst }) => {
|
|
27
|
+
return require_subscribe.subscribe(environment, records, fragmentReference, callback, readerAst);
|
|
28
|
+
});
|
|
29
|
+
return () => {
|
|
30
|
+
cleanupFns.forEach((loader) => {
|
|
31
|
+
loader();
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
}, [items.map(({ fragmentReference }) => {
|
|
35
|
+
require_FragmentReference.stableIdForFragmentReference(fragmentReference);
|
|
36
|
+
}).join(".")]);
|
|
46
37
|
}
|
|
47
38
|
const componentFunction = (environment, fragmentReference, networkRequestOptions, startUpdate) => {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
const idString = `(type: ${fragmentReference.root.__typename}, id: ${fragmentReference.root.__link})`;
|
|
68
|
-
Component.displayName = `${fragmentReference.fieldName} ${idString} @component`;
|
|
69
|
-
return Component;
|
|
39
|
+
function Component(additionalRuntimeProps) {
|
|
40
|
+
require_maybeUnwrapNetworkRequest.maybeUnwrapNetworkRequest(fragmentReference.networkRequest, networkRequestOptions);
|
|
41
|
+
const readerWithRefetchQueries = require_PromiseWrapper.readPromise(fragmentReference.readerWithRefetchQueries);
|
|
42
|
+
const data = useReadAndSubscribe(fragmentReference, networkRequestOptions, readerWithRefetchQueries.readerArtifact.readerAst);
|
|
43
|
+
require_logging.logMessage(environment, () => ({
|
|
44
|
+
kind: "ComponentRerendered",
|
|
45
|
+
componentName: fragmentReference.fieldName,
|
|
46
|
+
rootLink: fragmentReference.root
|
|
47
|
+
}));
|
|
48
|
+
return readerWithRefetchQueries.readerArtifact.resolver({
|
|
49
|
+
data,
|
|
50
|
+
parameters: fragmentReference.variables,
|
|
51
|
+
startUpdate: readerWithRefetchQueries.readerArtifact.hasUpdatable ? startUpdate : void 0
|
|
52
|
+
}, additionalRuntimeProps);
|
|
53
|
+
}
|
|
54
|
+
const idString = `(type: ${fragmentReference.root.__typename}, id: ${fragmentReference.root.__link})`;
|
|
55
|
+
Component.displayName = `${fragmentReference.fieldName} ${idString} @component`;
|
|
56
|
+
return Component;
|
|
70
57
|
};
|
|
58
|
+
|
|
59
|
+
//#endregion
|
|
71
60
|
exports.componentFunction = componentFunction;
|
|
61
|
+
exports.useReadAndSubscribe = useReadAndSubscribe;
|
|
62
|
+
exports.useSubscribeToMultiple = useSubscribeToMultiple;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { readPromise } from "../core/PromiseWrapper.mjs";
|
|
2
|
+
import { logMessage } from "../core/logging.mjs";
|
|
3
|
+
import { stableIdForFragmentReference } from "../core/FragmentReference.mjs";
|
|
4
|
+
import { readButDoNotEvaluate } from "../core/read.mjs";
|
|
5
|
+
import { subscribe } from "../core/subscribe.mjs";
|
|
6
|
+
import { useIsographEnvironment } from "./IsographEnvironmentProvider.mjs";
|
|
7
|
+
import { maybeUnwrapNetworkRequest } from "./maybeUnwrapNetworkRequest.mjs";
|
|
8
|
+
import { useRerenderOnChange } from "./useRerenderOnChange.mjs";
|
|
9
|
+
import { useEffect, useState } from "react";
|
|
10
|
+
|
|
11
|
+
//#region src/react/useReadAndSubscribe.ts
|
|
12
|
+
/**
|
|
13
|
+
* Read the data from a fragment reference and subscribe to updates.
|
|
14
|
+
*/
|
|
15
|
+
function useReadAndSubscribe(fragmentReference, networkRequestOptions, readerAst) {
|
|
16
|
+
const environment = useIsographEnvironment();
|
|
17
|
+
const [readOutDataAndRecords, setReadOutDataAndRecords] = useState(() => readButDoNotEvaluate(environment, fragmentReference, networkRequestOptions));
|
|
18
|
+
useRerenderOnChange(readOutDataAndRecords, fragmentReference, setReadOutDataAndRecords, readerAst);
|
|
19
|
+
return readOutDataAndRecords.item;
|
|
20
|
+
}
|
|
21
|
+
function useSubscribeToMultiple(items) {
|
|
22
|
+
const environment = useIsographEnvironment();
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
const cleanupFns = items.map(({ records, callback, fragmentReference, readerAst }) => {
|
|
25
|
+
return subscribe(environment, records, fragmentReference, callback, readerAst);
|
|
26
|
+
});
|
|
27
|
+
return () => {
|
|
28
|
+
cleanupFns.forEach((loader) => {
|
|
29
|
+
loader();
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
}, [items.map(({ fragmentReference }) => {
|
|
33
|
+
stableIdForFragmentReference(fragmentReference);
|
|
34
|
+
}).join(".")]);
|
|
35
|
+
}
|
|
36
|
+
const componentFunction = (environment, fragmentReference, networkRequestOptions, startUpdate) => {
|
|
37
|
+
function Component(additionalRuntimeProps) {
|
|
38
|
+
maybeUnwrapNetworkRequest(fragmentReference.networkRequest, networkRequestOptions);
|
|
39
|
+
const readerWithRefetchQueries = readPromise(fragmentReference.readerWithRefetchQueries);
|
|
40
|
+
const data = useReadAndSubscribe(fragmentReference, networkRequestOptions, readerWithRefetchQueries.readerArtifact.readerAst);
|
|
41
|
+
logMessage(environment, () => ({
|
|
42
|
+
kind: "ComponentRerendered",
|
|
43
|
+
componentName: fragmentReference.fieldName,
|
|
44
|
+
rootLink: fragmentReference.root
|
|
45
|
+
}));
|
|
46
|
+
return readerWithRefetchQueries.readerArtifact.resolver({
|
|
47
|
+
data,
|
|
48
|
+
parameters: fragmentReference.variables,
|
|
49
|
+
startUpdate: readerWithRefetchQueries.readerArtifact.hasUpdatable ? startUpdate : void 0
|
|
50
|
+
}, additionalRuntimeProps);
|
|
51
|
+
}
|
|
52
|
+
const idString = `(type: ${fragmentReference.root.__typename}, id: ${fragmentReference.root.__link})`;
|
|
53
|
+
Component.displayName = `${fragmentReference.fieldName} ${idString} @component`;
|
|
54
|
+
return Component;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
//#endregion
|
|
58
|
+
export { componentFunction, useReadAndSubscribe, useSubscribeToMultiple };
|
|
59
|
+
//# sourceMappingURL=useReadAndSubscribe.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useReadAndSubscribe.mjs","names":["componentFunction: IsographComponentFunction"],"sources":["../../src/react/useReadAndSubscribe.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport {\n type ExtractData,\n type FragmentReference,\n stableIdForFragmentReference,\n type UnknownTReadFromStore,\n} from '../core/FragmentReference';\nimport type { IsographComponentFunction } from '../core/IsographEnvironment';\nimport { logMessage } from '../core/logging';\nimport { readPromise } from '../core/PromiseWrapper';\nimport {\n type NetworkRequestReaderOptions,\n readButDoNotEvaluate,\n type WithEncounteredRecords,\n} from '../core/read';\nimport type { ReaderAst } from '../core/reader';\nimport { subscribe } from '../core/subscribe';\nimport { useIsographEnvironment } from './IsographEnvironmentProvider';\nimport { maybeUnwrapNetworkRequest } from './maybeUnwrapNetworkRequest';\nimport { useRerenderOnChange } from './useRerenderOnChange';\n\n/**\n * Read the data from a fragment reference and subscribe to updates.\n */\nexport function useReadAndSubscribe<\n TReadFromStore extends UnknownTReadFromStore,\n>(\n fragmentReference: FragmentReference<TReadFromStore, any>,\n networkRequestOptions: NetworkRequestReaderOptions,\n readerAst: ReaderAst<TReadFromStore>,\n): ExtractData<TReadFromStore> {\n const environment = useIsographEnvironment();\n const [readOutDataAndRecords, setReadOutDataAndRecords] = useState(() =>\n readButDoNotEvaluate(environment, fragmentReference, networkRequestOptions),\n );\n useRerenderOnChange(\n readOutDataAndRecords,\n fragmentReference,\n setReadOutDataAndRecords,\n readerAst,\n );\n return readOutDataAndRecords.item;\n}\n\nexport function useSubscribeToMultiple<\n TReadFromStore extends UnknownTReadFromStore,\n>(\n items: ReadonlyArray<{\n records: WithEncounteredRecords<TReadFromStore>;\n callback: (updatedRecords: WithEncounteredRecords<TReadFromStore>) => void;\n fragmentReference: FragmentReference<TReadFromStore, any>;\n readerAst: ReaderAst<TReadFromStore>;\n }>,\n) {\n const environment = useIsographEnvironment();\n useEffect(\n () => {\n const cleanupFns = items.map(\n ({ records, callback, fragmentReference, readerAst }) => {\n return subscribe(\n environment,\n records,\n fragmentReference,\n callback,\n readerAst,\n );\n },\n );\n return () => {\n cleanupFns.forEach((loader) => {\n loader();\n });\n };\n },\n // By analogy to useReadAndSubscribe, we can have an empty dependency array?\n // Maybe callback has to be depended on. I don't know!\n // TODO find out\n [\n items\n .map(({ fragmentReference }) => {\n stableIdForFragmentReference(fragmentReference);\n })\n .join('.'),\n ],\n );\n}\n\nexport const componentFunction: IsographComponentFunction = (\n environment,\n fragmentReference,\n networkRequestOptions,\n startUpdate,\n) => {\n function Component(additionalRuntimeProps: { [key: string]: any }) {\n maybeUnwrapNetworkRequest(\n fragmentReference.networkRequest,\n networkRequestOptions,\n );\n const readerWithRefetchQueries = readPromise(\n fragmentReference.readerWithRefetchQueries,\n );\n\n const data = useReadAndSubscribe(\n fragmentReference,\n networkRequestOptions,\n readerWithRefetchQueries.readerArtifact.readerAst,\n );\n\n logMessage(environment, () => ({\n kind: 'ComponentRerendered',\n componentName: fragmentReference.fieldName,\n rootLink: fragmentReference.root,\n }));\n\n return readerWithRefetchQueries.readerArtifact.resolver(\n // @ts-expect-error\n {\n data,\n parameters: fragmentReference.variables,\n startUpdate: readerWithRefetchQueries.readerArtifact.hasUpdatable\n ? startUpdate\n : undefined,\n },\n additionalRuntimeProps,\n );\n }\n const idString = `(type: ${fragmentReference.root.__typename}, id: ${fragmentReference.root.__link})`;\n Component.displayName = `${fragmentReference.fieldName} ${idString} @component`;\n return Component;\n};\n"],"mappings":";;;;;;;;;;;;;;AAwBA,SAAgB,oBAGd,mBACA,uBACA,WAC6B;CAC7B,MAAM,cAAc,wBAAwB;CAC5C,MAAM,CAAC,uBAAuB,4BAA4B,eACxD,qBAAqB,aAAa,mBAAmB,sBAAsB,CAC5E;AACD,qBACE,uBACA,mBACA,0BACA,UACD;AACD,QAAO,sBAAsB;;AAG/B,SAAgB,uBAGd,OAMA;CACA,MAAM,cAAc,wBAAwB;AAC5C,iBACQ;EACJ,MAAM,aAAa,MAAM,KACtB,EAAE,SAAS,UAAU,mBAAmB,gBAAgB;AACvD,UAAO,UACL,aACA,SACA,mBACA,UACA,UACD;IAEJ;AACD,eAAa;AACX,cAAW,SAAS,WAAW;AAC7B,YAAQ;KACR;;IAMN,CACE,MACG,KAAK,EAAE,wBAAwB;AAC9B,+BAA6B,kBAAkB;GAC/C,CACD,KAAK,IAAI,CACb,CACF;;AAGH,MAAaA,qBACX,aACA,mBACA,uBACA,gBACG;CACH,SAAS,UAAU,wBAAgD;AACjE,4BACE,kBAAkB,gBAClB,sBACD;EACD,MAAM,2BAA2B,YAC/B,kBAAkB,yBACnB;EAED,MAAM,OAAO,oBACX,mBACA,uBACA,yBAAyB,eAAe,UACzC;AAED,aAAW,oBAAoB;GAC7B,MAAM;GACN,eAAe,kBAAkB;GACjC,UAAU,kBAAkB;GAC7B,EAAE;AAEH,SAAO,yBAAyB,eAAe,SAE7C;GACE;GACA,YAAY,kBAAkB;GAC9B,aAAa,yBAAyB,eAAe,eACjD,cACA;GACL,EACD,uBACD;;CAEH,MAAM,WAAW,UAAU,kBAAkB,KAAK,WAAW,QAAQ,kBAAkB,KAAK,OAAO;AACnG,WAAU,cAAc,GAAG,kBAAkB,UAAU,GAAG,SAAS;AACnE,QAAO"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReaderAst } from "../core/reader.mjs";
|
|
2
|
+
import { WithEncounteredRecords } from "../core/read.mjs";
|
|
3
|
+
import { FragmentReference } from "../core/FragmentReference.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/react/useRerenderOnChange.d.ts
|
|
6
|
+
declare function useRerenderOnChange<TReadFromStore extends {
|
|
7
|
+
parameters: object;
|
|
8
|
+
data: object;
|
|
9
|
+
}>(encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>, fragmentReference: FragmentReference<any, any>, setEncounteredDataAndRecords: (data: WithEncounteredRecords<TReadFromStore>) => void, readerAst: ReaderAst<TReadFromStore>): void;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { useRerenderOnChange };
|
|
12
|
+
//# sourceMappingURL=useRerenderOnChange.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRerenderOnChange.d.mts","names":[],"sources":["../../src/react/useRerenderOnChange.ts"],"sourcesContent":[],"mappings":";;;;;iBASgB;;EAAA,IAAA,EAAA,MAAA;CAGoC,CAAA,CAAA,yBAAA,EAAvB,sBAAuB,CAAA,cAAA,CAAA,EAAA,iBAAA,EAC/B,iBAD+B,CAAA,GAAA,EAAA,GAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,IAAA,EAG1C,sBAH0C,CAGnB,cAHmB,CAAA,EAAA,GAAA,IAAA,EAAA,SAAA,EAKvC,SALuC,CAK7B,cAL6B,CAAA,CAAA,EAAA,IAAA"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { ReaderAst } from "../core/reader.js";
|
|
2
|
+
import { WithEncounteredRecords } from "../core/read.js";
|
|
3
|
+
import { FragmentReference } from "../core/FragmentReference.js";
|
|
4
|
+
|
|
5
|
+
//#region src/react/useRerenderOnChange.d.ts
|
|
6
|
+
declare function useRerenderOnChange<TReadFromStore extends {
|
|
7
|
+
parameters: object;
|
|
8
|
+
data: object;
|
|
7
9
|
}>(encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>, fragmentReference: FragmentReference<any, any>, setEncounteredDataAndRecords: (data: WithEncounteredRecords<TReadFromStore>) => void, readerAst: ReaderAst<TReadFromStore>): void;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { useRerenderOnChange };
|
|
8
12
|
//# sourceMappingURL=useRerenderOnChange.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRerenderOnChange.d.ts","
|
|
1
|
+
{"version":3,"file":"useRerenderOnChange.d.ts","names":[],"sources":["../../src/react/useRerenderOnChange.ts"],"sourcesContent":[],"mappings":";;;;;iBASgB;;EAAA,IAAA,EAAA,MAAA;CAGoC,CAAA,CAAA,yBAAA,EAAvB,sBAAuB,CAAA,cAAA,CAAA,EAAA,iBAAA,EAC/B,iBAD+B,CAAA,GAAA,EAAA,GAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,IAAA,EAG1C,sBAH0C,CAGnB,cAHmB,CAAA,EAAA,GAAA,IAAA,EAAA,SAAA,EAKvC,SALuC,CAK7B,cAL6B,CAAA,CAAA,EAAA,IAAA"}
|