@isograph/react 0.4.2 → 0.4.3

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,5 +1,5 @@
1
- ../.. |  WARN  Unsupported engine: wanted: {"node":"22.9.0"} (current: {"node":"v22.19.0","pnpm":"10.15.0"})
1
+ ../.. |  WARN  Unsupported engine: wanted: {"node":"22.9.0"} (current: {"node":"v22.20.0","pnpm":"10.15.0"})
2
2
 
3
- > @isograph/react@0.4.2 compile-libs /home/runner/work/isograph/isograph/libs/isograph-react
3
+ > @isograph/react@0.4.3 compile-libs /home/runner/work/isograph/isograph/libs/isograph-react
4
4
  > rimraf dist && tsc -p tsconfig.pkg.json
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"areEqualWithDeepComparison.d.ts","sourceRoot":"","sources":["../../src/core/areEqualWithDeepComparison.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAwC,MAAM,UAAU,CAAC;AA+DhF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,EACtB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACpB,MAAM,CA+DR"}
1
+ {"version":3,"file":"areEqualWithDeepComparison.d.ts","sourceRoot":"","sources":["../../src/core/areEqualWithDeepComparison.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAwC,MAAM,UAAU,CAAC;AA+DhF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,EACtB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACpB,MAAM,CAoER"}
@@ -53,6 +53,11 @@ function mergeObjectsUsingReaderAst(ast, oldItemObject, newItemObject) {
53
53
  switch (field.kind) {
54
54
  case 'Scalar':
55
55
  case 'Linked':
56
+ if (field.kind === 'Linked' && field.refetchQueryIndex != null) {
57
+ // client pointers are functions, so we can't merge them
58
+ canRecycle = false;
59
+ break;
60
+ }
56
61
  const key = (_a = field.alias) !== null && _a !== void 0 ? _a : field.fieldName;
57
62
  // @ts-expect-error
58
63
  const oldValue = oldItemObject[key];
@@ -20,7 +20,9 @@ export type ComponentReaderArtifact<TReadFromStore extends UnknownTReadFromStore
20
20
  readonly hasUpdatable: boolean;
21
21
  };
22
22
  export type ResolverFirstParameter<TReadFromStore extends UnknownTReadFromStore> = Pick<TReadFromStore, 'data' | 'parameters' | 'startUpdate'>;
23
- export type StartUpdate<UpdatableData> = (updater: (updatableData: UpdatableData) => void) => void;
23
+ export type StartUpdate<UpdatableData> = (updater: (startUpdateParams: {
24
+ updatableData: UpdatableData;
25
+ }) => void) => void;
24
26
  export type RefetchReaderArtifact = {
25
27
  readonly kind: 'RefetchReaderArtifact';
26
28
  readonly readerAst: ReaderAst<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/core/reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,iCAAiC,EACjC,wCAAwC,EACzC,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,MAAM,sBAAsB,CAChC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,eAAe,SAAS,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAEhD,mBAAmB,CAAC,cAAc,EAAE,iBAAiB,CAAC,GACtD,uBAAuB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AAE7D,MAAM,MAAM,mBAAmB,CAC7B,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,IACf;IACF,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,EAAE,sBAAsB,CAAC,cAAc,CAAC,KACzC,iBAAiB,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,uBAAuB,CACjC,cAAc,SAAS,qBAAqB,EAC5C,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAC1E;IACF,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,CACjB,IAAI,EAAE,sBAAsB,CAAC,cAAc,CAAC,EAC5C,YAAY,EAAE,eAAe,KAC1B,KAAK,CAAC,SAAS,CAAC;IACrB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAChC,cAAc,SAAS,qBAAqB,IAC1C,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC;AAEhE,MAAM,MAAM,WAAW,CAAC,aAAa,IAAI,CACvC,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,KAC5C,IAAI,CAAC;AAEV,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,CACjB,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,iCAAiC,EAE3C,SAAS,EAAE,GAAG,EAEd,iBAAiB,EAAE,GAAG,EACtB,QAAQ,EAAE,SAAS,EACnB,cAAc,EAAE,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAE5D,oBAAoB,EAAE,wCAAwC,EAAE,KAC7D,MAAM,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,iBAAiB,GACjB,iBAAiB,GACjB,8BAA8B,GAC9B,6BAA6B,GAC7B,qBAAqB,GACrB,eAAe,CAAC;AAGpB,MAAM,MAAM,SAAS,CAAC,cAAc,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CACrC;QAAE,IAAI,EAAE,GAAG,CAAC;QAAC,UAAU,EAAE,GAAG,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;KAAE,EAC9D,SAAS,GAAG,IAAI,CACjB,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/D,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAKvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAG1C,QAAQ,CAAC,UAAU,EACf,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACjC,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAU9B,MAAM,MAAM,aAAa,CACvB,cAAc,SAAS,qBAAqB,EAC5C,OAAO,EACP,KAAK,GAAG,iBAAiB,CAAC,cAAc,CAAC,IACvC,CACF,IAAI,EAAE,KAAK,GAAG,IAAI,EAKlB,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,KAChC,CAAC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/core/reader.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,9 @@ function getOrCreateCachedStartUpdate(environment, fragmentReference, eagerResol
17
17
  function createStartUpdate(environment, fragmentReference, networkRequestOptions) {
18
18
  return (updater) => {
19
19
  let mutableUpdatedIds = new Map();
20
- let data = createUpdatableProxy(environment, fragmentReference, networkRequestOptions, mutableUpdatedIds);
20
+ let updatableData = createUpdatableProxy(environment, fragmentReference, networkRequestOptions, mutableUpdatedIds);
21
21
  try {
22
- updater(data);
22
+ updater({ updatableData });
23
23
  }
24
24
  catch (e) {
25
25
  (0, logging_1.logMessage)(environment, () => ({
@@ -105,10 +105,10 @@ function readUpdatableData(environment, ast, root, variables, nestedRefetchQueri
105
105
  }, 'isUpdatable' in field && field.isUpdatable
106
106
  ? (newValue) => {
107
107
  if (Array.isArray(newValue)) {
108
- storeRecord[storeRecordName] = newValue.map((node) => (0, IsographEnvironment_1.assertLink)(node === null || node === void 0 ? void 0 : node.link));
108
+ storeRecord[storeRecordName] = newValue.map((node) => (0, IsographEnvironment_1.assertLink)(node === null || node === void 0 ? void 0 : node.__link));
109
109
  }
110
110
  else {
111
- storeRecord[storeRecordName] = (0, IsographEnvironment_1.assertLink)(newValue === null || newValue === void 0 ? void 0 : newValue.link);
111
+ storeRecord[storeRecordName] = (0, IsographEnvironment_1.assertLink)(newValue === null || newValue === void 0 ? void 0 : newValue.__link);
112
112
  }
113
113
  const updatedIds = (0, cache_1.insertEmptySetIfMissing)(mutableUpdatedIds, root.__typename);
114
114
  updatedIds.add(root.__link);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isograph/react",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "Use Isograph with React",
5
5
  "homepage": "https://isograph.dev",
6
6
  "main": "dist/index.js",
@@ -72,6 +72,11 @@ export function mergeObjectsUsingReaderAst(
72
72
  switch (field.kind) {
73
73
  case 'Scalar':
74
74
  case 'Linked':
75
+ if (field.kind === 'Linked' && field.refetchQueryIndex != null) {
76
+ // client pointers are functions, so we can't merge them
77
+ canRecycle = false;
78
+ break;
79
+ }
75
80
  const key = field.alias ?? field.fieldName;
76
81
  // @ts-expect-error
77
82
  const oldValue = oldItemObject[key];
@@ -58,7 +58,7 @@ export type ResolverFirstParameter<
58
58
  > = Pick<TReadFromStore, 'data' | 'parameters' | 'startUpdate'>;
59
59
 
60
60
  export type StartUpdate<UpdatableData> = (
61
- updater: (updatableData: UpdatableData) => void,
61
+ updater: (startUpdateParams: { updatableData: UpdatableData }) => void,
62
62
  ) => void;
63
63
 
64
64
  export type RefetchReaderArtifact = {
@@ -56,7 +56,7 @@ export function createStartUpdate<TReadFromStore extends UnknownTReadFromStore>(
56
56
  return (updater) => {
57
57
  let mutableUpdatedIds: EncounteredIds = new Map();
58
58
 
59
- let data = createUpdatableProxy(
59
+ let updatableData = createUpdatableProxy(
60
60
  environment,
61
61
  fragmentReference,
62
62
  networkRequestOptions,
@@ -64,7 +64,7 @@ export function createStartUpdate<TReadFromStore extends UnknownTReadFromStore>(
64
64
  );
65
65
 
66
66
  try {
67
- updater(data);
67
+ updater({ updatableData });
68
68
  } catch (e) {
69
69
  logMessage(environment, () => ({
70
70
  kind: 'StartUpdateError',
@@ -245,10 +245,10 @@ function readUpdatableData<TReadFromStore extends UnknownTReadFromStore>(
245
245
  ? (newValue) => {
246
246
  if (Array.isArray(newValue)) {
247
247
  storeRecord[storeRecordName] = newValue.map((node) =>
248
- assertLink(node?.link),
248
+ assertLink(node?.__link),
249
249
  );
250
250
  } else {
251
- storeRecord[storeRecordName] = assertLink(newValue?.link);
251
+ storeRecord[storeRecordName] = assertLink(newValue?.__link);
252
252
  }
253
253
  const updatedIds = insertEmptySetIfMissing(
254
254
  mutableUpdatedIds,
@@ -0,0 +1,2 @@
1
+ import type { Link } from '@isograph/react';
2
+ export type Economist____link__output_type = Link<"Economist">;
@@ -0,0 +1,3 @@
1
+ import type { Link } from '@isograph/react';
2
+ export type Node____link__output_type =
3
+ | Link<"Economist">;
@@ -10,7 +10,7 @@ const readerAst: ReaderAst<{ data: any, parameters: Record<PropertyKey, never> }
10
10
  },
11
11
  {
12
12
  kind: "Link",
13
- alias: "link",
13
+ alias: "__link",
14
14
  },
15
15
  ];
16
16
 
@@ -20,7 +20,7 @@ const artifact: EagerReaderArtifact<
20
20
  > = {
21
21
  kind: "EagerReaderArtifact",
22
22
  fieldName: "Node.asEconomist",
23
- resolver: ({ data }) => data.__typename === "Economist" ? data.link : null,
23
+ resolver: ({ data }) => data.__typename === "Economist" ? data.__link : null,
24
24
  readerAst,
25
25
  hasUpdatable: false,
26
26
  };
@@ -1,4 +1,4 @@
1
- import { type Node__link__output_type } from '../../Node/link/output_type';
1
+ import { type Node____link__output_type } from '../../Node/__link/output_type';
2
2
  import type { StartUpdate } from '@isograph/react';
3
3
 
4
4
  export type Query__linkedUpdate__param = {
@@ -15,7 +15,7 @@ A client pointer for the Economist type.
15
15
  /**
16
16
  A store Link for the Node type.
17
17
  */
18
- readonly link: Node__link__output_type,
18
+ readonly __link: Node____link__output_type,
19
19
  /**
20
20
  A client pointer for the Economist type.
21
21
  */
@@ -34,12 +34,12 @@ A client pointer for the Economist type.
34
34
  name: string,
35
35
  } | null),
36
36
  } | null),
37
- set node(value: ({ link: Node__link__output_type } | null)),
37
+ set node(value: ({ __link: Node____link__output_type } | null)),
38
38
  readonly john_stuart_mill: ({
39
39
  /**
40
40
  A store Link for the Node type.
41
41
  */
42
- readonly link: Node__link__output_type,
42
+ readonly __link: Node____link__output_type,
43
43
  /**
44
44
  A client pointer for the Economist type.
45
45
  */
@@ -17,6 +17,7 @@ const readerAst: ReaderAst<Query__linkedUpdate__param> = [
17
17
  ],
18
18
  condition: null,
19
19
  isUpdatable: true,
20
+ refetchQueryIndex: null,
20
21
  selections: [
21
22
  {
22
23
  kind: "Linked",
@@ -25,6 +26,7 @@ const readerAst: ReaderAst<Query__linkedUpdate__param> = [
25
26
  arguments: null,
26
27
  condition: Node__asEconomist__resolver_reader,
27
28
  isUpdatable: false,
29
+ refetchQueryIndex: null,
28
30
  selections: [
29
31
  {
30
32
  kind: "Scalar",
@@ -34,10 +36,8 @@ const readerAst: ReaderAst<Query__linkedUpdate__param> = [
34
36
  isUpdatable: true,
35
37
  },
36
38
  ],
37
- refetchQueryIndex: null,
38
39
  },
39
40
  ],
40
- refetchQueryIndex: null,
41
41
  },
42
42
  {
43
43
  kind: "Linked",
@@ -51,10 +51,11 @@ const readerAst: ReaderAst<Query__linkedUpdate__param> = [
51
51
  ],
52
52
  condition: null,
53
53
  isUpdatable: false,
54
+ refetchQueryIndex: null,
54
55
  selections: [
55
56
  {
56
57
  kind: "Link",
57
- alias: "link",
58
+ alias: "__link",
58
59
  },
59
60
  {
60
61
  kind: "Linked",
@@ -63,6 +64,7 @@ const readerAst: ReaderAst<Query__linkedUpdate__param> = [
63
64
  arguments: null,
64
65
  condition: Node__asEconomist__resolver_reader,
65
66
  isUpdatable: false,
67
+ refetchQueryIndex: null,
66
68
  selections: [
67
69
  {
68
70
  kind: "Scalar",
@@ -72,10 +74,8 @@ const readerAst: ReaderAst<Query__linkedUpdate__param> = [
72
74
  isUpdatable: false,
73
75
  },
74
76
  ],
75
- refetchQueryIndex: null,
76
77
  },
77
78
  ],
78
- refetchQueryIndex: null,
79
79
  },
80
80
  ];
81
81
 
@@ -11,6 +11,7 @@ const readerAst: ReaderAst<Query__meName__param> = [
11
11
  arguments: null,
12
12
  condition: null,
13
13
  isUpdatable: false,
14
+ refetchQueryIndex: null,
14
15
  selections: [
15
16
  {
16
17
  kind: "Scalar",
@@ -20,7 +21,6 @@ const readerAst: ReaderAst<Query__meName__param> = [
20
21
  isUpdatable: false,
21
22
  },
22
23
  ],
23
- refetchQueryIndex: null,
24
24
  },
25
25
  ];
26
26
 
@@ -11,6 +11,7 @@ const readerAst: ReaderAst<Query__meNameSuccessor__param> = [
11
11
  arguments: null,
12
12
  condition: null,
13
13
  isUpdatable: false,
14
+ refetchQueryIndex: null,
14
15
  selections: [
15
16
  {
16
17
  kind: "Scalar",
@@ -26,6 +27,7 @@ const readerAst: ReaderAst<Query__meNameSuccessor__param> = [
26
27
  arguments: null,
27
28
  condition: null,
28
29
  isUpdatable: false,
30
+ refetchQueryIndex: null,
29
31
  selections: [
30
32
  {
31
33
  kind: "Linked",
@@ -34,6 +36,7 @@ const readerAst: ReaderAst<Query__meNameSuccessor__param> = [
34
36
  arguments: null,
35
37
  condition: null,
36
38
  isUpdatable: false,
39
+ refetchQueryIndex: null,
37
40
  selections: [
38
41
  {
39
42
  kind: "Scalar",
@@ -43,13 +46,10 @@ const readerAst: ReaderAst<Query__meNameSuccessor__param> = [
43
46
  isUpdatable: false,
44
47
  },
45
48
  ],
46
- refetchQueryIndex: null,
47
49
  },
48
50
  ],
49
- refetchQueryIndex: null,
50
51
  },
51
52
  ],
52
- refetchQueryIndex: null,
53
53
  },
54
54
  ];
55
55
 
@@ -16,6 +16,7 @@ const readerAst: ReaderAst<Query__nodeField__param> = [
16
16
  ],
17
17
  condition: null,
18
18
  isUpdatable: false,
19
+ refetchQueryIndex: null,
19
20
  selections: [
20
21
  {
21
22
  kind: "Scalar",
@@ -25,7 +26,6 @@ const readerAst: ReaderAst<Query__nodeField__param> = [
25
26
  isUpdatable: false,
26
27
  },
27
28
  ],
28
- refetchQueryIndex: null,
29
29
  },
30
30
  ];
31
31
 
@@ -17,6 +17,7 @@ const readerAst: ReaderAst<Query__startUpdate__param> = [
17
17
  ],
18
18
  condition: null,
19
19
  isUpdatable: false,
20
+ refetchQueryIndex: null,
20
21
  selections: [
21
22
  {
22
23
  kind: "Linked",
@@ -25,6 +26,7 @@ const readerAst: ReaderAst<Query__startUpdate__param> = [
25
26
  arguments: null,
26
27
  condition: Node__asEconomist__resolver_reader,
27
28
  isUpdatable: false,
29
+ refetchQueryIndex: null,
28
30
  selections: [
29
31
  {
30
32
  kind: "Scalar",
@@ -34,10 +36,8 @@ const readerAst: ReaderAst<Query__startUpdate__param> = [
34
36
  isUpdatable: true,
35
37
  },
36
38
  ],
37
- refetchQueryIndex: null,
38
39
  },
39
40
  ],
40
- refetchQueryIndex: null,
41
41
  },
42
42
  ];
43
43
 
@@ -11,6 +11,7 @@ const readerAst: ReaderAst<Query__subquery__param> = [
11
11
  arguments: null,
12
12
  condition: null,
13
13
  isUpdatable: false,
14
+ refetchQueryIndex: null,
14
15
  selections: [
15
16
  {
16
17
  kind: "Linked",
@@ -24,6 +25,7 @@ const readerAst: ReaderAst<Query__subquery__param> = [
24
25
  ],
25
26
  condition: null,
26
27
  isUpdatable: false,
28
+ refetchQueryIndex: null,
27
29
  selections: [
28
30
  {
29
31
  kind: "Scalar",
@@ -33,10 +35,8 @@ const readerAst: ReaderAst<Query__subquery__param> = [
33
35
  isUpdatable: false,
34
36
  },
35
37
  ],
36
- refetchQueryIndex: null,
37
38
  },
38
39
  ],
39
- refetchQueryIndex: null,
40
40
  },
41
41
  ];
42
42
 
@@ -56,7 +56,7 @@ export const linkedUpdate = iso(`
56
56
  }
57
57
  }
58
58
  john_stuart_mill: node(id: 1) {
59
- link
59
+ __link
60
60
  asEconomist {
61
61
  name
62
62
  }
package/vitest.config.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import path from 'node:path';
1
2
  import babel from 'vite-plugin-babel';
2
3
  import commonjs from 'vite-plugin-commonjs';
3
4
  import { defineProject } from 'vitest/config';
@@ -8,7 +9,15 @@ export default defineProject({
8
9
  filter: /\.[jt]sx?$/,
9
10
  babelConfig: {
10
11
  presets: ['@babel/preset-typescript'],
11
- plugins: [require('../isograph-babel-plugin/BabelPluginIsograph')],
12
+ plugins: [
13
+ [
14
+ path.join(
15
+ __dirname,
16
+ '../isograph-babel-plugin/BabelPluginIsograph',
17
+ ),
18
+ { searchFrom: __dirname },
19
+ ],
20
+ ],
12
21
  },
13
22
  }),
14
23
  commonjs({
@@ -1,2 +0,0 @@
1
- import type { Link } from '@isograph/react';
2
- export type Economist__link__output_type = Link<"Economist">;
@@ -1,3 +0,0 @@
1
- import type { Link } from '@isograph/react';
2
- export type Node__link__output_type =
3
- | Link<"Economist">;