@isograph/react 0.4.3 → 0.5.1
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 +10 -3
- 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 -27
- package/dist/core/FragmentReference.d.ts.map +1 -1
- package/dist/core/FragmentReference.js +8 -6
- 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 +77 -72
- package/dist/core/IsographEnvironment.d.ts.map +1 -1
- package/dist/core/IsographEnvironment.js +62 -59
- 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 +27 -18
- 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 -108
- 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 +18 -1
- 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 -34
- package/dist/core/cache.d.ts.map +1 -1
- package/dist/core/cache.js +210 -516
- 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 +24 -18
- package/dist/core/check.d.ts.map +1 -1
- package/dist/core/check.js +80 -124
- package/dist/core/check.mjs +84 -0
- package/dist/core/check.mjs.map +1 -0
- package/dist/core/componentCache.js +10 -34
- 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 -68
- 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 -10
- package/dist/core/garbageCollection.d.ts.map +1 -1
- package/dist/core/garbageCollection.js +82 -99
- package/dist/core/garbageCollection.mjs +89 -0
- package/dist/core/garbageCollection.mjs.map +1 -0
- package/dist/core/getOrCreateCacheForArtifact.js +37 -0
- 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 +78 -60
- 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 -8
- package/dist/core/makeNetworkRequest.d.ts.map +1 -1
- package/dist/core/makeNetworkRequest.js +188 -195
- 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 +43 -0
- package/dist/core/optimisticProxy.d.ts.map +1 -0
- package/dist/core/optimisticProxy.js +273 -0
- 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 -27
- package/dist/core/read.d.ts.map +1 -1
- package/dist/core/read.js +438 -618
- 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 -74
- package/dist/core/reader.d.ts.map +1 -1
- package/dist/core/startUpdate.js +118 -156
- 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 +12 -0
- package/dist/core/subscribe.d.ts.map +1 -0
- package/dist/core/subscribe.js +79 -0
- 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 -17
- package/dist/core/util.d.ts.map +1 -1
- package/dist/core/util.js +22 -2
- 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 +11 -0
- package/dist/core/writeData.d.ts.map +1 -0
- package/dist/core/writeData.js +41 -0
- 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 -29
- package/dist/index.js +70 -68
- 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 +10 -8
- package/dist/loadable-hooks/useClientSideDefer.d.ts.map +1 -1
- package/dist/loadable-hooks/useClientSideDefer.js +14 -12
- 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 +27 -21
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
- package/dist/loadable-hooks/useConnectionSpecPagination.js +133 -158
- 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 -160
- 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 -7
- 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 -13
- 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 +20 -11
- package/dist/react/LoadableFieldReader.d.ts.map +1 -1
- package/dist/react/LoadableFieldReader.js +13 -8
- 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 +21 -12
- package/dist/react/LoadableFieldRenderer.d.ts.map +1 -1
- package/dist/react/LoadableFieldRenderer.js +13 -35
- 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 +8 -0
- package/dist/react/createIsographEnvironment.d.ts.map +1 -0
- package/dist/react/createIsographEnvironment.js +10 -0
- package/dist/react/createIsographEnvironment.mjs +11 -0
- package/dist/react/createIsographEnvironment.mjs.map +1 -0
- package/dist/react/maybeUnwrapNetworkRequest.js +11 -0
- 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 -7
- package/dist/react/useImperativeReference.d.ts.map +1 -1
- package/dist/react/useImperativeReference.js +34 -32
- 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 -5
- 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 -9
- package/dist/react/useReadAndSubscribe.d.ts.map +1 -1
- package/dist/react/useReadAndSubscribe.js +57 -39
- 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 -5
- package/dist/react/useResult.d.ts.map +1 -1
- package/dist/react/useResult.js +27 -39
- package/dist/react/useResult.mjs +30 -0
- package/dist/react/useResult.mjs.map +1 -0
- package/package.json +26 -19
- package/src/core/FragmentReference.ts +13 -7
- package/src/core/IsographEnvironment.ts +80 -21
- package/src/core/PromiseWrapper.ts +14 -7
- package/src/core/areEqualWithDeepComparison.ts +2 -18
- package/src/core/brand.ts +18 -0
- package/src/core/cache.ts +62 -332
- package/src/core/check.ts +30 -26
- package/src/core/componentCache.ts +11 -44
- package/src/core/entrypoint.ts +50 -9
- package/src/core/garbageCollection.ts +81 -28
- package/src/core/getOrCreateCacheForArtifact.ts +86 -0
- package/src/core/logging.ts +25 -13
- package/src/core/makeNetworkRequest.ts +320 -94
- package/src/core/optimisticProxy.ts +544 -0
- package/src/core/read.ts +251 -198
- package/src/core/reader.ts +18 -17
- package/src/core/startUpdate.ts +47 -36
- package/src/core/subscribe.ts +189 -0
- package/src/core/util.ts +26 -0
- package/src/core/writeData.ts +79 -0
- package/src/index.ts +6 -4
- package/src/loadable-hooks/useClientSideDefer.ts +80 -30
- package/src/loadable-hooks/useConnectionSpecPagination.ts +54 -35
- package/src/loadable-hooks/useImperativeLoadableField.ts +5 -5
- package/src/loadable-hooks/useSkipLimitPagination.ts +22 -21
- package/src/react/FragmentReader.tsx +3 -1
- package/src/react/FragmentRenderer.tsx +8 -1
- package/src/react/IsographEnvironmentProvider.tsx +2 -1
- package/src/react/LoadableFieldReader.tsx +125 -16
- package/src/react/LoadableFieldRenderer.tsx +124 -16
- package/src/react/createIsographEnvironment.ts +23 -0
- package/src/react/maybeUnwrapNetworkRequest.ts +17 -0
- package/src/react/useImperativeReference.ts +25 -15
- package/src/react/useLazyReference.ts +20 -10
- package/src/react/useReadAndSubscribe.ts +53 -12
- package/src/react/useRerenderOnChange.ts +3 -3
- package/src/react/useResult.ts +15 -35
- package/src/tests/__isograph/Node/asEconomist/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/linkedUpdate/entrypoint.ts +3 -1
- package/src/tests/__isograph/Query/linkedUpdate/raw_response_type.ts +13 -0
- package/src/tests/__isograph/Query/linkedUpdate/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/meName/entrypoint.ts +3 -1
- package/src/tests/__isograph/Query/meName/raw_response_type.ts +7 -0
- package/src/tests/__isograph/Query/meName/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/meNameSuccessor/entrypoint.ts +3 -1
- package/src/tests/__isograph/Query/meNameSuccessor/raw_response_type.ts +14 -0
- package/src/tests/__isograph/Query/meNameSuccessor/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/nodeField/entrypoint.ts +3 -1
- package/src/tests/__isograph/Query/nodeField/raw_response_type.ts +7 -0
- package/src/tests/__isograph/Query/nodeField/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/normalizeUndefinedField/entrypoint.ts +33 -0
- package/src/tests/__isograph/Query/normalizeUndefinedField/normalization_ast.ts +25 -0
- package/src/tests/__isograph/Query/normalizeUndefinedField/output_type.ts +3 -0
- package/src/tests/__isograph/Query/normalizeUndefinedField/param_type.ts +9 -0
- package/src/tests/__isograph/Query/normalizeUndefinedField/query_text.ts +6 -0
- package/src/tests/__isograph/Query/normalizeUndefinedField/raw_response_type.ts +7 -0
- package/src/tests/__isograph/Query/normalizeUndefinedField/resolver_reader.ts +38 -0
- package/src/tests/__isograph/Query/startUpdate/entrypoint.ts +3 -1
- package/src/tests/__isograph/Query/startUpdate/raw_response_type.ts +8 -0
- package/src/tests/__isograph/Query/startUpdate/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/subquery/entrypoint.ts +3 -1
- package/src/tests/__isograph/Query/subquery/raw_response_type.ts +9 -0
- package/src/tests/__isograph/Query/subquery/resolver_reader.ts +1 -1
- package/src/tests/__isograph/iso.ts +11 -1
- package/src/tests/garbageCollection.test.ts +10 -10
- package/src/tests/meNameSuccessor.ts +7 -4
- package/src/tests/nodeQuery.ts +6 -4
- package/src/tests/normalizeData.test.ts +94 -18
- package/src/tests/optimisticProxy.test.ts +862 -0
- package/src/tests/startUpdate.test.ts +11 -11
- package/vitest.config.ts +5 -0
- 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/reader.js +0 -2
- package/dist/core/startUpdate.d.ts +0 -8
- package/dist/core/startUpdate.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
|
@@ -1,37 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.LoadableFieldRenderer = LoadableFieldRenderer;
|
|
27
|
-
const React = __importStar(require("react"));
|
|
28
|
-
const useClientSideDefer_1 = require("../loadable-hooks/useClientSideDefer");
|
|
29
|
-
const useResult_1 = require("./useResult");
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
|
|
2
|
+
const require_useResult = require('./useResult.js');
|
|
3
|
+
const require_useClientSideDefer = require('../loadable-hooks/useClientSideDefer.js');
|
|
4
|
+
let react = require("react");
|
|
5
|
+
react = require_rolldown_runtime.__toESM(react);
|
|
6
|
+
|
|
7
|
+
//#region src/react/LoadableFieldRenderer.tsx
|
|
30
8
|
function LoadableFieldRenderer(props) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// the validity of this.
|
|
35
|
-
// @ts-expect-error
|
|
36
|
-
return React.createElement(Component, Object.assign({}, props.additionalProps));
|
|
9
|
+
const { fragmentReference } = require_useClientSideDefer.useClientSideDefer(props.loadableField, props.args, props.fetchOptions);
|
|
10
|
+
const Component = require_useResult.useResult(fragmentReference, props.networkRequestOptions);
|
|
11
|
+
return /* @__PURE__ */ react.createElement(Component, props.additionalProps);
|
|
37
12
|
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
exports.LoadableFieldRenderer = LoadableFieldRenderer;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useResult } from "./useResult.mjs";
|
|
2
|
+
import { useClientSideDefer } from "../loadable-hooks/useClientSideDefer.mjs";
|
|
3
|
+
import * as React$1 from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/react/LoadableFieldRenderer.tsx
|
|
6
|
+
function LoadableFieldRenderer(props) {
|
|
7
|
+
const { fragmentReference } = useClientSideDefer(props.loadableField, props.args, props.fetchOptions);
|
|
8
|
+
const Component = useResult(fragmentReference, props.networkRequestOptions);
|
|
9
|
+
return /* @__PURE__ */ React$1.createElement(Component, props.additionalProps);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { LoadableFieldRenderer };
|
|
14
|
+
//# sourceMappingURL=LoadableFieldRenderer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadableFieldRenderer.mjs","names":[],"sources":["../../src/react/LoadableFieldRenderer.tsx"],"sourcesContent":["import * as React from 'react';\nimport { type FetchOptions } from '../core/check';\nimport type { ExtractParameters } from '../core/FragmentReference';\nimport { type UnknownTReadFromStore } from '../core/FragmentReference';\nimport { type NetworkRequestReaderOptions } from '../core/read';\nimport { type LoadableField } from '../core/reader';\nimport { useClientSideDefer } from '../loadable-hooks/useClientSideDefer';\nimport { useResult } from './useResult';\n\ntype ArgsWithoutProvidedArgs<\n TReadFromStore extends UnknownTReadFromStore,\n TProvidedArgs extends object,\n> = Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>;\n\ntype MaybeRequiredArgs<\n TReadFromStore extends UnknownTReadFromStore,\n TProvidedArgs extends object,\n> =\n {} extends ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>\n ? {\n args?: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;\n }\n : {\n args: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;\n };\n\nexport function LoadableFieldRenderer<\n TReadFromStore extends UnknownTReadFromStore,\n TProvidedArgs extends object,\n TChildrenResult,\n TProps,\n>(\n props: {\n loadableField: LoadableField<\n TReadFromStore,\n React.FC<TProps>,\n Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>\n >;\n fetchOptions?: FetchOptions<React.FC<TProps>, never>;\n networkRequestOptions?: Partial<NetworkRequestReaderOptions>;\n additionalProps: Omit<TProps, keyof JSX.IntrinsicAttributes>;\n } & MaybeRequiredArgs<TReadFromStore, TProvidedArgs>,\n): TChildrenResult {\n const { fragmentReference } = useClientSideDefer(\n props.loadableField,\n // @ts-expect-error\n props.args,\n props.fetchOptions,\n );\n\n const Component = useResult(fragmentReference, props.networkRequestOptions);\n\n // TODO we probably can figure out a way to convince TypeScript of\n // the validity of this.\n // @ts-expect-error\n return <Component {...props.additionalProps} />;\n}\n\n// @ts-ignore\nfunction tsTests() {\n let neverArgs!: LoadableField<\n {\n parameters: Record<string, never>;\n data: {};\n },\n () => React.ReactNode\n >;\n\n let optionalArgs!: LoadableField<\n {\n parameters: {\n foo?: string;\n };\n data: {};\n },\n () => React.ReactNode\n >;\n\n let requiredArgs!: LoadableField<\n {\n parameters: {\n foo: string;\n };\n data: {};\n },\n () => React.ReactNode\n >;\n\n <LoadableFieldRenderer loadableField={neverArgs} additionalProps={{}} />;\n <LoadableFieldRenderer\n loadableField={neverArgs}\n additionalProps={{}}\n args={{}}\n />;\n <LoadableFieldRenderer\n loadableField={neverArgs}\n additionalProps={{}}\n args={{\n // @ts-expect-error\n foo: 'bar',\n }}\n />;\n\n <LoadableFieldRenderer loadableField={optionalArgs} additionalProps={{}} />;\n <LoadableFieldRenderer\n loadableField={optionalArgs}\n additionalProps={{}}\n args={{}}\n />;\n <LoadableFieldRenderer\n loadableField={optionalArgs}\n additionalProps={{}}\n args={{\n foo: 'bar',\n }}\n />;\n <LoadableFieldRenderer\n loadableField={optionalArgs}\n additionalProps={{}}\n args={{\n // @ts-expect-error\n foo: 12,\n }}\n />;\n\n // @ts-expect-error\n <LoadableFieldRenderer loadableField={requiredArgs} additionalProps={{}} />;\n <LoadableFieldRenderer\n loadableField={requiredArgs}\n additionalProps={{}}\n // @ts-expect-error\n args={{}}\n />;\n <LoadableFieldRenderer\n loadableField={requiredArgs}\n additionalProps={{}}\n args={{\n foo: 'bar',\n }}\n />;\n <LoadableFieldRenderer\n loadableField={requiredArgs}\n additionalProps={{}}\n args={{\n // @ts-expect-error\n foo: 12,\n }}\n />;\n}\n"],"mappings":";;;;;AA0BA,SAAgB,sBAMd,OAUiB;CACjB,MAAM,EAAE,sBAAsB,mBAC5B,MAAM,eAEN,MAAM,MACN,MAAM,aACP;CAED,MAAM,YAAY,UAAU,mBAAmB,MAAM,sBAAsB;AAK3E,QAAO,sCAAC,WAAc,MAAM,gBAAmB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as react0 from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/react/RenderAfterCommit__DO_NOT_USE.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* This is a function that will render a component only after it commits.
|
|
7
|
+
* It should not be used in production. It's useful as a way to debug issues
|
|
8
|
+
* with NextJS, where an indefinite suspense causes the server to hang
|
|
9
|
+
* forever and never complete the original request.
|
|
10
|
+
*/
|
|
11
|
+
declare function RenderAfterCommit__DO_NOT_USE({
|
|
12
|
+
children
|
|
13
|
+
}: {
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
}): react0.ReactNode;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { RenderAfterCommit__DO_NOT_USE };
|
|
18
|
+
//# sourceMappingURL=RenderAfterCommit__DO_NOT_USE.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderAfterCommit__DO_NOT_USE.d.mts","names":[],"sources":["../../src/react/RenderAfterCommit__DO_NOT_USE.tsx"],"sourcesContent":[],"mappings":";;;;;;;AAQA;;;AAG2B,iBAHX,6BAAA,CAIf;EAAA;CAAA,EAAA;EAAA,QAAA,EADW,KAAA,CAAM,SACjB;IAD0B,MAAA,CAC1B"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
+
import * as react0 from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/react/RenderAfterCommit__DO_NOT_USE.d.ts
|
|
4
|
+
|
|
1
5
|
/**
|
|
2
6
|
* This is a function that will render a component only after it commits.
|
|
3
7
|
* It should not be used in production. It's useful as a way to debug issues
|
|
4
8
|
* with NextJS, where an indefinite suspense causes the server to hang
|
|
5
9
|
* forever and never complete the original request.
|
|
6
10
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
11
|
+
declare function RenderAfterCommit__DO_NOT_USE({
|
|
12
|
+
children
|
|
13
|
+
}: {
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
}): react0.ReactNode;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { RenderAfterCommit__DO_NOT_USE };
|
|
10
18
|
//# sourceMappingURL=RenderAfterCommit__DO_NOT_USE.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderAfterCommit__DO_NOT_USE.d.ts","
|
|
1
|
+
{"version":3,"file":"RenderAfterCommit__DO_NOT_USE.d.ts","names":[],"sources":["../../src/react/RenderAfterCommit__DO_NOT_USE.tsx"],"sourcesContent":[],"mappings":";;;;;;;AAQA;;;AAG2B,iBAHX,6BAAA,CAIf;EAAA;CAAA,EAAA;EAAA,QAAA,EADW,KAAA,CAAM,SACjB;IAD0B,MAAA,CAC1B"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
|
|
2
|
+
let react = require("react");
|
|
3
|
+
react = require_rolldown_runtime.__toESM(react);
|
|
4
|
+
|
|
5
|
+
//#region src/react/RenderAfterCommit__DO_NOT_USE.tsx
|
|
5
6
|
/**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
function RenderAfterCommit__DO_NOT_USE({ children
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
* This is a function that will render a component only after it commits.
|
|
8
|
+
* It should not be used in production. It's useful as a way to debug issues
|
|
9
|
+
* with NextJS, where an indefinite suspense causes the server to hang
|
|
10
|
+
* forever and never complete the original request.
|
|
11
|
+
*/
|
|
12
|
+
function RenderAfterCommit__DO_NOT_USE({ children }) {
|
|
13
|
+
const [show, setShow] = (0, react.useState)(false);
|
|
14
|
+
(0, react.useEffect)(() => setShow(true), []);
|
|
15
|
+
return show ? children : null;
|
|
15
16
|
}
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
exports.RenderAfterCommit__DO_NOT_USE = RenderAfterCommit__DO_NOT_USE;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/react/RenderAfterCommit__DO_NOT_USE.tsx
|
|
4
|
+
/**
|
|
5
|
+
* This is a function that will render a component only after it commits.
|
|
6
|
+
* It should not be used in production. It's useful as a way to debug issues
|
|
7
|
+
* with NextJS, where an indefinite suspense causes the server to hang
|
|
8
|
+
* forever and never complete the original request.
|
|
9
|
+
*/
|
|
10
|
+
function RenderAfterCommit__DO_NOT_USE({ children }) {
|
|
11
|
+
const [show, setShow] = useState(false);
|
|
12
|
+
useEffect(() => setShow(true), []);
|
|
13
|
+
return show ? children : null;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
export { RenderAfterCommit__DO_NOT_USE };
|
|
18
|
+
//# sourceMappingURL=RenderAfterCommit__DO_NOT_USE.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderAfterCommit__DO_NOT_USE.mjs","names":[],"sources":["../../src/react/RenderAfterCommit__DO_NOT_USE.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/**\n * This is a function that will render a component only after it commits.\n * It should not be used in production. It's useful as a way to debug issues\n * with NextJS, where an indefinite suspense causes the server to hang\n * forever and never complete the original request.\n */\nexport function RenderAfterCommit__DO_NOT_USE({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const [show, setShow] = useState(false);\n useEffect(() => setShow(true), []);\n return show ? children : null;\n}\n"],"mappings":";;;;;;;;;AAQA,SAAgB,8BAA8B,EAC5C,YAGC;CACD,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;AACvC,iBAAgB,QAAQ,KAAK,EAAE,EAAE,CAAC;AAClC,QAAO,OAAO,WAAW"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { LogFunction } from "../core/logging.mjs";
|
|
2
|
+
import { BaseStoreLayerData, IsographEnvironment, IsographNetworkFunction, MissingFieldHandler } from "../core/IsographEnvironment.mjs";
|
|
3
|
+
import "../index.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/react/createIsographEnvironment.d.ts
|
|
6
|
+
declare function createIsographEnvironment(baseStoreLayerData: BaseStoreLayerData, networkFunction: IsographNetworkFunction, missingFieldHandler?: MissingFieldHandler | null, logFunction?: LogFunction | null): IsographEnvironment;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { createIsographEnvironment };
|
|
9
|
+
//# sourceMappingURL=createIsographEnvironment.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createIsographEnvironment.d.mts","names":[],"sources":["../../src/react/createIsographEnvironment.ts"],"sourcesContent":[],"mappings":";;;;;iBASgB,yBAAA,qBACM,qCACH,+CACK,0CACR,qBAAW"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LogFunction } from "../core/logging.js";
|
|
2
|
+
import { BaseStoreLayerData, IsographEnvironment, IsographNetworkFunction, MissingFieldHandler } from "../core/IsographEnvironment.js";
|
|
3
|
+
|
|
4
|
+
//#region src/react/createIsographEnvironment.d.ts
|
|
5
|
+
declare function createIsographEnvironment(baseStoreLayerData: BaseStoreLayerData, networkFunction: IsographNetworkFunction, missingFieldHandler?: MissingFieldHandler | null, logFunction?: LogFunction | null): IsographEnvironment;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { createIsographEnvironment };
|
|
8
|
+
//# sourceMappingURL=createIsographEnvironment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createIsographEnvironment.d.ts","names":[],"sources":["../../src/react/createIsographEnvironment.ts"],"sourcesContent":[],"mappings":";;;;iBASgB,yBAAA,qBACM,qCACH,+CACK,0CACR,qBAAW"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const require_IsographEnvironment = require('../core/IsographEnvironment.js');
|
|
2
|
+
const require_useReadAndSubscribe = require('./useReadAndSubscribe.js');
|
|
3
|
+
|
|
4
|
+
//#region src/react/createIsographEnvironment.ts
|
|
5
|
+
function createIsographEnvironment(baseStoreLayerData, networkFunction, missingFieldHandler, logFunction) {
|
|
6
|
+
return require_IsographEnvironment.createIsographEnvironmentCore(baseStoreLayerData, networkFunction, require_useReadAndSubscribe.componentFunction, missingFieldHandler, logFunction);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
exports.createIsographEnvironment = createIsographEnvironment;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createIsographEnvironmentCore } from "../core/IsographEnvironment.mjs";
|
|
2
|
+
import { componentFunction } from "./useReadAndSubscribe.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/react/createIsographEnvironment.ts
|
|
5
|
+
function createIsographEnvironment(baseStoreLayerData, networkFunction, missingFieldHandler, logFunction) {
|
|
6
|
+
return createIsographEnvironmentCore(baseStoreLayerData, networkFunction, componentFunction, missingFieldHandler, logFunction);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
export { createIsographEnvironment };
|
|
11
|
+
//# sourceMappingURL=createIsographEnvironment.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createIsographEnvironment.mjs","names":[],"sources":["../../src/react/createIsographEnvironment.ts"],"sourcesContent":["import {\n createIsographEnvironmentCore,\n type BaseStoreLayerData,\n type IsographNetworkFunction,\n type MissingFieldHandler,\n} from '../core/IsographEnvironment';\nimport type { LogFunction } from '../core/logging';\nimport { componentFunction } from './useReadAndSubscribe';\n\nexport function createIsographEnvironment(\n baseStoreLayerData: BaseStoreLayerData,\n networkFunction: IsographNetworkFunction,\n missingFieldHandler?: MissingFieldHandler | null,\n logFunction?: LogFunction | null,\n) {\n return createIsographEnvironmentCore(\n baseStoreLayerData,\n networkFunction,\n componentFunction,\n missingFieldHandler,\n logFunction,\n );\n}\n"],"mappings":";;;;AASA,SAAgB,0BACd,oBACA,iBACA,qBACA,aACA;AACA,QAAO,8BACL,oBACA,iBACA,mBACA,qBACA,YACD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const require_PromiseWrapper = require('../core/PromiseWrapper.js');
|
|
2
|
+
|
|
3
|
+
//#region src/react/maybeUnwrapNetworkRequest.ts
|
|
4
|
+
function maybeUnwrapNetworkRequest(networkRequest, networkRequestOptions) {
|
|
5
|
+
const state = require_PromiseWrapper.getPromiseState(networkRequest);
|
|
6
|
+
if (state.kind === "Err" && networkRequestOptions.throwOnNetworkError) throw state.error;
|
|
7
|
+
else if (state.kind === "Pending" && networkRequestOptions.suspendIfInFlight) throw state.promise;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
exports.maybeUnwrapNetworkRequest = maybeUnwrapNetworkRequest;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { getPromiseState } from "../core/PromiseWrapper.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/react/maybeUnwrapNetworkRequest.ts
|
|
4
|
+
function maybeUnwrapNetworkRequest(networkRequest, networkRequestOptions) {
|
|
5
|
+
const state = getPromiseState(networkRequest);
|
|
6
|
+
if (state.kind === "Err" && networkRequestOptions.throwOnNetworkError) throw state.error;
|
|
7
|
+
else if (state.kind === "Pending" && networkRequestOptions.suspendIfInFlight) throw state.promise;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { maybeUnwrapNetworkRequest };
|
|
12
|
+
//# sourceMappingURL=maybeUnwrapNetworkRequest.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maybeUnwrapNetworkRequest.mjs","names":[],"sources":["../../src/react/maybeUnwrapNetworkRequest.ts"],"sourcesContent":["import { type PromiseWrapper, getPromiseState } from '../core/PromiseWrapper';\nimport type { NetworkRequestReaderOptions } from '../core/read';\n\nexport function maybeUnwrapNetworkRequest(\n networkRequest: PromiseWrapper<void, any>,\n networkRequestOptions: NetworkRequestReaderOptions,\n) {\n const state = getPromiseState(networkRequest);\n if (state.kind === 'Err' && networkRequestOptions.throwOnNetworkError) {\n throw state.error;\n } else if (\n state.kind === 'Pending' &&\n networkRequestOptions.suspendIfInFlight\n ) {\n throw state.promise;\n }\n}\n"],"mappings":";;;AAGA,SAAgB,0BACd,gBACA,uBACA;CACA,MAAM,QAAQ,gBAAgB,eAAe;AAC7C,KAAI,MAAM,SAAS,SAAS,sBAAsB,oBAChD,OAAM,MAAM;UAEZ,MAAM,SAAS,aACf,sBAAsB,kBAEtB,OAAM,MAAM"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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/useImperativeReference.d.ts
|
|
7
|
+
|
|
8
|
+
type UseImperativeReferenceResult<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType> = {
|
|
9
|
+
fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue> | null;
|
|
10
|
+
loadFragmentReference: (variables: ExtractParameters<TReadFromStore>, ...[fetchOptions]: NormalizationAstLoader extends TNormalizationAst ? [fetchOptions: RequiredFetchOptions<TClientFieldValue>] : [fetchOptions?: FetchOptions<TClientFieldValue, TRawResponseType>]) => void;
|
|
11
|
+
};
|
|
12
|
+
declare function useImperativeReference<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType extends NetworkResponseObject>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst, TRawResponseType>): UseImperativeReferenceResult<TReadFromStore, TClientFieldValue, TNormalizationAst, TRawResponseType>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { UseImperativeReferenceResult, useImperativeReference };
|
|
15
|
+
//# sourceMappingURL=useImperativeReference.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useImperativeReference.d.mts","names":[],"sources":["../../src/react/useImperativeReference.ts"],"sourcesContent":[],"mappings":";;;;;;;AAyByB,KADb,4BACa,CAAA,uBAAA,qBAAA,EAAA,iBAAA,EAAA,0BAEG,gBAFH,GAEsB,sBAFtB,EAAA,gBAAA,CAAA,GAAA;EAEG,iBAAA,EAGP,iBAHO,CAIxB,cAJwB,EAKxB,iBALwB,CAAA,GAAA,IAAA;EAAmB,qBAAA,EAAA,CAAA,SAAA,EAQhC,iBARgC,CAQd,cARc,CAAA,EAAA,GAAA,CAAA,YAAA,CAAA,EASxB,sBATwB,SASO,iBATP,GAAA,CAAA,YAAA,EAUxB,oBAVwB,CAUH,iBAVG,CAAA,CAAA,GAAA,CAAA,YAAA,GAWvB,YAXuB,CAWV,iBAXU,EAWS,gBAXT,CAAA,CAAA,EAAA,GAAA,IAAA;CAI3C;AACA,iBAUY,sBAVZ,CAAA,uBAWqB,qBAXrB,EAAA,iBAAA,EAAA,0BAawB,gBAbxB,GAa2C,sBAb3C,EAAA,yBAcuB,qBAdvB,CAAA,CAAA,UAAA,EAgBU,kBAhBV,CAiBA,cAjBA,EAkBA,iBAlBA,EAmBA,iBAnBA,EAoBA,gBApBA,CAAA,CAAA,EAsBD,4BAtBC,CAuBF,cAvBE,EAwBF,iBAxBE,EAyBF,iBAzBE,EA0BF,gBA1BE,CAAA"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import { FetchOptions,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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/useImperativeReference.d.ts
|
|
7
|
+
|
|
8
|
+
type UseImperativeReferenceResult<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType> = {
|
|
9
|
+
fragmentReference: FragmentReference<TReadFromStore, TClientFieldValue> | null;
|
|
10
|
+
loadFragmentReference: (variables: ExtractParameters<TReadFromStore>, ...[fetchOptions]: NormalizationAstLoader extends TNormalizationAst ? [fetchOptions: RequiredFetchOptions<TClientFieldValue>] : [fetchOptions?: FetchOptions<TClientFieldValue, TRawResponseType>]) => void;
|
|
7
11
|
};
|
|
8
|
-
|
|
12
|
+
declare function useImperativeReference<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType extends NetworkResponseObject>(entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst, TRawResponseType>): UseImperativeReferenceResult<TReadFromStore, TClientFieldValue, TNormalizationAst, TRawResponseType>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { UseImperativeReferenceResult, useImperativeReference };
|
|
9
15
|
//# sourceMappingURL=useImperativeReference.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useImperativeReference.d.ts","
|
|
1
|
+
{"version":3,"file":"useImperativeReference.d.ts","names":[],"sources":["../../src/react/useImperativeReference.ts"],"sourcesContent":[],"mappings":";;;;;;;AAyByB,KADb,4BACa,CAAA,uBAAA,qBAAA,EAAA,iBAAA,EAAA,0BAEG,gBAFH,GAEsB,sBAFtB,EAAA,gBAAA,CAAA,GAAA;EAEG,iBAAA,EAGP,iBAHO,CAIxB,cAJwB,EAKxB,iBALwB,CAAA,GAAA,IAAA;EAAmB,qBAAA,EAAA,CAAA,SAAA,EAQhC,iBARgC,CAQd,cARc,CAAA,EAAA,GAAA,CAAA,YAAA,CAAA,EASxB,sBATwB,SASO,iBATP,GAAA,CAAA,YAAA,EAUxB,oBAVwB,CAUH,iBAVG,CAAA,CAAA,GAAA,CAAA,YAAA,GAWvB,YAXuB,CAWV,iBAXU,EAWS,gBAXT,CAAA,CAAA,EAAA,GAAA,IAAA;CAI3C;AACA,iBAUY,sBAVZ,CAAA,uBAWqB,qBAXrB,EAAA,iBAAA,EAAA,0BAawB,gBAbxB,GAa2C,sBAb3C,EAAA,yBAcuB,qBAdvB,CAAA,CAAA,UAAA,EAgBU,kBAhBV,CAiBA,cAjBA,EAkBA,iBAlBA,EAmBA,iBAnBA,EAoBA,gBApBA,CAAA,CAAA,EAsBD,4BAtBC,CAuBF,cAvBE,EAwBF,iBAxBE,EAyBF,iBAzBE,EA0BF,gBA1BE,CAAA"}
|
|
@@ -1,34 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
|
9
9
|
function useImperativeReference(entrypoint) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
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
|
+
};
|
|
34
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,7 +1,13 @@
|
|
|
1
|
-
import { FetchOptions,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
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>;
|
|
6
10
|
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { useLazyReference };
|
|
7
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, cache_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"}
|