@isograph/react 0.0.0-main-0a1fcd2b → 0.0.0-main-5ee444e2
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.map +1 -1
- package/dist/core/cache.js +6 -6
- package/dist/core/entrypoint.d.ts +5 -1
- package/dist/core/entrypoint.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 +13 -11
- package/dist/core/read.d.ts.map +1 -1
- package/dist/core/read.js +13 -10
- package/dist/react/useImperativeReference.d.ts.map +1 -1
- package/dist/react/useImperativeReference.js +6 -6
- package/package.json +4 -4
- package/src/core/cache.ts +8 -7
- package/src/core/entrypoint.ts +13 -4
- package/src/core/makeNetworkRequest.ts +46 -15
- package/src/core/read.ts +18 -12
- package/src/react/useImperativeReference.ts +8 -7
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
../.. | WARN Unsupported engine: wanted: {"node":"22.9.0"} (current: {"node":"v22.18.0","pnpm":"10.15.0"})
|
|
2
2
|
|
|
3
|
-
> @isograph/react@0.0.0-main-
|
|
3
|
+
> @isograph/react@0.0.0-main-5ee444e2 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.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,kBAAkB,EAElB,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,KAAK,qBAAqB,EAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,MAAM,EAIN,IAAI,EAGJ,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAwB,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAGhF,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,wBAAgB,8BAA8B,CAC5C,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EAEjB,WAAW,EAAE,mBAAmB,EAChC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,GACrE,WAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAMnE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAezC;AAED,wBAAgB,2BAA2B,CACzC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EAEnE,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,kBAAkB,CAC5B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,CAClB,EACD,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAC7C,WAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,
|
|
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,kBAAkB,EAElB,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EACT,KAAK,qBAAqB,EAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,MAAM,EAIN,IAAI,EAGJ,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAwB,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAGhF,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,wBAAgB,8BAA8B,CAC5C,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EAEjB,WAAW,EAAE,mBAAmB,EAChC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,GACrE,WAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAMnE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAezC;AAED,wBAAgB,2BAA2B,CACzC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EAEnE,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,kBAAkB,CAC5B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,CAClB,EACD,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAC7C,WAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,CA2CnE;AAED,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACnE,MAAM,MAAM,oBAAoB,GAC5B,0BAA0B,GAC1B,IAAI,GACJ,qBAAqB,GACrB,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,GAChC,CAAC,0BAA0B,GAAG,IAAI,CAAC,EAAE,CAAC;AAE1C,MAAM,MAAM,qBAAqB,GAAG;IAGlC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,oBAAoB,CAAC;IAClD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,QAAQ,CAAC;CACvB,CAAC;AAEF,wBAAgB,aAAa,CAC3B,WAAW,EAAE,mBAAmB,EAChC,gBAAgB,EAAE,qBAAqB,EACvC,eAAe,EAAE,qBAAqB,EACtC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,GACT,cAAc,CA+BhB;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,MAAM,IAAI,GACnB,MAAM,IAAI,CAOZ;AAED,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,MAAM,IAAI,GACnB,MAAM,IAAI,CAQZ;AAGD,wBAAgB,SAAS,CAAC,cAAc,SAAS,qBAAqB,EACpE,WAAW,EAAE,mBAAmB,EAChC,yBAAyB,EAAE,sBAAsB,CAAC,cAAc,CAAC,EACjE,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,GAAG,CAAC,EACzD,QAAQ,EAAE,CACR,4BAA4B,EAAE,sBAAsB,CAAC,cAAc,CAAC,KACjE,IAAI,EACT,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,GACnC,MAAM,IAAI,CAUZ;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,IAAI,GACf,OAAO,CAAC,IAAI,CAAC,CAWf;AAeD,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,mBAAmB,EAChC,iCAAiC,EAAE,cAAc,QAgFlD;AA6BD,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AA0ExD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,UAOxE;AAiPD,wBAAgB,kBAAkB,CAChC,OAAO,EACH,wBAAwB,GACxB,wBAAwB,GACxB,iBAAiB,GACjB,iBAAiB,EACrB,SAAS,EAAE,SAAS,GACnB,MAAM,CAUR;AA2GD,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,eAAO,MAAM,eAAe,OAAO,CAAC"}
|
package/dist/core/cache.js
CHANGED
|
@@ -62,15 +62,15 @@ function getOrCreateCacheForArtifact(environment, entrypoint, variables, fetchOp
|
|
|
62
62
|
break;
|
|
63
63
|
}
|
|
64
64
|
const factory = () => {
|
|
65
|
-
const
|
|
65
|
+
const readerWithRefetchQueries = entrypoint.readerWithRefetchQueries.kind ===
|
|
66
|
+
'ReaderWithRefetchQueriesLoader'
|
|
67
|
+
? (0, PromiseWrapper_1.wrapPromise)(entrypoint.readerWithRefetchQueries.loader())
|
|
68
|
+
: (0, PromiseWrapper_1.wrapResolvedValue)(entrypoint.readerWithRefetchQueries);
|
|
69
|
+
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, variables, readerWithRefetchQueries, fetchOptions);
|
|
66
70
|
const itemCleanupPair = [
|
|
67
71
|
{
|
|
68
72
|
kind: 'FragmentReference',
|
|
69
|
-
readerWithRefetchQueries
|
|
70
|
-
kind: 'ReaderWithRefetchQueries',
|
|
71
|
-
readerArtifact: entrypoint.readerWithRefetchQueries.readerArtifact,
|
|
72
|
-
nestedRefetchQueries: entrypoint.readerWithRefetchQueries.nestedRefetchQueries,
|
|
73
|
-
}),
|
|
73
|
+
readerWithRefetchQueries,
|
|
74
74
|
root: { __link: IsographEnvironment_1.ROOT_ID, __typename: entrypoint.concreteType },
|
|
75
75
|
variables,
|
|
76
76
|
networkRequest: networkRequest,
|
|
@@ -7,6 +7,10 @@ export type ReaderWithRefetchQueries<TReadFromStore extends UnknownTReadFromStor
|
|
|
7
7
|
readonly readerArtifact: TopLevelReaderArtifact<TReadFromStore, TClientFieldValue, any>;
|
|
8
8
|
readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];
|
|
9
9
|
};
|
|
10
|
+
export type ReaderWithRefetchQueriesLoader<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue> = {
|
|
11
|
+
readonly kind: 'ReaderWithRefetchQueriesLoader';
|
|
12
|
+
readonly loader: () => Promise<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>>;
|
|
13
|
+
};
|
|
10
14
|
export type NetworkRequestInfo<TNormalizationAst> = {
|
|
11
15
|
readonly kind: 'NetworkRequestInfo';
|
|
12
16
|
readonly operation: IsographOperation | IsographPersistedOperation;
|
|
@@ -29,7 +33,7 @@ export type IsographPersistedOperationExtraInfo = {
|
|
|
29
33
|
export type IsographEntrypoint<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader> = {
|
|
30
34
|
readonly kind: 'Entrypoint';
|
|
31
35
|
readonly networkRequestInfo: NetworkRequestInfo<TNormalizationAst>;
|
|
32
|
-
readonly readerWithRefetchQueries: ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>;
|
|
36
|
+
readonly readerWithRefetchQueries: ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue> | ReaderWithRefetchQueriesLoader<TReadFromStore, TClientFieldValue>;
|
|
33
37
|
readonly concreteType: TypeName;
|
|
34
38
|
};
|
|
35
39
|
export type IsographEntrypointLoader<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue> = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint.d.ts","sourceRoot":"","sources":["../../src/core/entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,MAAM,wBAAwB,CAClC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,IACf;IACF,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAC7C,cAAc,EACd,iBAAiB,EAEjB,GAAG,CACJ,CAAC;IACF,QAAQ,CAAC,oBAAoB,EAAE,wCAAwC,EAAE,CAAC;CAC3E,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,iBAAiB,IAAI;IAClD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,GAAG,0BAA0B,CAAC;IACnE,QAAQ,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,mCAAmC,GAAG,IAAI,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAChD,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;CAC/D,CAAC;AAGF,MAAM,MAAM,kBAAkB,CAC5B,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,IACjE;IACF,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACnE,QAAQ,CAAC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"entrypoint.d.ts","sourceRoot":"","sources":["../../src/core/entrypoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ItemCleanupPair } from '@isograph/disposable-types';
|
|
2
2
|
import { FetchOptions } from './check';
|
|
3
|
-
import { IsographEntrypoint, RefetchQueryNormalizationArtifact, type NormalizationAst, type NormalizationAstLoader } from './entrypoint';
|
|
3
|
+
import { IsographEntrypoint, ReaderWithRefetchQueries, RefetchQueryNormalizationArtifact, type NormalizationAst, type NormalizationAstLoader } from './entrypoint';
|
|
4
4
|
import { ExtractParameters, type UnknownTReadFromStore } from './FragmentReference';
|
|
5
5
|
import { IsographEnvironment } from './IsographEnvironment';
|
|
6
6
|
import { AnyError, PromiseWrapper } from './PromiseWrapper';
|
|
7
|
-
export declare function maybeMakeNetworkRequest<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader>(environment: IsographEnvironment, artifact:
|
|
8
|
-
export declare function makeNetworkRequest<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader>(environment: IsographEnvironment, artifact:
|
|
7
|
+
export declare function maybeMakeNetworkRequest<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TArtifact extends RefetchQueryNormalizationArtifact | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>, TNormalizationAst extends NormalizationAst | NormalizationAstLoader>(environment: IsographEnvironment, artifact: TArtifact, variables: ExtractParameters<TReadFromStore>, readerWithRefetchQueries: TArtifact['kind'] extends 'Entrypoint' ? PromiseWrapper<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>> : undefined, fetchOptions?: FetchOptions<TClientFieldValue>): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
|
|
8
|
+
export declare function makeNetworkRequest<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TArtifact extends RefetchQueryNormalizationArtifact | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>, TNormalizationAst extends NormalizationAst | NormalizationAstLoader>(environment: IsographEnvironment, artifact: TArtifact, variables: ExtractParameters<TReadFromStore>, readerWithRefetchQueries?: TArtifact['kind'] extends 'Entrypoint' ? PromiseWrapper<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>> : undefined, fetchOptions?: FetchOptions<TClientFieldValue>): 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;AAE7D,OAAO,EAAqC,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1E,OAAO,EACL,kBAAkB,EAClB,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,EAAiB,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EACL,QAAQ,EACR,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAM1B,wBAAgB,uBAAuB,CACrC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EAEnE,WAAW,EAAE,mBAAmB,EAChC,QAAQ,
|
|
1
|
+
{"version":3,"file":"makeNetworkRequest.d.ts","sourceRoot":"","sources":["../../src/core/makeNetworkRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,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,EAAiB,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EACL,QAAQ,EACR,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAM1B,wBAAgB,uBAAuB,CACrC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,SAAS,SACL,iCAAiC,GACjC,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,EAC5E,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EAEnE,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,wBAAwB,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,YAAY,GAC5D,cAAc,CACZ,wBAAwB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAC5D,GACD,SAAS,EACb,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAC7C,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CA8CjD;AAeD,wBAAgB,kBAAkB,CAChC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,SAAS,SACL,iCAAiC,GACjC,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,EAC5E,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EAEnE,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,wBAAwB,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,YAAY,GAC7D,cAAc,CACZ,wBAAwB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAC5D,GACD,SAAS,EACb,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAC7C,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAgHjD"}
|
|
@@ -12,11 +12,11 @@ const PromiseWrapper_1 = require("./PromiseWrapper");
|
|
|
12
12
|
const read_1 = require("./read");
|
|
13
13
|
const startUpdate_1 = require("./startUpdate");
|
|
14
14
|
let networkRequestId = 0;
|
|
15
|
-
function maybeMakeNetworkRequest(environment, artifact, variables, fetchOptions) {
|
|
15
|
+
function maybeMakeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions) {
|
|
16
16
|
var _a;
|
|
17
17
|
switch ((_a = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.shouldFetch) !== null && _a !== void 0 ? _a : check_1.DEFAULT_SHOULD_FETCH_VALUE) {
|
|
18
18
|
case 'Yes': {
|
|
19
|
-
return makeNetworkRequest(environment, artifact, variables, fetchOptions);
|
|
19
|
+
return makeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions);
|
|
20
20
|
}
|
|
21
21
|
case 'No': {
|
|
22
22
|
return [(0, PromiseWrapper_1.wrapResolvedValue)(undefined), () => { }];
|
|
@@ -34,7 +34,7 @@ function maybeMakeNetworkRequest(environment, artifact, variables, fetchOptions)
|
|
|
34
34
|
return [(0, PromiseWrapper_1.wrapResolvedValue)(undefined), () => { }];
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
|
-
return makeNetworkRequest(environment, artifact, variables, fetchOptions);
|
|
37
|
+
return makeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -49,7 +49,7 @@ function loadNormalizationAst(normalizationAst) {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
function makeNetworkRequest(environment, artifact, variables, fetchOptions) {
|
|
52
|
+
function makeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions) {
|
|
53
53
|
// TODO this should be a DataId and stored in the store
|
|
54
54
|
const myNetworkRequestId = networkRequestId + '';
|
|
55
55
|
networkRequestId++;
|
|
@@ -66,8 +66,9 @@ function makeNetworkRequest(environment, artifact, variables, fetchOptions) {
|
|
|
66
66
|
const promise = Promise.all([
|
|
67
67
|
environment.networkFunction(artifact.networkRequestInfo.operation, variables),
|
|
68
68
|
loadNormalizationAst(artifact.networkRequestInfo.normalizationAst),
|
|
69
|
+
readerWithRefetchQueries === null || readerWithRefetchQueries === void 0 ? void 0 : readerWithRefetchQueries.promise,
|
|
69
70
|
])
|
|
70
|
-
.then(([networkResponse, normalizationAst]) => {
|
|
71
|
+
.then(([networkResponse, normalizationAst, readerWithRefetchQueries]) => {
|
|
71
72
|
var _a, _b;
|
|
72
73
|
(0, logging_1.logMessage)(environment, () => ({
|
|
73
74
|
kind: 'ReceivedNetworkResponse',
|
|
@@ -99,7 +100,7 @@ function makeNetworkRequest(environment, artifact, variables, fetchOptions) {
|
|
|
99
100
|
}
|
|
100
101
|
const onComplete = fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.onComplete;
|
|
101
102
|
if (onComplete != null) {
|
|
102
|
-
let data = readDataForOnComplete(artifact, environment, root, variables);
|
|
103
|
+
let data = readDataForOnComplete(artifact, environment, root, variables, readerWithRefetchQueries);
|
|
103
104
|
try {
|
|
104
105
|
// @ts-expect-error this problem will be fixed when we remove RefetchQueryNormalizationArtifact
|
|
105
106
|
// (or we can fix this by having a single param of type { kind: 'Entrypoint', entrypoint,
|
|
@@ -140,7 +141,7 @@ function makeNetworkRequest(environment, artifact, variables, fetchOptions) {
|
|
|
140
141
|
];
|
|
141
142
|
return response;
|
|
142
143
|
}
|
|
143
|
-
function readDataForOnComplete(artifact, environment, root, variables) {
|
|
144
|
+
function readDataForOnComplete(artifact, environment, root, variables, readerWithRefetchQueries) {
|
|
144
145
|
// An entrypoint, but not a RefetchQueryNormalizationArtifact, has a reader ASTs.
|
|
145
146
|
// So, we can only pass data to onComplete if makeNetworkRequest was passed an entrypoint.
|
|
146
147
|
// This is awkward, since we don't express that in the types of the parameters
|
|
@@ -156,16 +157,17 @@ function readDataForOnComplete(artifact, environment, root, variables) {
|
|
|
156
157
|
suspendIfInFlight: false,
|
|
157
158
|
throwOnNetworkError: false,
|
|
158
159
|
};
|
|
160
|
+
const resolvedReaderWithRefetchQueries = readerWithRefetchQueries;
|
|
159
161
|
const fragment = {
|
|
160
162
|
kind: 'FragmentReference',
|
|
161
163
|
// TODO this smells.
|
|
162
|
-
readerWithRefetchQueries: (0, PromiseWrapper_1.wrapResolvedValue)(
|
|
164
|
+
readerWithRefetchQueries: (0, PromiseWrapper_1.wrapResolvedValue)(resolvedReaderWithRefetchQueries),
|
|
163
165
|
root,
|
|
164
166
|
variables,
|
|
165
167
|
networkRequest: fakeNetworkRequest,
|
|
166
168
|
};
|
|
167
169
|
const fragmentResult = (0, read_1.readButDoNotEvaluate)(environment, fragment, fakeNetworkRequestOptions).item;
|
|
168
|
-
const readerArtifact =
|
|
170
|
+
const readerArtifact = resolvedReaderWithRefetchQueries.readerArtifact;
|
|
169
171
|
switch (readerArtifact.kind) {
|
|
170
172
|
case 'ComponentReaderArtifact': {
|
|
171
173
|
// @ts-expect-error We should find a way to encode this in the type system:
|
|
@@ -176,7 +178,7 @@ function readDataForOnComplete(artifact, environment, root, variables) {
|
|
|
176
178
|
readerWithRefetchQueries: (0, PromiseWrapper_1.wrapResolvedValue)({
|
|
177
179
|
kind: 'ReaderWithRefetchQueries',
|
|
178
180
|
readerArtifact: readerArtifact,
|
|
179
|
-
nestedRefetchQueries:
|
|
181
|
+
nestedRefetchQueries: resolvedReaderWithRefetchQueries.nestedRefetchQueries,
|
|
180
182
|
}),
|
|
181
183
|
root,
|
|
182
184
|
variables,
|
|
@@ -186,7 +188,7 @@ function readDataForOnComplete(artifact, environment, root, variables) {
|
|
|
186
188
|
case 'EagerReaderArtifact': {
|
|
187
189
|
return readerArtifact.resolver(Object.assign({ data: fragmentResult, parameters: variables }, (readerArtifact.hasUpdatable
|
|
188
190
|
? {
|
|
189
|
-
startUpdate: (0, startUpdate_1.getOrCreateCachedStartUpdate)(environment, fragment,
|
|
191
|
+
startUpdate: (0, startUpdate_1.getOrCreateCachedStartUpdate)(environment, fragment, resolvedReaderWithRefetchQueries.readerArtifact.fieldName, fakeNetworkRequestOptions),
|
|
190
192
|
}
|
|
191
193
|
: undefined)));
|
|
192
194
|
}
|
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":"AACA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAEL,wCAAwC,EAEzC,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,IAAI,EACT,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAGL,cAAc,EAIf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,iBAAiB,EACtB,KAAK,8BAA8B,EACnC,KAAK,iBAAiB,EACvB,MAAM,UAAU,CAAC;AAIlB,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,qBAAqB,EAE5C,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAC7D,qBAAqB,EAAE,2BAA2B,GACjD,sBAAsB,CAAC,cAAc,CAAC,CA+DxC;AAED,MAAM,MAAM,qBAAqB,CAAC,IAAI,IAAI;IACxC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,IAAI,IAC3B,qBAAqB,CAAC,IAAI,CAAC,GAC3B;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;AA+IN,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,mBAAmB,EAChC,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,EACzC,qBAAqB,EAAE,2BAA2B,EAClD,yBAAyB,EAAE,cAAc,GACxC,cAAc,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/core/read.ts"],"names":[],"mappings":"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"}
|
package/dist/core/read.js
CHANGED
|
@@ -175,14 +175,14 @@ function readLoadablySelectedFieldData(environment, field, root, variables, netw
|
|
|
175
175
|
// Fetcher
|
|
176
176
|
() => {
|
|
177
177
|
const fragmentReferenceAndDisposeFromEntrypoint = (entrypoint) => {
|
|
178
|
-
const
|
|
178
|
+
const readerWithRefetchQueries = entrypoint.readerWithRefetchQueries.kind ===
|
|
179
|
+
'ReaderWithRefetchQueriesLoader'
|
|
180
|
+
? (0, PromiseWrapper_1.wrapPromise)(entrypoint.readerWithRefetchQueries.loader())
|
|
181
|
+
: (0, PromiseWrapper_1.wrapResolvedValue)(entrypoint.readerWithRefetchQueries);
|
|
182
|
+
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, localVariables, readerWithRefetchQueries, fetchOptions);
|
|
179
183
|
const fragmentReference = {
|
|
180
184
|
kind: 'FragmentReference',
|
|
181
|
-
readerWithRefetchQueries
|
|
182
|
-
kind: 'ReaderWithRefetchQueries',
|
|
183
|
-
readerArtifact: entrypoint.readerWithRefetchQueries.readerArtifact,
|
|
184
|
-
nestedRefetchQueries: entrypoint.readerWithRefetchQueries.nestedRefetchQueries,
|
|
185
|
-
}),
|
|
185
|
+
readerWithRefetchQueries,
|
|
186
186
|
// TODO localVariables is not guaranteed to have an id field
|
|
187
187
|
root,
|
|
188
188
|
variables: localVariables,
|
|
@@ -202,9 +202,13 @@ function readLoadablySelectedFieldData(environment, field, root, variables, netw
|
|
|
202
202
|
else {
|
|
203
203
|
// Promise is pending or thrown
|
|
204
204
|
let entrypointLoaderState = { kind: 'EntrypointNotLoaded' };
|
|
205
|
+
const readerWithRefetchQueries = (0, PromiseWrapper_1.wrapPromise)(isographArtifactPromiseWrapper.promise.then((entrypoint) => entrypoint.readerWithRefetchQueries.kind ===
|
|
206
|
+
'ReaderWithRefetchQueriesLoader'
|
|
207
|
+
? entrypoint.readerWithRefetchQueries.loader()
|
|
208
|
+
: entrypoint.readerWithRefetchQueries));
|
|
205
209
|
const networkRequest = (0, PromiseWrapper_1.wrapPromise)(isographArtifactPromiseWrapper.promise.then((entrypoint) => {
|
|
206
210
|
if (entrypointLoaderState.kind === 'EntrypointNotLoaded') {
|
|
207
|
-
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, localVariables, fetchOptions);
|
|
211
|
+
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, localVariables, readerWithRefetchQueries, fetchOptions);
|
|
208
212
|
entrypointLoaderState = {
|
|
209
213
|
kind: 'NetworkRequestStarted',
|
|
210
214
|
disposeNetworkRequest,
|
|
@@ -212,10 +216,9 @@ function readLoadablySelectedFieldData(environment, field, root, variables, netw
|
|
|
212
216
|
return networkRequest.promise;
|
|
213
217
|
}
|
|
214
218
|
}));
|
|
215
|
-
const readerWithRefetchPromise = isographArtifactPromiseWrapper.promise.then((entrypoint) => entrypoint.readerWithRefetchQueries);
|
|
216
219
|
const fragmentReference = {
|
|
217
220
|
kind: 'FragmentReference',
|
|
218
|
-
readerWithRefetchQueries
|
|
221
|
+
readerWithRefetchQueries,
|
|
219
222
|
// TODO localVariables is not guaranteed to have an id field
|
|
220
223
|
root,
|
|
221
224
|
variables: localVariables,
|
|
@@ -547,7 +550,7 @@ function readLinkedFieldData(environment, field, storeRecord, root, variables, n
|
|
|
547
550
|
// Fetcher
|
|
548
551
|
() => {
|
|
549
552
|
const variables = includeReadOutData(filterVariables(Object.assign(Object.assign({}, args), localVariables), allowedVariables), refetchReaderParams.data);
|
|
550
|
-
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, refetchQueryArtifact, variables, fetchOptions);
|
|
553
|
+
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, refetchQueryArtifact, variables, undefined, fetchOptions);
|
|
551
554
|
const fragmentReference = {
|
|
552
555
|
kind: 'FragmentReference',
|
|
553
556
|
readerWithRefetchQueries: (0, PromiseWrapper_1.wrapResolvedValue)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useImperativeReference.d.ts","sourceRoot":"","sources":["../../src/react/useImperativeReference.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AAMnC,MAAM,MAAM,4BAA4B,CACtC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,IACjE;IACF,iBAAiB,EAAE,iBAAiB,CAClC,cAAc,EACd,iBAAiB,CAClB,GAAG,IAAI,CAAC;IACT,qBAAqB,EAAE,CACrB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,GAAG,CAAC,YAAY,CAAC,EAAE,sBAAsB,SAAS,iBAAiB,GAC/D,CAAC,YAAY,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,GACvD,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC,KACjD,IAAI,CAAC;CACX,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EAEnE,UAAU,EAAE,kBAAkB,CAC5B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,CAClB,GACA,4BAA4B,CAC7B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,CAClB,
|
|
1
|
+
{"version":3,"file":"useImperativeReference.d.ts","sourceRoot":"","sources":["../../src/react/useImperativeReference.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AAMnC,MAAM,MAAM,4BAA4B,CACtC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,IACjE;IACF,iBAAiB,EAAE,iBAAiB,CAClC,cAAc,EACd,iBAAiB,CAClB,GAAG,IAAI,CAAC;IACT,qBAAqB,EAAE,CACrB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,GAAG,CAAC,YAAY,CAAC,EAAE,sBAAsB,SAAS,iBAAiB,GAC/D,CAAC,YAAY,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,GACvD,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC,KACjD,IAAI,CAAC;CACX,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EAEnE,UAAU,EAAE,kBAAkB,CAC5B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,CAClB,GACA,4BAA4B,CAC7B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,CAClB,CAsCA"}
|
|
@@ -12,15 +12,15 @@ function useImperativeReference(entrypoint) {
|
|
|
12
12
|
return {
|
|
13
13
|
fragmentReference: state !== react_disposable_state_1.UNASSIGNED_STATE ? state : null,
|
|
14
14
|
loadFragmentReference: (variables, fetchOptions) => {
|
|
15
|
-
const
|
|
15
|
+
const readerWithRefetchQueries = entrypoint.readerWithRefetchQueries.kind ===
|
|
16
|
+
'ReaderWithRefetchQueriesLoader'
|
|
17
|
+
? (0, PromiseWrapper_1.wrapPromise)(entrypoint.readerWithRefetchQueries.loader())
|
|
18
|
+
: (0, PromiseWrapper_1.wrapResolvedValue)(entrypoint.readerWithRefetchQueries);
|
|
19
|
+
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, variables, readerWithRefetchQueries, fetchOptions);
|
|
16
20
|
setState([
|
|
17
21
|
{
|
|
18
22
|
kind: 'FragmentReference',
|
|
19
|
-
readerWithRefetchQueries
|
|
20
|
-
kind: 'ReaderWithRefetchQueries',
|
|
21
|
-
readerArtifact: entrypoint.readerWithRefetchQueries.readerArtifact,
|
|
22
|
-
nestedRefetchQueries: entrypoint.readerWithRefetchQueries.nestedRefetchQueries,
|
|
23
|
-
}),
|
|
23
|
+
readerWithRefetchQueries,
|
|
24
24
|
root: { __link: IsographEnvironment_1.ROOT_ID, __typename: entrypoint.concreteType },
|
|
25
25
|
variables,
|
|
26
26
|
networkRequest,
|
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-5ee444e2",
|
|
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": "cross-env ISO_PRINT_ABSOLUTE_FILEPATH=1 ../../target/debug/isograph_cli --config ./isograph.config.json"
|
|
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-5ee444e2",
|
|
23
|
+
"@isograph/react-disposable-state": "0.0.0-main-5ee444e2",
|
|
24
|
+
"@isograph/reference-counted-pointer": "0.0.0-main-5ee444e2"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"react": "^18.0.0 || ^19.0.0"
|
package/src/core/cache.ts
CHANGED
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
} from './IsographEnvironment';
|
|
35
35
|
import { logMessage } from './logging';
|
|
36
36
|
import { maybeMakeNetworkRequest } from './makeNetworkRequest';
|
|
37
|
-
import { wrapResolvedValue } from './PromiseWrapper';
|
|
37
|
+
import { wrapPromise, wrapResolvedValue } from './PromiseWrapper';
|
|
38
38
|
import { readButDoNotEvaluate, WithEncounteredRecords } from './read';
|
|
39
39
|
import { ReaderLinkedField, ReaderScalarField, type ReaderAst } from './reader';
|
|
40
40
|
import { Argument, ArgumentValue } from './util';
|
|
@@ -106,10 +106,16 @@ export function getOrCreateCacheForArtifact<
|
|
|
106
106
|
break;
|
|
107
107
|
}
|
|
108
108
|
const factory = () => {
|
|
109
|
+
const readerWithRefetchQueries =
|
|
110
|
+
entrypoint.readerWithRefetchQueries.kind ===
|
|
111
|
+
'ReaderWithRefetchQueriesLoader'
|
|
112
|
+
? wrapPromise(entrypoint.readerWithRefetchQueries.loader())
|
|
113
|
+
: wrapResolvedValue(entrypoint.readerWithRefetchQueries);
|
|
109
114
|
const [networkRequest, disposeNetworkRequest] = maybeMakeNetworkRequest(
|
|
110
115
|
environment,
|
|
111
116
|
entrypoint,
|
|
112
117
|
variables,
|
|
118
|
+
readerWithRefetchQueries,
|
|
113
119
|
fetchOptions,
|
|
114
120
|
);
|
|
115
121
|
|
|
@@ -118,12 +124,7 @@ export function getOrCreateCacheForArtifact<
|
|
|
118
124
|
> = [
|
|
119
125
|
{
|
|
120
126
|
kind: 'FragmentReference',
|
|
121
|
-
readerWithRefetchQueries
|
|
122
|
-
kind: 'ReaderWithRefetchQueries',
|
|
123
|
-
readerArtifact: entrypoint.readerWithRefetchQueries.readerArtifact,
|
|
124
|
-
nestedRefetchQueries:
|
|
125
|
-
entrypoint.readerWithRefetchQueries.nestedRefetchQueries,
|
|
126
|
-
}),
|
|
127
|
+
readerWithRefetchQueries,
|
|
127
128
|
root: { __link: ROOT_ID, __typename: entrypoint.concreteType },
|
|
128
129
|
variables,
|
|
129
130
|
networkRequest: networkRequest,
|
package/src/core/entrypoint.ts
CHANGED
|
@@ -17,6 +17,16 @@ export type ReaderWithRefetchQueries<
|
|
|
17
17
|
readonly nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[];
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
+
export type ReaderWithRefetchQueriesLoader<
|
|
21
|
+
TReadFromStore extends UnknownTReadFromStore,
|
|
22
|
+
TClientFieldValue,
|
|
23
|
+
> = {
|
|
24
|
+
readonly kind: 'ReaderWithRefetchQueriesLoader';
|
|
25
|
+
readonly loader: () => Promise<
|
|
26
|
+
ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>
|
|
27
|
+
>;
|
|
28
|
+
};
|
|
29
|
+
|
|
20
30
|
export type NetworkRequestInfo<TNormalizationAst> = {
|
|
21
31
|
readonly kind: 'NetworkRequestInfo';
|
|
22
32
|
readonly operation: IsographOperation | IsographPersistedOperation;
|
|
@@ -48,10 +58,9 @@ export type IsographEntrypoint<
|
|
|
48
58
|
> = {
|
|
49
59
|
readonly kind: 'Entrypoint';
|
|
50
60
|
readonly networkRequestInfo: NetworkRequestInfo<TNormalizationAst>;
|
|
51
|
-
readonly readerWithRefetchQueries:
|
|
52
|
-
TReadFromStore,
|
|
53
|
-
TClientFieldValue
|
|
54
|
-
>;
|
|
61
|
+
readonly readerWithRefetchQueries:
|
|
62
|
+
| ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>
|
|
63
|
+
| ReaderWithRefetchQueriesLoader<TReadFromStore, TClientFieldValue>;
|
|
55
64
|
readonly concreteType: TypeName;
|
|
56
65
|
};
|
|
57
66
|
|
|
@@ -4,6 +4,7 @@ import { check, DEFAULT_SHOULD_FETCH_VALUE, FetchOptions } from './check';
|
|
|
4
4
|
import { getOrCreateCachedComponent } from './componentCache';
|
|
5
5
|
import {
|
|
6
6
|
IsographEntrypoint,
|
|
7
|
+
ReaderWithRefetchQueries,
|
|
7
8
|
RefetchQueryNormalizationArtifact,
|
|
8
9
|
type NormalizationAst,
|
|
9
10
|
type NormalizationAstLoader,
|
|
@@ -35,18 +36,30 @@ let networkRequestId = 0;
|
|
|
35
36
|
export function maybeMakeNetworkRequest<
|
|
36
37
|
TReadFromStore extends UnknownTReadFromStore,
|
|
37
38
|
TClientFieldValue,
|
|
39
|
+
TArtifact extends
|
|
40
|
+
| RefetchQueryNormalizationArtifact
|
|
41
|
+
| IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>,
|
|
38
42
|
TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
|
|
39
43
|
>(
|
|
40
44
|
environment: IsographEnvironment,
|
|
41
|
-
artifact:
|
|
42
|
-
| RefetchQueryNormalizationArtifact
|
|
43
|
-
| IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>,
|
|
45
|
+
artifact: TArtifact,
|
|
44
46
|
variables: ExtractParameters<TReadFromStore>,
|
|
47
|
+
readerWithRefetchQueries: TArtifact['kind'] extends 'Entrypoint'
|
|
48
|
+
? PromiseWrapper<
|
|
49
|
+
ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>
|
|
50
|
+
>
|
|
51
|
+
: undefined,
|
|
45
52
|
fetchOptions?: FetchOptions<TClientFieldValue>,
|
|
46
53
|
): ItemCleanupPair<PromiseWrapper<void, AnyError>> {
|
|
47
54
|
switch (fetchOptions?.shouldFetch ?? DEFAULT_SHOULD_FETCH_VALUE) {
|
|
48
55
|
case 'Yes': {
|
|
49
|
-
return makeNetworkRequest(
|
|
56
|
+
return makeNetworkRequest(
|
|
57
|
+
environment,
|
|
58
|
+
artifact,
|
|
59
|
+
variables,
|
|
60
|
+
readerWithRefetchQueries,
|
|
61
|
+
fetchOptions,
|
|
62
|
+
);
|
|
50
63
|
}
|
|
51
64
|
case 'No': {
|
|
52
65
|
return [wrapResolvedValue(undefined), () => {}];
|
|
@@ -77,6 +90,7 @@ export function maybeMakeNetworkRequest<
|
|
|
77
90
|
environment,
|
|
78
91
|
artifact,
|
|
79
92
|
variables,
|
|
93
|
+
readerWithRefetchQueries,
|
|
80
94
|
fetchOptions,
|
|
81
95
|
);
|
|
82
96
|
}
|
|
@@ -100,13 +114,19 @@ function loadNormalizationAst(
|
|
|
100
114
|
export function makeNetworkRequest<
|
|
101
115
|
TReadFromStore extends UnknownTReadFromStore,
|
|
102
116
|
TClientFieldValue,
|
|
117
|
+
TArtifact extends
|
|
118
|
+
| RefetchQueryNormalizationArtifact
|
|
119
|
+
| IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>,
|
|
103
120
|
TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
|
|
104
121
|
>(
|
|
105
122
|
environment: IsographEnvironment,
|
|
106
|
-
artifact:
|
|
107
|
-
| RefetchQueryNormalizationArtifact
|
|
108
|
-
| IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>,
|
|
123
|
+
artifact: TArtifact,
|
|
109
124
|
variables: ExtractParameters<TReadFromStore>,
|
|
125
|
+
readerWithRefetchQueries?: TArtifact['kind'] extends 'Entrypoint'
|
|
126
|
+
? PromiseWrapper<
|
|
127
|
+
ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>
|
|
128
|
+
>
|
|
129
|
+
: undefined,
|
|
110
130
|
fetchOptions?: FetchOptions<TClientFieldValue>,
|
|
111
131
|
): ItemCleanupPair<PromiseWrapper<void, AnyError>> {
|
|
112
132
|
// TODO this should be a DataId and stored in the store
|
|
@@ -130,8 +150,9 @@ export function makeNetworkRequest<
|
|
|
130
150
|
variables,
|
|
131
151
|
),
|
|
132
152
|
loadNormalizationAst(artifact.networkRequestInfo.normalizationAst),
|
|
153
|
+
readerWithRefetchQueries?.promise,
|
|
133
154
|
])
|
|
134
|
-
.then(([networkResponse, normalizationAst]) => {
|
|
155
|
+
.then(([networkResponse, normalizationAst, readerWithRefetchQueries]) => {
|
|
135
156
|
logMessage(environment, () => ({
|
|
136
157
|
kind: 'ReceivedNetworkResponse',
|
|
137
158
|
networkResponse,
|
|
@@ -175,6 +196,7 @@ export function makeNetworkRequest<
|
|
|
175
196
|
environment,
|
|
176
197
|
root,
|
|
177
198
|
variables,
|
|
199
|
+
readerWithRefetchQueries,
|
|
178
200
|
);
|
|
179
201
|
|
|
180
202
|
try {
|
|
@@ -235,14 +257,18 @@ type NetworkRequestStatus =
|
|
|
235
257
|
function readDataForOnComplete<
|
|
236
258
|
TReadFromStore extends UnknownTReadFromStore,
|
|
237
259
|
TClientFieldValue,
|
|
238
|
-
|
|
239
|
-
>(
|
|
240
|
-
artifact:
|
|
260
|
+
TArtifact extends
|
|
241
261
|
| RefetchQueryNormalizationArtifact
|
|
242
262
|
| IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>,
|
|
263
|
+
TNormalizationAst extends NormalizationAst | NormalizationAstLoader,
|
|
264
|
+
>(
|
|
265
|
+
artifact: TArtifact,
|
|
243
266
|
environment: IsographEnvironment,
|
|
244
267
|
root: Link,
|
|
245
268
|
variables: ExtractParameters<TReadFromStore>,
|
|
269
|
+
readerWithRefetchQueries:
|
|
270
|
+
| ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>
|
|
271
|
+
| undefined,
|
|
246
272
|
): TClientFieldValue | null {
|
|
247
273
|
// An entrypoint, but not a RefetchQueryNormalizationArtifact, has a reader ASTs.
|
|
248
274
|
// So, we can only pass data to onComplete if makeNetworkRequest was passed an entrypoint.
|
|
@@ -259,12 +285,17 @@ function readDataForOnComplete<
|
|
|
259
285
|
suspendIfInFlight: false,
|
|
260
286
|
throwOnNetworkError: false,
|
|
261
287
|
};
|
|
288
|
+
const resolvedReaderWithRefetchQueries =
|
|
289
|
+
readerWithRefetchQueries as ReaderWithRefetchQueries<
|
|
290
|
+
TReadFromStore,
|
|
291
|
+
TClientFieldValue
|
|
292
|
+
>;
|
|
262
293
|
|
|
263
294
|
const fragment: FragmentReference<TReadFromStore, TClientFieldValue> = {
|
|
264
295
|
kind: 'FragmentReference',
|
|
265
296
|
// TODO this smells.
|
|
266
297
|
readerWithRefetchQueries: wrapResolvedValue(
|
|
267
|
-
|
|
298
|
+
resolvedReaderWithRefetchQueries,
|
|
268
299
|
),
|
|
269
300
|
root,
|
|
270
301
|
variables,
|
|
@@ -275,7 +306,7 @@ function readDataForOnComplete<
|
|
|
275
306
|
fragment,
|
|
276
307
|
fakeNetworkRequestOptions,
|
|
277
308
|
).item;
|
|
278
|
-
const readerArtifact =
|
|
309
|
+
const readerArtifact = resolvedReaderWithRefetchQueries.readerArtifact;
|
|
279
310
|
switch (readerArtifact.kind) {
|
|
280
311
|
case 'ComponentReaderArtifact': {
|
|
281
312
|
// @ts-expect-error We should find a way to encode this in the type system:
|
|
@@ -290,7 +321,7 @@ function readDataForOnComplete<
|
|
|
290
321
|
kind: 'ReaderWithRefetchQueries',
|
|
291
322
|
readerArtifact: readerArtifact,
|
|
292
323
|
nestedRefetchQueries:
|
|
293
|
-
|
|
324
|
+
resolvedReaderWithRefetchQueries.nestedRefetchQueries,
|
|
294
325
|
}),
|
|
295
326
|
root,
|
|
296
327
|
variables,
|
|
@@ -308,7 +339,7 @@ function readDataForOnComplete<
|
|
|
308
339
|
startUpdate: getOrCreateCachedStartUpdate(
|
|
309
340
|
environment,
|
|
310
341
|
fragment,
|
|
311
|
-
|
|
342
|
+
resolvedReaderWithRefetchQueries.readerArtifact.fieldName,
|
|
312
343
|
fakeNetworkRequestOptions,
|
|
313
344
|
),
|
|
314
345
|
}
|
package/src/core/read.ts
CHANGED
|
@@ -344,23 +344,23 @@ export function readLoadablySelectedFieldData(
|
|
|
344
344
|
const fragmentReferenceAndDisposeFromEntrypoint = (
|
|
345
345
|
entrypoint: IsographEntrypoint<any, any, any>,
|
|
346
346
|
): [FragmentReference<any, any>, CleanupFn] => {
|
|
347
|
+
const readerWithRefetchQueries =
|
|
348
|
+
entrypoint.readerWithRefetchQueries.kind ===
|
|
349
|
+
'ReaderWithRefetchQueriesLoader'
|
|
350
|
+
? wrapPromise(entrypoint.readerWithRefetchQueries.loader())
|
|
351
|
+
: wrapResolvedValue(entrypoint.readerWithRefetchQueries);
|
|
347
352
|
const [networkRequest, disposeNetworkRequest] =
|
|
348
353
|
maybeMakeNetworkRequest(
|
|
349
354
|
environment,
|
|
350
355
|
entrypoint,
|
|
351
356
|
localVariables,
|
|
357
|
+
readerWithRefetchQueries,
|
|
352
358
|
fetchOptions,
|
|
353
359
|
);
|
|
354
360
|
|
|
355
361
|
const fragmentReference: FragmentReference<any, any> = {
|
|
356
362
|
kind: 'FragmentReference',
|
|
357
|
-
readerWithRefetchQueries
|
|
358
|
-
kind: 'ReaderWithRefetchQueries',
|
|
359
|
-
readerArtifact:
|
|
360
|
-
entrypoint.readerWithRefetchQueries.readerArtifact,
|
|
361
|
-
nestedRefetchQueries:
|
|
362
|
-
entrypoint.readerWithRefetchQueries.nestedRefetchQueries,
|
|
363
|
-
} as const),
|
|
363
|
+
readerWithRefetchQueries,
|
|
364
364
|
|
|
365
365
|
// TODO localVariables is not guaranteed to have an id field
|
|
366
366
|
root,
|
|
@@ -394,6 +394,14 @@ export function readLoadablySelectedFieldData(
|
|
|
394
394
|
}
|
|
395
395
|
| { kind: 'Disposed' } = { kind: 'EntrypointNotLoaded' };
|
|
396
396
|
|
|
397
|
+
const readerWithRefetchQueries = wrapPromise(
|
|
398
|
+
isographArtifactPromiseWrapper.promise.then((entrypoint) =>
|
|
399
|
+
entrypoint.readerWithRefetchQueries.kind ===
|
|
400
|
+
'ReaderWithRefetchQueriesLoader'
|
|
401
|
+
? entrypoint.readerWithRefetchQueries.loader()
|
|
402
|
+
: entrypoint.readerWithRefetchQueries,
|
|
403
|
+
),
|
|
404
|
+
);
|
|
397
405
|
const networkRequest = wrapPromise(
|
|
398
406
|
isographArtifactPromiseWrapper.promise.then((entrypoint) => {
|
|
399
407
|
if (entrypointLoaderState.kind === 'EntrypointNotLoaded') {
|
|
@@ -402,6 +410,7 @@ export function readLoadablySelectedFieldData(
|
|
|
402
410
|
environment,
|
|
403
411
|
entrypoint,
|
|
404
412
|
localVariables,
|
|
413
|
+
readerWithRefetchQueries,
|
|
405
414
|
fetchOptions,
|
|
406
415
|
);
|
|
407
416
|
entrypointLoaderState = {
|
|
@@ -412,14 +421,10 @@ export function readLoadablySelectedFieldData(
|
|
|
412
421
|
}
|
|
413
422
|
}),
|
|
414
423
|
);
|
|
415
|
-
const readerWithRefetchPromise =
|
|
416
|
-
isographArtifactPromiseWrapper.promise.then(
|
|
417
|
-
(entrypoint) => entrypoint.readerWithRefetchQueries,
|
|
418
|
-
);
|
|
419
424
|
|
|
420
425
|
const fragmentReference: FragmentReference<any, any> = {
|
|
421
426
|
kind: 'FragmentReference',
|
|
422
|
-
readerWithRefetchQueries
|
|
427
|
+
readerWithRefetchQueries,
|
|
423
428
|
|
|
424
429
|
// TODO localVariables is not guaranteed to have an id field
|
|
425
430
|
root,
|
|
@@ -872,6 +877,7 @@ export function readLinkedFieldData(
|
|
|
872
877
|
environment,
|
|
873
878
|
refetchQueryArtifact,
|
|
874
879
|
variables,
|
|
880
|
+
undefined,
|
|
875
881
|
fetchOptions,
|
|
876
882
|
);
|
|
877
883
|
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from '../core/FragmentReference';
|
|
16
16
|
import { ROOT_ID } from '../core/IsographEnvironment';
|
|
17
17
|
import { maybeMakeNetworkRequest } from '../core/makeNetworkRequest';
|
|
18
|
-
import { wrapResolvedValue } from '../core/PromiseWrapper';
|
|
18
|
+
import { wrapPromise, wrapResolvedValue } from '../core/PromiseWrapper';
|
|
19
19
|
import { useIsographEnvironment } from './IsographEnvironmentProvider';
|
|
20
20
|
|
|
21
21
|
export type UseImperativeReferenceResult<
|
|
@@ -61,21 +61,22 @@ export function useImperativeReference<
|
|
|
61
61
|
variables: ExtractParameters<TReadFromStore>,
|
|
62
62
|
fetchOptions?: FetchOptions<TClientFieldValue>,
|
|
63
63
|
) => {
|
|
64
|
+
const readerWithRefetchQueries =
|
|
65
|
+
entrypoint.readerWithRefetchQueries.kind ===
|
|
66
|
+
'ReaderWithRefetchQueriesLoader'
|
|
67
|
+
? wrapPromise(entrypoint.readerWithRefetchQueries.loader())
|
|
68
|
+
: wrapResolvedValue(entrypoint.readerWithRefetchQueries);
|
|
64
69
|
const [networkRequest, disposeNetworkRequest] = maybeMakeNetworkRequest(
|
|
65
70
|
environment,
|
|
66
71
|
entrypoint,
|
|
67
72
|
variables,
|
|
73
|
+
readerWithRefetchQueries,
|
|
68
74
|
fetchOptions,
|
|
69
75
|
);
|
|
70
76
|
setState([
|
|
71
77
|
{
|
|
72
78
|
kind: 'FragmentReference',
|
|
73
|
-
readerWithRefetchQueries
|
|
74
|
-
kind: 'ReaderWithRefetchQueries',
|
|
75
|
-
readerArtifact: entrypoint.readerWithRefetchQueries.readerArtifact,
|
|
76
|
-
nestedRefetchQueries:
|
|
77
|
-
entrypoint.readerWithRefetchQueries.nestedRefetchQueries,
|
|
78
|
-
}),
|
|
79
|
+
readerWithRefetchQueries,
|
|
79
80
|
root: { __link: ROOT_ID, __typename: entrypoint.concreteType },
|
|
80
81
|
variables,
|
|
81
82
|
networkRequest,
|