@isograph/react 0.0.0-main-88a2554c → 0.0.0-main-c4afe635
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 +1 -1
- package/dist/core/cache.d.ts +2 -2
- package/dist/core/cache.d.ts.map +1 -1
- package/dist/core/cache.js +20 -5
- package/dist/core/logging.d.ts +12 -0
- package/dist/core/logging.d.ts.map +1 -1
- package/dist/core/makeNetworkRequest.d.ts +1 -0
- package/dist/core/makeNetworkRequest.d.ts.map +1 -1
- package/dist/core/makeNetworkRequest.js +1 -0
- package/package.json +4 -4
- package/src/core/cache.ts +36 -10
- package/src/core/logging.ts +12 -0
- package/src/core/makeNetworkRequest.ts +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
../.. | WARN Unsupported engine: wanted: {"node":"22.9.0"} (current: {"node":"v22.21.1","pnpm":"10.15.0"})
|
|
2
2
|
|
|
3
|
-
> @isograph/react@0.0.0-main-
|
|
3
|
+
> @isograph/react@0.0.0-main-c4afe635 compile-libs /home/runner/work/isograph/isograph/libs/isograph-react
|
|
4
4
|
> rimraf dist && tsc -p tsconfig.pkg.json
|
|
5
5
|
|
package/dist/core/cache.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Factory, ParentCache } from '@isograph/react-disposable-state';
|
|
1
|
+
import { Factory, ItemCleanupPair, ParentCache } from '@isograph/react-disposable-state';
|
|
2
2
|
import { IsographEntrypoint, NormalizationLinkedField, NormalizationScalarField, type NormalizationAst, type NormalizationAstLoader, type NormalizationAstNodes } from '../core/entrypoint';
|
|
3
3
|
import { FetchOptions } from './check';
|
|
4
4
|
import { ExtractParameters, FragmentReference, Variables, type UnknownTReadFromStore } from './FragmentReference';
|
|
@@ -35,5 +35,5 @@ export declare function getParentRecordKey(astNode: NormalizationLinkedField | N
|
|
|
35
35
|
export declare const FIRST_SPLIT_KEY = "____";
|
|
36
36
|
export declare const SECOND_SPLIT_KEY = "___";
|
|
37
37
|
export declare const THIRD_SPLIT_KEY = "__";
|
|
38
|
-
export declare function writeData<TReadFromStore extends UnknownTReadFromStore, TRawResponseType extends NetworkResponseObject>(environment: IsographEnvironment, entrypoint: IsographEntrypoint<TReadFromStore,
|
|
38
|
+
export declare function writeData<TReadFromStore extends UnknownTReadFromStore, TRawResponseType extends NetworkResponseObject, TClientFieldValue>(environment: IsographEnvironment, entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue, NormalizationAst, TRawResponseType>, data: TRawResponseType, variables: ExtractParameters<TReadFromStore>): ItemCleanupPair<FragmentReference<TReadFromStore, TClientFieldValue>>;
|
|
39
39
|
//# sourceMappingURL=cache.d.ts.map
|
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,
|
|
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
|
@@ -37,7 +37,7 @@ function stableCopy(value) {
|
|
|
37
37
|
if (!value || typeof value !== 'object') {
|
|
38
38
|
return value;
|
|
39
39
|
}
|
|
40
|
-
if (
|
|
40
|
+
if (isArray(value)) {
|
|
41
41
|
// @ts-ignore
|
|
42
42
|
return value.map(stableCopy);
|
|
43
43
|
}
|
|
@@ -373,7 +373,7 @@ function normalizeInlineFragment(environment, storeLayer, astNode, networkRespon
|
|
|
373
373
|
}
|
|
374
374
|
function dataIdsAreTheSame(existingValue, newDataIds) {
|
|
375
375
|
var _a, _b;
|
|
376
|
-
if (
|
|
376
|
+
if (isArray(existingValue)) {
|
|
377
377
|
if (newDataIds.length !== existingValue.length) {
|
|
378
378
|
return false;
|
|
379
379
|
}
|
|
@@ -405,8 +405,7 @@ function normalizeNetworkResponseObject(environment, storeLayer, astNode, networ
|
|
|
405
405
|
}
|
|
406
406
|
function isScalarOrEmptyArray(data) {
|
|
407
407
|
// N.B. empty arrays count as empty arrays of scalar fields.
|
|
408
|
-
if (
|
|
409
|
-
// This is maybe fixed in a new version of Typescript??
|
|
408
|
+
if (isArray(data)) {
|
|
410
409
|
return data.every((x) => isScalarOrEmptyArray(x));
|
|
411
410
|
}
|
|
412
411
|
const isScalarValue = data === null ||
|
|
@@ -416,7 +415,7 @@ function isScalarOrEmptyArray(data) {
|
|
|
416
415
|
return isScalarValue;
|
|
417
416
|
}
|
|
418
417
|
function isNullOrEmptyArray(data) {
|
|
419
|
-
if (
|
|
418
|
+
if (isArray(data)) {
|
|
420
419
|
if (data.length === 0) {
|
|
421
420
|
return true;
|
|
422
421
|
}
|
|
@@ -560,4 +559,20 @@ function writeData(environment, entrypoint, data, variables) {
|
|
|
560
559
|
encounteredIds,
|
|
561
560
|
}));
|
|
562
561
|
callSubscriptions(environment, encounteredIds);
|
|
562
|
+
const { fieldName, readerArtifactKind, readerWithRefetchQueries } = (0, IsographEnvironment_1.getOrLoadReaderWithRefetchQueries)(environment, entrypoint.readerWithRefetchQueries);
|
|
563
|
+
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.retainQueryWithoutMakingNetworkRequest)(environment, entrypoint, variables);
|
|
564
|
+
return [
|
|
565
|
+
{
|
|
566
|
+
kind: 'FragmentReference',
|
|
567
|
+
readerWithRefetchQueries,
|
|
568
|
+
fieldName,
|
|
569
|
+
readerArtifactKind,
|
|
570
|
+
root: { __link: IsographEnvironment_1.ROOT_ID, __typename: entrypoint.concreteType },
|
|
571
|
+
variables,
|
|
572
|
+
networkRequest,
|
|
573
|
+
},
|
|
574
|
+
() => {
|
|
575
|
+
disposeNetworkRequest();
|
|
576
|
+
},
|
|
577
|
+
];
|
|
563
578
|
}
|
package/dist/core/logging.d.ts
CHANGED
|
@@ -7,6 +7,18 @@ import { IsographEnvironment, StoreRecord, type StoreLink } from './IsographEnvi
|
|
|
7
7
|
import { ReadDataResult } from './read';
|
|
8
8
|
import { Arguments } from './util';
|
|
9
9
|
import type { StoreLayer } from './optimisticProxy';
|
|
10
|
+
/**
|
|
11
|
+
* Note: these types are unstable. We will add and remove items from this enum
|
|
12
|
+
* and add and remove fields. Please do not rely on the specifics here (for now).
|
|
13
|
+
*
|
|
14
|
+
* Goals include:
|
|
15
|
+
* - convenient debugging for Isograph developers
|
|
16
|
+
* - eventual support for the Isograph devtools
|
|
17
|
+
*
|
|
18
|
+
* In some cases (e.g. in `AfterNormalization`), we include large objects and thus
|
|
19
|
+
* prevent them from getting garbage collected (if the log message is printed).
|
|
20
|
+
* Especially in cases like that, we intend to remove those!
|
|
21
|
+
*/
|
|
10
22
|
export type LogMessage = {
|
|
11
23
|
kind: 'AboutToNormalize';
|
|
12
24
|
normalizationAst: NormalizationAstNodes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/core/logging.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/core/logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,6 @@ import { ExtractParameters, type UnknownTReadFromStore } from './FragmentReferen
|
|
|
6
6
|
import { IsographEnvironment } from './IsographEnvironment';
|
|
7
7
|
import { AnyError, PromiseWrapper } from './PromiseWrapper';
|
|
8
8
|
export declare function maybeMakeNetworkRequest<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType extends NetworkResponseObject>(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst, TRawResponseType>, variables: ExtractParameters<TReadFromStore>, readerWithRefetchQueries: PromiseWrapper<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>> | null, fetchOptions: FetchOptions<TClientFieldValue> | null): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
|
|
9
|
+
export declare function retainQueryWithoutMakingNetworkRequest<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TRawResponseType extends NetworkResponseObject>(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<TReadFromStore, TClientFieldValue, NormalizationAst | NormalizationAstLoader, TRawResponseType>, variables: ExtractParameters<TReadFromStore>): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
|
|
9
10
|
export declare function makeNetworkRequest<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType extends NetworkResponseObject>(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst, TRawResponseType>, variables: ExtractParameters<TReadFromStore>, readerWithRefetchQueries: PromiseWrapper<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>> | null, fetchOptions: FetchOptions<TClientFieldValue> | null): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
|
|
10
11
|
//# 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,EAIL,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAqC,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1E,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EAEjB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,mBAAmB,EAAsB,MAAM,uBAAuB,CAAC;AAGhF,OAAO,EACL,QAAQ,EACR,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAM1B,wBAAgB,uBAAuB,CACrC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EACnE,gBAAgB,SAAS,qBAAqB,EAE9C,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAChB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,CACjB,EACL,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,wBAAwB,EAAE,cAAc,CACtC,wBAAwB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAC5D,GAAG,IAAI,EACR,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,IAAI,GACnD,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAsDjD;
|
|
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,EAIL,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAqC,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1E,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EAEjB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,mBAAmB,EAAsB,MAAM,uBAAuB,CAAC;AAGhF,OAAO,EACL,QAAQ,EACR,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAM1B,wBAAgB,uBAAuB,CACrC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EACnE,gBAAgB,SAAS,qBAAqB,EAE9C,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAChB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,CACjB,EACL,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,wBAAwB,EAAE,cAAc,CACtC,wBAAwB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAC5D,GAAG,IAAI,EACR,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,IAAI,GACnD,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAsDjD;AAED,wBAAgB,sCAAsC,CACpD,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,gBAAgB,SAAS,qBAAqB,EAE9C,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GAAG,sBAAsB,EACzC,gBAAgB,CACjB,EACL,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,GAC3C,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAoBjD;AAED,wBAAgB,kBAAkB,CAChC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EACnE,gBAAgB,SAAS,qBAAqB,EAE9C,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAChB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,CACjB,EACL,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,wBAAwB,EAAE,cAAc,CACtC,wBAAwB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAC5D,GAAG,IAAI,EACR,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,IAAI,GACnD,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAiHjD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.maybeMakeNetworkRequest = maybeMakeNetworkRequest;
|
|
4
|
+
exports.retainQueryWithoutMakingNetworkRequest = retainQueryWithoutMakingNetworkRequest;
|
|
4
5
|
exports.makeNetworkRequest = makeNetworkRequest;
|
|
5
6
|
const cache_1 = require("./cache");
|
|
6
7
|
const check_1 = require("./check");
|
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-c4afe635",
|
|
4
4
|
"description": "Use Isograph with React",
|
|
5
5
|
"homepage": "https://isograph.dev",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"author": "Isograph Labs",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@isograph/disposable-types": "0.0.0-main-
|
|
12
|
-
"@isograph/react-disposable-state": "0.0.0-main-
|
|
13
|
-
"@isograph/reference-counted-pointer": "0.0.0-main-
|
|
11
|
+
"@isograph/disposable-types": "0.0.0-main-c4afe635",
|
|
12
|
+
"@isograph/react-disposable-state": "0.0.0-main-c4afe635",
|
|
13
|
+
"@isograph/reference-counted-pointer": "0.0.0-main-c4afe635"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
16
|
"react": "^18.0.0 || ^19.0.0"
|
package/src/core/cache.ts
CHANGED
|
@@ -34,7 +34,10 @@ import {
|
|
|
34
34
|
type TypeName,
|
|
35
35
|
} from './IsographEnvironment';
|
|
36
36
|
import { logMessage } from './logging';
|
|
37
|
-
import {
|
|
37
|
+
import {
|
|
38
|
+
maybeMakeNetworkRequest,
|
|
39
|
+
retainQueryWithoutMakingNetworkRequest,
|
|
40
|
+
} from './makeNetworkRequest';
|
|
38
41
|
import {
|
|
39
42
|
addNetworkResponseStoreLayer,
|
|
40
43
|
getMutableStoreRecordProxy,
|
|
@@ -70,7 +73,7 @@ export function stableCopy<T>(value: T): T {
|
|
|
70
73
|
if (!value || typeof value !== 'object') {
|
|
71
74
|
return value;
|
|
72
75
|
}
|
|
73
|
-
if (
|
|
76
|
+
if (isArray(value)) {
|
|
74
77
|
// @ts-ignore
|
|
75
78
|
return value.map(stableCopy);
|
|
76
79
|
}
|
|
@@ -665,7 +668,7 @@ function dataIdsAreTheSame(
|
|
|
665
668
|
existingValue: DataTypeValue,
|
|
666
669
|
newDataIds: (StoreLink | null)[],
|
|
667
670
|
): boolean {
|
|
668
|
-
if (
|
|
671
|
+
if (isArray(existingValue)) {
|
|
669
672
|
if (newDataIds.length !== existingValue.length) {
|
|
670
673
|
return false;
|
|
671
674
|
}
|
|
@@ -729,14 +732,13 @@ function normalizeNetworkResponseObject(
|
|
|
729
732
|
}
|
|
730
733
|
|
|
731
734
|
function isScalarOrEmptyArray(
|
|
732
|
-
data:
|
|
735
|
+
data: NetworkResponseValue,
|
|
733
736
|
): data is
|
|
734
737
|
| NetworkResponseScalarValue
|
|
735
738
|
| readonly (NetworkResponseScalarValue | null)[] {
|
|
736
739
|
// N.B. empty arrays count as empty arrays of scalar fields.
|
|
737
|
-
if (
|
|
738
|
-
|
|
739
|
-
return (data as any).every((x: any) => isScalarOrEmptyArray(x));
|
|
740
|
+
if (isArray(data)) {
|
|
741
|
+
return data.every((x) => isScalarOrEmptyArray(x));
|
|
740
742
|
}
|
|
741
743
|
const isScalarValue =
|
|
742
744
|
data === null ||
|
|
@@ -749,7 +751,7 @@ function isScalarOrEmptyArray(
|
|
|
749
751
|
function isNullOrEmptyArray(
|
|
750
752
|
data: unknown,
|
|
751
753
|
): data is readonly never[] | null[] | null {
|
|
752
|
-
if (
|
|
754
|
+
if (isArray(data)) {
|
|
753
755
|
if (data.length === 0) {
|
|
754
756
|
return true;
|
|
755
757
|
}
|
|
@@ -928,17 +930,18 @@ function getDataIdOfNetworkResponse(
|
|
|
928
930
|
export function writeData<
|
|
929
931
|
TReadFromStore extends UnknownTReadFromStore,
|
|
930
932
|
TRawResponseType extends NetworkResponseObject,
|
|
933
|
+
TClientFieldValue,
|
|
931
934
|
>(
|
|
932
935
|
environment: IsographEnvironment,
|
|
933
936
|
entrypoint: IsographEntrypoint<
|
|
934
937
|
TReadFromStore,
|
|
935
|
-
|
|
938
|
+
TClientFieldValue,
|
|
936
939
|
NormalizationAst,
|
|
937
940
|
TRawResponseType
|
|
938
941
|
>,
|
|
939
942
|
data: TRawResponseType,
|
|
940
943
|
variables: ExtractParameters<TReadFromStore>,
|
|
941
|
-
) {
|
|
944
|
+
): ItemCleanupPair<FragmentReference<TReadFromStore, TClientFieldValue>> {
|
|
942
945
|
const encounteredIds: EncounteredIds = new Map();
|
|
943
946
|
environment.store = addNetworkResponseStoreLayer(environment.store);
|
|
944
947
|
normalizeData(
|
|
@@ -957,4 +960,27 @@ export function writeData<
|
|
|
957
960
|
}));
|
|
958
961
|
|
|
959
962
|
callSubscriptions(environment, encounteredIds);
|
|
963
|
+
|
|
964
|
+
const { fieldName, readerArtifactKind, readerWithRefetchQueries } =
|
|
965
|
+
getOrLoadReaderWithRefetchQueries(
|
|
966
|
+
environment,
|
|
967
|
+
entrypoint.readerWithRefetchQueries,
|
|
968
|
+
);
|
|
969
|
+
const [networkRequest, disposeNetworkRequest] =
|
|
970
|
+
retainQueryWithoutMakingNetworkRequest(environment, entrypoint, variables);
|
|
971
|
+
|
|
972
|
+
return [
|
|
973
|
+
{
|
|
974
|
+
kind: 'FragmentReference',
|
|
975
|
+
readerWithRefetchQueries,
|
|
976
|
+
fieldName,
|
|
977
|
+
readerArtifactKind,
|
|
978
|
+
root: { __link: ROOT_ID, __typename: entrypoint.concreteType },
|
|
979
|
+
variables,
|
|
980
|
+
networkRequest,
|
|
981
|
+
},
|
|
982
|
+
() => {
|
|
983
|
+
disposeNetworkRequest();
|
|
984
|
+
},
|
|
985
|
+
];
|
|
960
986
|
}
|
package/src/core/logging.ts
CHANGED
|
@@ -16,6 +16,18 @@ import { ReadDataResult } from './read';
|
|
|
16
16
|
import { Arguments } from './util';
|
|
17
17
|
import type { StoreLayer } from './optimisticProxy';
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Note: these types are unstable. We will add and remove items from this enum
|
|
21
|
+
* and add and remove fields. Please do not rely on the specifics here (for now).
|
|
22
|
+
*
|
|
23
|
+
* Goals include:
|
|
24
|
+
* - convenient debugging for Isograph developers
|
|
25
|
+
* - eventual support for the Isograph devtools
|
|
26
|
+
*
|
|
27
|
+
* In some cases (e.g. in `AfterNormalization`), we include large objects and thus
|
|
28
|
+
* prevent them from getting garbage collected (if the log message is printed).
|
|
29
|
+
* Especially in cases like that, we intend to remove those!
|
|
30
|
+
*/
|
|
19
31
|
export type LogMessage =
|
|
20
32
|
| {
|
|
21
33
|
kind: 'AboutToNormalize';
|
|
@@ -115,7 +115,7 @@ export function maybeMakeNetworkRequest<
|
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
function retainQueryWithoutMakingNetworkRequest<
|
|
118
|
+
export function retainQueryWithoutMakingNetworkRequest<
|
|
119
119
|
TReadFromStore extends UnknownTReadFromStore,
|
|
120
120
|
TClientFieldValue,
|
|
121
121
|
TRawResponseType extends NetworkResponseObject,
|