@isograph/react 0.0.0-main-a2cf999d → 0.0.0-main-c73610ca

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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @isograph/react@0.0.0-main-a2cf999d compile-libs /Users/runner/work/isograph/isograph/libs/isograph-react
2
+ > @isograph/react@0.0.0-main-c73610ca compile-libs /Users/runner/work/isograph/isograph/libs/isograph-react
3
3
  > rm -rf dist/* && tsc -p tsconfig.pkg.json
4
4
 
@@ -22,7 +22,7 @@ export type ReadDataResult<Data> = ReadDataResultSuccess<Data> | {
22
22
  export declare function readLoadablySelectedFieldData(environment: IsographEnvironment, field: LoadablySelectedField, root: Link, variables: Variables, networkRequest: PromiseWrapper<void, any>, networkRequestOptions: NetworkRequestReaderOptions, mutableEncounteredRecords: EncounteredIds): ReadDataResult<unknown>;
23
23
  export declare function readResolverFieldData(environment: IsographEnvironment, field: ReaderNonLoadableResolverField, root: Link, variables: Variables, nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[], networkRequest: PromiseWrapper<void, any>, networkRequestOptions: NetworkRequestReaderOptions, mutableEncounteredRecords: EncounteredIds): ReadDataResult<unknown>;
24
24
  export declare function readScalarFieldData(field: ReaderScalarField, storeRecord: StoreRecord, root: Link, variables: Variables): ReadDataResult<string | number | boolean | Link | DataTypeValue[] | null>;
25
- export declare function readLinkedFieldData(environment: IsographEnvironment, field: ReaderLinkedField, storeRecord: StoreRecord, root: Link, variables: Variables, networkRequest: PromiseWrapper<void, any>, readData: <TReadFromStore>(ast: ReaderAst<TReadFromStore>, root: Link) => ReadDataResult<object>): ReadDataResult<unknown>;
25
+ export declare function readLinkedFieldData(environment: IsographEnvironment, field: ReaderLinkedField, storeRecord: StoreRecord, root: Link, variables: Variables, nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[], networkRequest: PromiseWrapper<void, any>, readData: <TReadFromStore>(ast: ReaderAst<TReadFromStore>, root: Link) => ReadDataResult<object>): ReadDataResult<unknown>;
26
26
  export type NetworkRequestReaderOptions = {
27
27
  suspendIfInFlight: boolean;
28
28
  throwOnNetworkError: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/core/read.ts"],"names":[],"mappings":"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"}
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
@@ -96,7 +96,7 @@ function readData(environment, ast, root, variables, nestedRefetchQueries, netwo
96
96
  break;
97
97
  }
98
98
  case 'Linked': {
99
- const data = readLinkedFieldData(environment, field, storeRecord, root, variables, networkRequest, (ast, root) => readData(environment, ast, root, variables, nestedRefetchQueries, networkRequest, networkRequestOptions, mutableEncounteredRecords));
99
+ const data = readLinkedFieldData(environment, field, storeRecord, root, variables, nestedRefetchQueries, networkRequest, (ast, root) => readData(environment, ast, root, variables, nestedRefetchQueries, networkRequest, networkRequestOptions, mutableEncounteredRecords));
100
100
  if (data.kind === 'MissingData') {
101
101
  return data;
102
102
  }
@@ -374,7 +374,7 @@ function readScalarFieldData(field, storeRecord, root, variables) {
374
374
  }
375
375
  return { kind: 'Success', data: value };
376
376
  }
377
- function readLinkedFieldData(environment, field, storeRecord, root, variables, networkRequest, readData) {
377
+ function readLinkedFieldData(environment, field, storeRecord, root, variables, nestedRefetchQueries, networkRequest, readData) {
378
378
  const storeRecordName = (0, cache_1.getParentRecordKey)(field, variables);
379
379
  const value = storeRecord[storeRecordName];
380
380
  if (Array.isArray(value)) {
@@ -443,7 +443,7 @@ function readLinkedFieldData(environment, field, storeRecord, root, variables, n
443
443
  root,
444
444
  variables: generateChildVariableMap(variables,
445
445
  // TODO this is wrong
446
- // should use field.condition.variables
446
+ // should use field.arguments
447
447
  // but it doesn't exist
448
448
  []),
449
449
  networkRequest,
@@ -498,6 +498,79 @@ function readLinkedFieldData(environment, field, storeRecord, root, variables, n
498
498
  };
499
499
  }
500
500
  const targetId = link;
501
+ if (typeof field.refetchQuery === 'number') {
502
+ root = link;
503
+ const refetchReaderParams = readData([
504
+ {
505
+ kind: 'Scalar',
506
+ fieldName: 'id',
507
+ alias: null,
508
+ arguments: null,
509
+ isUpdatable: false,
510
+ },
511
+ ], root);
512
+ if (refetchReaderParams.kind === 'MissingData') {
513
+ return {
514
+ kind: 'MissingData',
515
+ reason: 'Missing data for ' + field.alias + ' on root ' + root.__link,
516
+ nestedReason: refetchReaderParams,
517
+ recordLink: refetchReaderParams.recordLink,
518
+ };
519
+ }
520
+ const refetchQueryIndex = field.refetchQuery;
521
+ const refetchQuery = nestedRefetchQueries[refetchQueryIndex];
522
+ if (refetchQuery == null) {
523
+ throw new Error('refetchQuery is null in RefetchField. This is indicative of a bug in Isograph.');
524
+ }
525
+ const refetchQueryArtifact = refetchQuery.artifact;
526
+ const allowedVariables = refetchQuery.allowedVariables;
527
+ return {
528
+ kind: 'Success',
529
+ data: (args,
530
+ // TODO get the associated type for FetchOptions from the loadably selected field
531
+ fetchOptions) => {
532
+ const includeReadOutData = (variables, readOutData) => {
533
+ variables.id = readOutData.id;
534
+ return variables;
535
+ };
536
+ const localVariables = includeReadOutData(args !== null && args !== void 0 ? args : {}, refetchReaderParams.data);
537
+ writeQueryArgsToVariables(localVariables, field.arguments, variables);
538
+ return [
539
+ // Stable id
540
+ root.__typename +
541
+ ':' +
542
+ root.__link +
543
+ '/' +
544
+ field.fieldName +
545
+ '/' +
546
+ stableStringifyArgs(localVariables),
547
+ // Fetcher
548
+ () => {
549
+ 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);
551
+ const fragmentReference = {
552
+ kind: 'FragmentReference',
553
+ readerWithRefetchQueries: (0, PromiseWrapper_1.wrapResolvedValue)({
554
+ kind: 'ReaderWithRefetchQueries',
555
+ readerArtifact: {
556
+ kind: 'EagerReaderArtifact',
557
+ fieldName: field.fieldName,
558
+ readerAst: field.selections,
559
+ resolver: ({ data }) => data,
560
+ hasUpdatable: false,
561
+ },
562
+ nestedRefetchQueries,
563
+ }),
564
+ root,
565
+ variables,
566
+ networkRequest,
567
+ };
568
+ return [fragmentReference, disposeNetworkRequest];
569
+ },
570
+ ];
571
+ },
572
+ };
573
+ }
501
574
  const data = readData(field.selections, targetId);
502
575
  if (data.kind === 'MissingData') {
503
576
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isograph/react",
3
- "version": "0.0.0-main-a2cf999d",
3
+ "version": "0.0.0-main-c73610ca",
4
4
  "description": "Use Isograph with React",
5
5
  "homepage": "https://isograph.dev",
6
6
  "main": "dist/index.js",
@@ -20,9 +20,9 @@
20
20
  "iso-watch": "cross-env ../../target/debug/isograph_cli --config ./isograph.config.json --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@isograph/disposable-types": "0.0.0-main-a2cf999d",
24
- "@isograph/react-disposable-state": "0.0.0-main-a2cf999d",
25
- "@isograph/reference-counted-pointer": "0.0.0-main-a2cf999d"
23
+ "@isograph/disposable-types": "0.0.0-main-c73610ca",
24
+ "@isograph/react-disposable-state": "0.0.0-main-c73610ca",
25
+ "@isograph/reference-counted-pointer": "0.0.0-main-c73610ca"
26
26
  },
27
27
  "peerDependencies": {
28
28
  "react": "^18.0.0 || ^19.0.0"
package/src/core/read.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { CleanupFn } from '@isograph/disposable-types';
1
+ import { CleanupFn, type ItemCleanupPair } from '@isograph/disposable-types';
2
2
  import {
3
3
  getParentRecordKey,
4
4
  insertIfNotExists,
@@ -196,6 +196,7 @@ function readData<TReadFromStore>(
196
196
  storeRecord,
197
197
  root,
198
198
  variables,
199
+ nestedRefetchQueries,
199
200
  networkRequest,
200
201
  (ast, root) =>
201
202
  readData(
@@ -644,8 +645,8 @@ export function readLinkedFieldData(
644
645
  storeRecord: StoreRecord,
645
646
  root: Link,
646
647
  variables: Variables,
648
+ nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[],
647
649
  networkRequest: PromiseWrapper<void, any>,
648
-
649
650
  readData: <TReadFromStore>(
650
651
  ast: ReaderAst<TReadFromStore>,
651
652
  root: Link,
@@ -726,7 +727,7 @@ export function readLinkedFieldData(
726
727
  variables: generateChildVariableMap(
727
728
  variables,
728
729
  // TODO this is wrong
729
- // should use field.condition.variables
730
+ // should use field.arguments
730
731
  // but it doesn't exist
731
732
  [],
732
733
  ),
@@ -797,6 +798,104 @@ export function readLinkedFieldData(
797
798
  };
798
799
  }
799
800
  const targetId = link;
801
+ if (typeof field.refetchQuery === 'number') {
802
+ root = link;
803
+ const refetchReaderParams = readData(
804
+ [
805
+ {
806
+ kind: 'Scalar',
807
+ fieldName: 'id',
808
+ alias: null,
809
+ arguments: null,
810
+ isUpdatable: false,
811
+ },
812
+ ],
813
+ root,
814
+ );
815
+
816
+ if (refetchReaderParams.kind === 'MissingData') {
817
+ return {
818
+ kind: 'MissingData',
819
+ reason: 'Missing data for ' + field.alias + ' on root ' + root.__link,
820
+ nestedReason: refetchReaderParams,
821
+ recordLink: refetchReaderParams.recordLink,
822
+ };
823
+ }
824
+ const refetchQueryIndex = field.refetchQuery;
825
+ const refetchQuery = nestedRefetchQueries[refetchQueryIndex];
826
+
827
+ if (refetchQuery == null) {
828
+ throw new Error(
829
+ 'refetchQuery is null in RefetchField. This is indicative of a bug in Isograph.',
830
+ );
831
+ }
832
+ const refetchQueryArtifact = refetchQuery.artifact;
833
+ const allowedVariables = refetchQuery.allowedVariables;
834
+
835
+ return {
836
+ kind: 'Success',
837
+ data: (
838
+ args: any,
839
+ // TODO get the associated type for FetchOptions from the loadably selected field
840
+ fetchOptions?: FetchOptions<any>,
841
+ ) => {
842
+ const includeReadOutData = (variables: any, readOutData: any) => {
843
+ variables.id = readOutData.id;
844
+ return variables;
845
+ };
846
+ const localVariables = includeReadOutData(
847
+ args ?? {},
848
+ refetchReaderParams.data,
849
+ );
850
+ writeQueryArgsToVariables(localVariables, field.arguments, variables);
851
+
852
+ return [
853
+ // Stable id
854
+ root.__typename +
855
+ ':' +
856
+ root.__link +
857
+ '/' +
858
+ field.fieldName +
859
+ '/' +
860
+ stableStringifyArgs(localVariables),
861
+ // Fetcher
862
+ (): ItemCleanupPair<FragmentReference<any, any>> | undefined => {
863
+ const variables = includeReadOutData(
864
+ filterVariables({ ...args, ...localVariables }, allowedVariables),
865
+ refetchReaderParams.data,
866
+ );
867
+
868
+ const [networkRequest, disposeNetworkRequest] =
869
+ maybeMakeNetworkRequest(
870
+ environment,
871
+ refetchQueryArtifact,
872
+ variables,
873
+ fetchOptions,
874
+ );
875
+
876
+ const fragmentReference: FragmentReference<any, any> = {
877
+ kind: 'FragmentReference',
878
+ readerWithRefetchQueries: wrapResolvedValue({
879
+ kind: 'ReaderWithRefetchQueries',
880
+ readerArtifact: {
881
+ kind: 'EagerReaderArtifact',
882
+ fieldName: field.fieldName,
883
+ readerAst: field.selections,
884
+ resolver: ({ data }) => data,
885
+ hasUpdatable: false,
886
+ },
887
+ nestedRefetchQueries,
888
+ }),
889
+ root,
890
+ variables,
891
+ networkRequest,
892
+ };
893
+ return [fragmentReference, disposeNetworkRequest];
894
+ },
895
+ ];
896
+ },
897
+ };
898
+ }
800
899
  const data = readData(field.selections, targetId);
801
900
  if (data.kind === 'MissingData') {
802
901
  return {