@isograph/react 0.4.1 → 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.
- package/.turbo/turbo-compile-libs.log +2 -2
- package/dist/core/areEqualWithDeepComparison.d.ts.map +1 -1
- package/dist/core/areEqualWithDeepComparison.js +5 -0
- package/dist/core/check.js +6 -5
- package/dist/core/reader.d.ts +3 -1
- package/dist/core/reader.d.ts.map +1 -1
- package/dist/core/startUpdate.js +4 -4
- package/package.json +1 -1
- package/src/core/areEqualWithDeepComparison.ts +5 -0
- package/src/core/check.ts +13 -14
- package/src/core/reader.ts +1 -1
- package/src/core/startUpdate.ts +4 -4
- package/src/tests/__isograph/Economist/__link/output_type.ts +2 -0
- package/src/tests/__isograph/Node/__link/output_type.ts +3 -0
- package/src/tests/__isograph/Node/asEconomist/resolver_reader.ts +2 -2
- package/src/tests/__isograph/Query/linkedUpdate/param_type.ts +4 -4
- package/src/tests/__isograph/Query/linkedUpdate/resolver_reader.ts +5 -5
- package/src/tests/__isograph/Query/meName/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/meNameSuccessor/resolver_reader.ts +3 -3
- package/src/tests/__isograph/Query/nodeField/resolver_reader.ts +1 -1
- package/src/tests/__isograph/Query/startUpdate/resolver_reader.ts +2 -2
- package/src/tests/__isograph/Query/subquery/resolver_reader.ts +2 -2
- package/src/tests/startUpdate.test.ts +1 -1
- package/vitest.config.ts +10 -1
- package/src/tests/__isograph/Economist/link/output_type.ts +0 -2
- package/src/tests/__isograph/Node/link/output_type.ts +0 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
../.. | WARN Unsupported engine: wanted: {"node":"22.9.0"} (current: {"node":"v22.
|
|
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.
|
|
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,
|
|
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];
|
package/dist/core/check.js
CHANGED
|
@@ -101,16 +101,17 @@ function checkFromRecord(environment, normalizationAst, variables, record, recor
|
|
|
101
101
|
}
|
|
102
102
|
case 'InlineFragment': {
|
|
103
103
|
const existingRecordTypename = record['__typename'];
|
|
104
|
-
if (existingRecordTypename == null
|
|
105
|
-
existingRecordTypename !== normalizationAstNode.type) {
|
|
104
|
+
if (existingRecordTypename == null) {
|
|
106
105
|
return {
|
|
107
106
|
kind: 'MissingData',
|
|
108
107
|
record: recordLink,
|
|
109
108
|
};
|
|
110
109
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
if (existingRecordTypename === normalizationAstNode.type) {
|
|
111
|
+
const result = checkFromRecord(environment, normalizationAstNode.selections, variables, record, recordLink);
|
|
112
|
+
if (result.kind === 'MissingData') {
|
|
113
|
+
return result;
|
|
114
|
+
}
|
|
114
115
|
}
|
|
115
116
|
continue normalizationAstLoop;
|
|
116
117
|
}
|
package/dist/core/reader.d.ts
CHANGED
|
@@ -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: (
|
|
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,
|
|
1
|
+
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/core/reader.ts"],"names":[],"mappings":"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"}
|
package/dist/core/startUpdate.js
CHANGED
|
@@ -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
|
|
20
|
+
let updatableData = createUpdatableProxy(environment, fragmentReference, networkRequestOptions, mutableUpdatedIds);
|
|
21
21
|
try {
|
|
22
|
-
updater(
|
|
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.
|
|
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.
|
|
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
|
@@ -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];
|
package/src/core/check.ts
CHANGED
|
@@ -172,26 +172,25 @@ function checkFromRecord(
|
|
|
172
172
|
case 'InlineFragment': {
|
|
173
173
|
const existingRecordTypename = record['__typename'];
|
|
174
174
|
|
|
175
|
-
if (
|
|
176
|
-
existingRecordTypename == null ||
|
|
177
|
-
existingRecordTypename !== normalizationAstNode.type
|
|
178
|
-
) {
|
|
175
|
+
if (existingRecordTypename == null) {
|
|
179
176
|
return {
|
|
180
177
|
kind: 'MissingData',
|
|
181
178
|
record: recordLink,
|
|
182
179
|
};
|
|
183
180
|
}
|
|
184
181
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
182
|
+
if (existingRecordTypename === normalizationAstNode.type) {
|
|
183
|
+
const result = checkFromRecord(
|
|
184
|
+
environment,
|
|
185
|
+
normalizationAstNode.selections,
|
|
186
|
+
variables,
|
|
187
|
+
record,
|
|
188
|
+
recordLink,
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
if (result.kind === 'MissingData') {
|
|
192
|
+
return result;
|
|
193
|
+
}
|
|
195
194
|
}
|
|
196
195
|
|
|
197
196
|
continue normalizationAstLoop;
|
package/src/core/reader.ts
CHANGED
|
@@ -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 = {
|
package/src/core/startUpdate.ts
CHANGED
|
@@ -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
|
|
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(
|
|
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?.
|
|
248
|
+
assertLink(node?.__link),
|
|
249
249
|
);
|
|
250
250
|
} else {
|
|
251
|
-
storeRecord[storeRecordName] = assertLink(newValue?.
|
|
251
|
+
storeRecord[storeRecordName] = assertLink(newValue?.__link);
|
|
252
252
|
}
|
|
253
253
|
const updatedIds = insertEmptySetIfMissing(
|
|
254
254
|
mutableUpdatedIds,
|
|
@@ -10,7 +10,7 @@ const readerAst: ReaderAst<{ data: any, parameters: Record<PropertyKey, never> }
|
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
12
|
kind: "Link",
|
|
13
|
-
alias: "
|
|
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.
|
|
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
|
|
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
|
|
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: ({
|
|
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
|
|
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: "
|
|
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
|
|
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: [
|
|
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({
|