@isograph/react 0.0.0-main-dc7beaea → 0.0.0-main-71ffc760
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/dist/core/cache.d.ts.map +1 -1
- package/dist/core/cache.js +1 -4
- package/dist/core/check.d.ts +2 -0
- package/dist/core/check.d.ts.map +1 -1
- package/dist/core/makeNetworkRequest.d.ts +3 -3
- package/dist/core/makeNetworkRequest.d.ts.map +1 -1
- package/dist/core/makeNetworkRequest.js +24 -7
- package/dist/core/read.d.ts.map +1 -1
- package/dist/core/read.js +2 -7
- package/dist/react/useImperativeReference.d.ts.map +1 -1
- package/dist/react/useImperativeReference.js +1 -4
- package/package.json +4 -4
- package/src/core/cache.ts +2 -3
- package/src/core/check.ts +2 -0
- package/src/core/makeNetworkRequest.ts +24 -5
- package/src/core/read.ts +3 -8
- package/src/react/useImperativeReference.ts +2 -4
package/dist/core/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,MAAM,EACN,IAAI,EAGJ,KAAK,mBAAmB,EAIxB,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAEhB,wBAAwB,EACxB,wBAAwB,EACxB,wCAAwC,EACzC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAEhF,OAAO,EAAE,sBAAsB,EAAwB,MAAM,QAAQ,CAAC;AACtE,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"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"}
|
package/dist/core/cache.js
CHANGED
|
@@ -18,7 +18,6 @@ const areEqualWithDeepComparison_1 = require("./areEqualWithDeepComparison");
|
|
|
18
18
|
const makeNetworkRequest_1 = require("./makeNetworkRequest");
|
|
19
19
|
const PromiseWrapper_1 = require("./PromiseWrapper");
|
|
20
20
|
const logging_1 = require("./logging");
|
|
21
|
-
const check_1 = require("./check");
|
|
22
21
|
exports.TYPENAME_FIELD_NAME = '__typename';
|
|
23
22
|
function getOrCreateItemInSuspenseCache(environment, index, factory) {
|
|
24
23
|
// TODO this is probably a useless message, we should remove it
|
|
@@ -58,9 +57,7 @@ function getOrCreateCacheForArtifact(environment, entrypoint, variables, fetchOp
|
|
|
58
57
|
const cacheKey = entrypoint.networkRequestInfo.queryText +
|
|
59
58
|
JSON.stringify(stableCopy(variables));
|
|
60
59
|
const factory = () => {
|
|
61
|
-
|
|
62
|
-
const shouldFetch = (_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.shouldFetch) !== null && _a !== void 0 ? _a : check_1.DEFAULT_SHOULD_FETCH_VALUE;
|
|
63
|
-
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, variables, shouldFetch);
|
|
60
|
+
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, variables, fetchOptions);
|
|
64
61
|
const itemCleanupPair = [
|
|
65
62
|
{
|
|
66
63
|
kind: 'FragmentReference',
|
package/dist/core/check.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export type ShouldFetch = 'Yes' | 'No' | 'IfNecessary';
|
|
|
5
5
|
export declare const DEFAULT_SHOULD_FETCH_VALUE: ShouldFetch;
|
|
6
6
|
export type FetchOptions = {
|
|
7
7
|
shouldFetch?: ShouldFetch;
|
|
8
|
+
onComplete?: () => void;
|
|
9
|
+
onError?: () => void;
|
|
8
10
|
};
|
|
9
11
|
export type CheckResult = {
|
|
10
12
|
kind: 'EnoughData';
|
package/dist/core/check.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/core/check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAEL,mBAAmB,EACnB,IAAI,EAEL,MAAM,uBAAuB,CAAC;AAG/B,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,aAAa,CAAC;AAEvD,eAAO,MAAM,0BAA0B,EAAE,WAA2B,CAAC;AAErE,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/core/check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAEL,mBAAmB,EACnB,IAAI,EAEL,MAAM,uBAAuB,CAAC;AAG/B,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,aAAa,CAAC;AAEvD,eAAO,MAAM,0BAA0B,EAAE,WAA2B,CAAC;AAErE,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB;IACE,IAAI,EAAE,YAAY,CAAC;CACpB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAEN,wBAAgB,KAAK,CACnB,WAAW,EAAE,mBAAmB,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,GACT,WAAW,CAgBb"}
|
|
@@ -3,7 +3,7 @@ import { IsographEntrypoint, RefetchQueryNormalizationArtifact } from './entrypo
|
|
|
3
3
|
import { Variables } from './FragmentReference';
|
|
4
4
|
import { IsographEnvironment } from './IsographEnvironment';
|
|
5
5
|
import { AnyError, PromiseWrapper } from './PromiseWrapper';
|
|
6
|
-
import {
|
|
7
|
-
export declare function maybeMakeNetworkRequest(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<any, any>, variables: Variables,
|
|
8
|
-
export declare function makeNetworkRequest(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<any, any>, variables: Variables): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
|
|
6
|
+
import { FetchOptions } from './check';
|
|
7
|
+
export declare function maybeMakeNetworkRequest(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<any, any>, variables: Variables, fetchOptions?: FetchOptions): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
|
|
8
|
+
export declare function makeNetworkRequest(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<any, any>, variables: Variables, fetchOptions?: FetchOptions): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
|
|
9
9
|
//# sourceMappingURL=makeNetworkRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeNetworkRequest.d.ts","sourceRoot":"","sources":["../../src/core/makeNetworkRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,iCAAiC,EAClC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOhD,OAAO,EAAE,mBAAmB,EAAW,MAAM,uBAAuB,CAAC;AACrE,OAAO,EACL,QAAQ,EACR,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,
|
|
1
|
+
{"version":3,"file":"makeNetworkRequest.d.ts","sourceRoot":"","sources":["../../src/core/makeNetworkRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,iCAAiC,EAClC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOhD,OAAO,EAAE,mBAAmB,EAAW,MAAM,uBAAuB,CAAC;AACrE,OAAO,EACL,QAAQ,EACR,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAqC,YAAY,EAAE,MAAM,SAAS,CAAC;AAI1E,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,iCAAiC,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC1E,SAAS,EAAE,SAAS,EACpB,YAAY,CAAC,EAAE,YAAY,GAC1B,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CA8BjD;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,iCAAiC,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC1E,SAAS,EAAE,SAAS,EACpB,YAAY,CAAC,EAAE,YAAY,GAC1B,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CA0FjD"}
|
|
@@ -9,10 +9,11 @@ const cache_1 = require("./cache");
|
|
|
9
9
|
const logging_1 = require("./logging");
|
|
10
10
|
const check_1 = require("./check");
|
|
11
11
|
let networkRequestId = 0;
|
|
12
|
-
function maybeMakeNetworkRequest(environment, artifact, variables,
|
|
13
|
-
|
|
12
|
+
function maybeMakeNetworkRequest(environment, artifact, variables, fetchOptions) {
|
|
13
|
+
var _a;
|
|
14
|
+
switch ((_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.shouldFetch) !== null && _a !== void 0 ? _a : check_1.DEFAULT_SHOULD_FETCH_VALUE) {
|
|
14
15
|
case 'Yes': {
|
|
15
|
-
return makeNetworkRequest(environment, artifact, variables);
|
|
16
|
+
return makeNetworkRequest(environment, artifact, variables, fetchOptions);
|
|
16
17
|
}
|
|
17
18
|
case 'No': {
|
|
18
19
|
return [(0, PromiseWrapper_1.wrapResolvedValue)(undefined), () => { }];
|
|
@@ -26,12 +27,12 @@ function maybeMakeNetworkRequest(environment, artifact, variables, shouldFetch)
|
|
|
26
27
|
return [(0, PromiseWrapper_1.wrapResolvedValue)(undefined), () => { }];
|
|
27
28
|
}
|
|
28
29
|
else {
|
|
29
|
-
return makeNetworkRequest(environment, artifact, variables);
|
|
30
|
+
return makeNetworkRequest(environment, artifact, variables, fetchOptions);
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
|
-
function makeNetworkRequest(environment, artifact, variables) {
|
|
35
|
+
function makeNetworkRequest(environment, artifact, variables, fetchOptions) {
|
|
35
36
|
// TODO this should be a DataId and stored in the store
|
|
36
37
|
const myNetworkRequestId = networkRequestId + '';
|
|
37
38
|
networkRequestId++;
|
|
@@ -48,13 +49,17 @@ function makeNetworkRequest(environment, artifact, variables) {
|
|
|
48
49
|
const promise = environment
|
|
49
50
|
.networkFunction(artifact.networkRequestInfo.queryText, variables)
|
|
50
51
|
.then((networkResponse) => {
|
|
51
|
-
var _a;
|
|
52
|
+
var _a, _b, _c;
|
|
52
53
|
(0, logging_1.logMessage)(environment, {
|
|
53
54
|
kind: 'ReceivedNetworkResponse',
|
|
54
55
|
networkResponse,
|
|
55
56
|
networkRequestId: myNetworkRequestId,
|
|
56
57
|
});
|
|
57
58
|
if (networkResponse.errors != null) {
|
|
59
|
+
try {
|
|
60
|
+
(_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.onError) === null || _a === void 0 ? void 0 : _a.call(fetchOptions);
|
|
61
|
+
}
|
|
62
|
+
catch (_d) { }
|
|
58
63
|
// @ts-expect-error Why are we getting the wrong constructor here?
|
|
59
64
|
throw new Error('GraphQL network response had errors', {
|
|
60
65
|
cause: networkResponse,
|
|
@@ -62,7 +67,7 @@ function makeNetworkRequest(environment, artifact, variables) {
|
|
|
62
67
|
}
|
|
63
68
|
if (status.kind === 'UndisposedIncomplete') {
|
|
64
69
|
const root = { __link: IsographEnvironment_1.ROOT_ID, __typename: artifact.concreteType };
|
|
65
|
-
(0, cache_1.normalizeData)(environment, artifact.networkRequestInfo.normalizationAst, (
|
|
70
|
+
(0, cache_1.normalizeData)(environment, artifact.networkRequestInfo.normalizationAst, (_b = networkResponse.data) !== null && _b !== void 0 ? _b : {}, variables, artifact.kind === 'Entrypoint'
|
|
66
71
|
? artifact.readerWithRefetchQueries.nestedRefetchQueries
|
|
67
72
|
: [], root);
|
|
68
73
|
const retainedQuery = {
|
|
@@ -76,6 +81,18 @@ function makeNetworkRequest(environment, artifact, variables) {
|
|
|
76
81
|
};
|
|
77
82
|
(0, garbageCollection_1.retainQuery)(environment, retainedQuery);
|
|
78
83
|
}
|
|
84
|
+
try {
|
|
85
|
+
(_c = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.onComplete) === null || _c === void 0 ? void 0 : _c.call(fetchOptions);
|
|
86
|
+
}
|
|
87
|
+
catch (_e) { }
|
|
88
|
+
})
|
|
89
|
+
.catch((e) => {
|
|
90
|
+
var _a;
|
|
91
|
+
try {
|
|
92
|
+
(_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.onError) === null || _a === void 0 ? void 0 : _a.call(fetchOptions);
|
|
93
|
+
}
|
|
94
|
+
catch (_b) { }
|
|
95
|
+
throw e;
|
|
79
96
|
});
|
|
80
97
|
const wrapper = (0, PromiseWrapper_1.wrapPromise)(promise);
|
|
81
98
|
const response = [
|
package/dist/core/read.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/core/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,iBAAiB,EAEjB,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,mBAAmB,EACnB,KAAK,IAAI,EACV,MAAM,uBAAuB,CAAC;AAe/B,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IACtC,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAE3D,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAC7D,qBAAqB,EAAE,2BAA2B,GACjD,sBAAsB,CAAC,cAAc,CAAC,CAkDxC;AAED,MAAM,MAAM,cAAc,CAAC,cAAc,IACrC;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;CAC7C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;CAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/core/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,iBAAiB,EAEjB,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,mBAAmB,EACnB,KAAK,IAAI,EACV,MAAM,uBAAuB,CAAC;AAe/B,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IACtC,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAE3D,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAC7D,qBAAqB,EAAE,2BAA2B,GACjD,sBAAsB,CAAC,cAAc,CAAC,CAkDxC;AAED,MAAM,MAAM,cAAc,CAAC,cAAc,IACrC;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;CAC7C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;CAC3B,CAAC;AA0jBN,MAAM,MAAM,2BAA2B,GAAG;IACxC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,wBAAgB,oCAAoC,CAClD,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAAG,IAAI,GAClE,2BAA2B,CAK7B"}
|
package/dist/core/read.js
CHANGED
|
@@ -8,7 +8,6 @@ const IsographEnvironment_1 = require("./IsographEnvironment");
|
|
|
8
8
|
const makeNetworkRequest_1 = require("./makeNetworkRequest");
|
|
9
9
|
const PromiseWrapper_1 = require("./PromiseWrapper");
|
|
10
10
|
const logging_1 = require("./logging");
|
|
11
|
-
const check_1 = require("./check");
|
|
12
11
|
function readButDoNotEvaluate(environment, fragmentReference, networkRequestOptions) {
|
|
13
12
|
var _a;
|
|
14
13
|
const mutableEncounteredRecords = new Map();
|
|
@@ -314,9 +313,7 @@ function readData(environment, ast, root, variables, nestedRefetchQueries, netwo
|
|
|
314
313
|
// Fetcher
|
|
315
314
|
() => {
|
|
316
315
|
const fragmentReferenceAndDisposeFromEntrypoint = (entrypoint) => {
|
|
317
|
-
|
|
318
|
-
const shouldFetch = (_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.shouldFetch) !== null && _a !== void 0 ? _a : check_1.DEFAULT_SHOULD_FETCH_VALUE;
|
|
319
|
-
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, localVariables, shouldFetch);
|
|
316
|
+
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, localVariables, fetchOptions);
|
|
320
317
|
const fragmentReference = {
|
|
321
318
|
kind: 'FragmentReference',
|
|
322
319
|
readerWithRefetchQueries: (0, PromiseWrapper_1.wrapResolvedValue)({
|
|
@@ -345,10 +342,8 @@ function readData(environment, ast, root, variables, nestedRefetchQueries, netwo
|
|
|
345
342
|
// Promise is pending or thrown
|
|
346
343
|
let entrypointLoaderState = { kind: 'EntrypointNotLoaded' };
|
|
347
344
|
const networkRequest = (0, PromiseWrapper_1.wrapPromise)(isographArtifactPromiseWrapper.promise.then((entrypoint) => {
|
|
348
|
-
var _a;
|
|
349
345
|
if (entrypointLoaderState.kind === 'EntrypointNotLoaded') {
|
|
350
|
-
const
|
|
351
|
-
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, localVariables, shouldFetch);
|
|
346
|
+
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, localVariables, fetchOptions);
|
|
352
347
|
entrypointLoaderState = {
|
|
353
348
|
kind: 'NetworkRequestStarted',
|
|
354
349
|
disposeNetworkRequest,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useImperativeReference.d.ts","sourceRoot":"","sources":["../../src/react/useImperativeReference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,
|
|
1
|
+
{"version":3,"file":"useImperativeReference.d.ts","sourceRoot":"","sources":["../../src/react/useImperativeReference.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEhB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAI7C,wBAAgB,sBAAsB,CACpC,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,iBAAiB,EAEjB,UAAU,EAAE,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAChE;IACD,iBAAiB,EACb,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,GACpD,eAAe,CAAC;IACpB,qBAAqB,EAAE,CACrB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,KACxB,IAAI,CAAC;CACX,CAqCA"}
|
|
@@ -6,7 +6,6 @@ const IsographEnvironmentProvider_1 = require("./IsographEnvironmentProvider");
|
|
|
6
6
|
const IsographEnvironment_1 = require("../core/IsographEnvironment");
|
|
7
7
|
const makeNetworkRequest_1 = require("../core/makeNetworkRequest");
|
|
8
8
|
const PromiseWrapper_1 = require("../core/PromiseWrapper");
|
|
9
|
-
const check_1 = require("../core/check");
|
|
10
9
|
// TODO rename this to useImperativelyLoadedEntrypoint
|
|
11
10
|
function useImperativeReference(entrypoint) {
|
|
12
11
|
const { state, setState } = (0, react_disposable_state_1.useUpdatableDisposableState)();
|
|
@@ -14,9 +13,7 @@ function useImperativeReference(entrypoint) {
|
|
|
14
13
|
return {
|
|
15
14
|
fragmentReference: state,
|
|
16
15
|
loadFragmentReference: (variables, fetchOptions) => {
|
|
17
|
-
|
|
18
|
-
const shouldFetch = (_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.shouldFetch) !== null && _a !== void 0 ? _a : check_1.DEFAULT_SHOULD_FETCH_VALUE;
|
|
19
|
-
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, variables, shouldFetch);
|
|
16
|
+
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, variables, fetchOptions);
|
|
20
17
|
setState([
|
|
21
18
|
{
|
|
22
19
|
kind: 'FragmentReference',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@isograph/react",
|
|
3
|
-
"version": "0.0.0-main-
|
|
3
|
+
"version": "0.0.0-main-71ffc760",
|
|
4
4
|
"description": "Use Isograph with React",
|
|
5
5
|
"homepage": "https://isograph.dev",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"iso-watch": "../../target/debug/isograph_cli --config ./isograph.config.json --watch"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@isograph/disposable-types": "0.0.0-main-
|
|
23
|
-
"@isograph/react-disposable-state": "0.0.0-main-
|
|
24
|
-
"@isograph/reference-counted-pointer": "0.0.0-main-
|
|
22
|
+
"@isograph/disposable-types": "0.0.0-main-71ffc760",
|
|
23
|
+
"@isograph/react-disposable-state": "0.0.0-main-71ffc760",
|
|
24
|
+
"@isograph/reference-counted-pointer": "0.0.0-main-71ffc760"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"react": "18.3.1"
|
package/src/core/cache.ts
CHANGED
|
@@ -34,7 +34,7 @@ import { mergeObjectsUsingReaderAst } from './areEqualWithDeepComparison';
|
|
|
34
34
|
import { maybeMakeNetworkRequest } from './makeNetworkRequest';
|
|
35
35
|
import { wrapResolvedValue } from './PromiseWrapper';
|
|
36
36
|
import { logMessage } from './logging';
|
|
37
|
-
import {
|
|
37
|
+
import { FetchOptions } from './check';
|
|
38
38
|
|
|
39
39
|
export const TYPENAME_FIELD_NAME = '__typename';
|
|
40
40
|
|
|
@@ -95,12 +95,11 @@ export function getOrCreateCacheForArtifact<
|
|
|
95
95
|
entrypoint.networkRequestInfo.queryText +
|
|
96
96
|
JSON.stringify(stableCopy(variables));
|
|
97
97
|
const factory = () => {
|
|
98
|
-
const shouldFetch = fetchOptions?.shouldFetch ?? DEFAULT_SHOULD_FETCH_VALUE;
|
|
99
98
|
const [networkRequest, disposeNetworkRequest] = maybeMakeNetworkRequest(
|
|
100
99
|
environment,
|
|
101
100
|
entrypoint,
|
|
102
101
|
variables,
|
|
103
|
-
|
|
102
|
+
fetchOptions,
|
|
104
103
|
);
|
|
105
104
|
|
|
106
105
|
const itemCleanupPair: ItemCleanupPair<
|
package/src/core/check.ts
CHANGED
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
} from './PromiseWrapper';
|
|
20
20
|
import { normalizeData } from './cache';
|
|
21
21
|
import { logMessage } from './logging';
|
|
22
|
-
import { check,
|
|
22
|
+
import { check, DEFAULT_SHOULD_FETCH_VALUE, FetchOptions } from './check';
|
|
23
23
|
|
|
24
24
|
let networkRequestId = 0;
|
|
25
25
|
|
|
@@ -27,11 +27,11 @@ export function maybeMakeNetworkRequest(
|
|
|
27
27
|
environment: IsographEnvironment,
|
|
28
28
|
artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<any, any>,
|
|
29
29
|
variables: Variables,
|
|
30
|
-
|
|
30
|
+
fetchOptions?: FetchOptions,
|
|
31
31
|
): ItemCleanupPair<PromiseWrapper<void, AnyError>> {
|
|
32
|
-
switch (shouldFetch) {
|
|
32
|
+
switch (fetchOptions?.shouldFetch ?? DEFAULT_SHOULD_FETCH_VALUE) {
|
|
33
33
|
case 'Yes': {
|
|
34
|
-
return makeNetworkRequest(environment, artifact, variables);
|
|
34
|
+
return makeNetworkRequest(environment, artifact, variables, fetchOptions);
|
|
35
35
|
}
|
|
36
36
|
case 'No': {
|
|
37
37
|
return [wrapResolvedValue(undefined), () => {}];
|
|
@@ -49,7 +49,12 @@ export function maybeMakeNetworkRequest(
|
|
|
49
49
|
if (result.kind === 'EnoughData') {
|
|
50
50
|
return [wrapResolvedValue(undefined), () => {}];
|
|
51
51
|
} else {
|
|
52
|
-
return makeNetworkRequest(
|
|
52
|
+
return makeNetworkRequest(
|
|
53
|
+
environment,
|
|
54
|
+
artifact,
|
|
55
|
+
variables,
|
|
56
|
+
fetchOptions,
|
|
57
|
+
);
|
|
53
58
|
}
|
|
54
59
|
}
|
|
55
60
|
}
|
|
@@ -59,6 +64,7 @@ export function makeNetworkRequest(
|
|
|
59
64
|
environment: IsographEnvironment,
|
|
60
65
|
artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<any, any>,
|
|
61
66
|
variables: Variables,
|
|
67
|
+
fetchOptions?: FetchOptions,
|
|
62
68
|
): ItemCleanupPair<PromiseWrapper<void, AnyError>> {
|
|
63
69
|
// TODO this should be a DataId and stored in the store
|
|
64
70
|
const myNetworkRequestId = networkRequestId + '';
|
|
@@ -85,6 +91,9 @@ export function makeNetworkRequest(
|
|
|
85
91
|
});
|
|
86
92
|
|
|
87
93
|
if (networkResponse.errors != null) {
|
|
94
|
+
try {
|
|
95
|
+
fetchOptions?.onError?.();
|
|
96
|
+
} catch {}
|
|
88
97
|
// @ts-expect-error Why are we getting the wrong constructor here?
|
|
89
98
|
throw new Error('GraphQL network response had errors', {
|
|
90
99
|
cause: networkResponse,
|
|
@@ -114,6 +123,16 @@ export function makeNetworkRequest(
|
|
|
114
123
|
};
|
|
115
124
|
retainQuery(environment, retainedQuery);
|
|
116
125
|
}
|
|
126
|
+
|
|
127
|
+
try {
|
|
128
|
+
fetchOptions?.onComplete?.();
|
|
129
|
+
} catch {}
|
|
130
|
+
})
|
|
131
|
+
.catch((e) => {
|
|
132
|
+
try {
|
|
133
|
+
fetchOptions?.onError?.();
|
|
134
|
+
} catch {}
|
|
135
|
+
throw e;
|
|
117
136
|
});
|
|
118
137
|
|
|
119
138
|
const wrapper = wrapPromise(promise);
|
package/src/core/read.ts
CHANGED
|
@@ -33,7 +33,7 @@ import { ReaderAst } from './reader';
|
|
|
33
33
|
import { Arguments } from './util';
|
|
34
34
|
import { logMessage } from './logging';
|
|
35
35
|
import { CleanupFn } from '@isograph/disposable-types';
|
|
36
|
-
import {
|
|
36
|
+
import { FetchOptions } from './check';
|
|
37
37
|
|
|
38
38
|
export type WithEncounteredRecords<T> = {
|
|
39
39
|
readonly encounteredRecords: EncounteredIds;
|
|
@@ -483,14 +483,12 @@ function readData<TReadFromStore>(
|
|
|
483
483
|
const fragmentReferenceAndDisposeFromEntrypoint = (
|
|
484
484
|
entrypoint: IsographEntrypoint<any, any>,
|
|
485
485
|
): [FragmentReference<any, any>, CleanupFn] => {
|
|
486
|
-
const shouldFetch =
|
|
487
|
-
fetchOptions?.shouldFetch ?? DEFAULT_SHOULD_FETCH_VALUE;
|
|
488
486
|
const [networkRequest, disposeNetworkRequest] =
|
|
489
487
|
maybeMakeNetworkRequest(
|
|
490
488
|
environment,
|
|
491
489
|
entrypoint,
|
|
492
490
|
localVariables,
|
|
493
|
-
|
|
491
|
+
fetchOptions,
|
|
494
492
|
);
|
|
495
493
|
|
|
496
494
|
const fragmentReference: FragmentReference<any, any> = {
|
|
@@ -547,15 +545,12 @@ function readData<TReadFromStore>(
|
|
|
547
545
|
if (
|
|
548
546
|
entrypointLoaderState.kind === 'EntrypointNotLoaded'
|
|
549
547
|
) {
|
|
550
|
-
const shouldFetch =
|
|
551
|
-
fetchOptions?.shouldFetch ??
|
|
552
|
-
DEFAULT_SHOULD_FETCH_VALUE;
|
|
553
548
|
const [networkRequest, disposeNetworkRequest] =
|
|
554
549
|
maybeMakeNetworkRequest(
|
|
555
550
|
environment,
|
|
556
551
|
entrypoint,
|
|
557
552
|
localVariables,
|
|
558
|
-
|
|
553
|
+
fetchOptions,
|
|
559
554
|
);
|
|
560
555
|
entrypointLoaderState = {
|
|
561
556
|
kind: 'NetworkRequestStarted',
|
|
@@ -11,7 +11,7 @@ import { useIsographEnvironment } from './IsographEnvironmentProvider';
|
|
|
11
11
|
import { ROOT_ID } from '../core/IsographEnvironment';
|
|
12
12
|
import { maybeMakeNetworkRequest } from '../core/makeNetworkRequest';
|
|
13
13
|
import { wrapResolvedValue } from '../core/PromiseWrapper';
|
|
14
|
-
import {
|
|
14
|
+
import { FetchOptions } from '../core/check';
|
|
15
15
|
|
|
16
16
|
// TODO rename this to useImperativelyLoadedEntrypoint
|
|
17
17
|
|
|
@@ -40,13 +40,11 @@ export function useImperativeReference<
|
|
|
40
40
|
variables: ExtractParameters<TReadFromStore>,
|
|
41
41
|
fetchOptions?: FetchOptions,
|
|
42
42
|
) => {
|
|
43
|
-
const shouldFetch =
|
|
44
|
-
fetchOptions?.shouldFetch ?? DEFAULT_SHOULD_FETCH_VALUE;
|
|
45
43
|
const [networkRequest, disposeNetworkRequest] = maybeMakeNetworkRequest(
|
|
46
44
|
environment,
|
|
47
45
|
entrypoint,
|
|
48
46
|
variables,
|
|
49
|
-
|
|
47
|
+
fetchOptions,
|
|
50
48
|
);
|
|
51
49
|
setState([
|
|
52
50
|
{
|