@isograph/react 0.0.0-main-c13fba57 → 0.0.0-main-4941e5bf
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/dist/core/cache.js +1 -1
- package/dist/core/read.d.ts.map +1 -1
- package/dist/core/read.js +16 -5
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
- package/dist/loadable-hooks/useConnectionSpecPagination.js +12 -2
- package/dist/loadable-hooks/useSkipLimitPagination.d.ts.map +1 -1
- package/dist/loadable-hooks/useSkipLimitPagination.js +12 -2
- package/package.json +4 -4
- package/src/core/cache.ts +1 -1
- package/src/core/read.ts +20 -7
- package/src/loadable-hooks/useConnectionSpecPagination.ts +20 -6
- package/src/loadable-hooks/useSkipLimitPagination.ts +20 -4
package/dist/core/cache.js
CHANGED
|
@@ -311,7 +311,7 @@ function normalizeLinkedField(environment, astNode, networkResponseParentRecord,
|
|
|
311
311
|
const dataIds = [];
|
|
312
312
|
for (let i = 0; i < networkResponseData.length; i++) {
|
|
313
313
|
const networkResponseObject = networkResponseData[i];
|
|
314
|
-
if (networkResponseObject
|
|
314
|
+
if (networkResponseObject == null) {
|
|
315
315
|
dataIds.push(null);
|
|
316
316
|
continue;
|
|
317
317
|
}
|
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":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,iBAAiB,EAEjB,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,mBAAmB,EACnB,KAAK,IAAI,EACV,MAAM,uBAAuB,CAAC;AAe/B,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;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAE3D,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAC7D,qBAAqB,EAAE,2BAA2B,GACjD,sBAAsB,CAAC,cAAc,CAAC,CAkDxC;AAED,MAAM,MAAM,cAAc,CAAC,cAAc,IACrC;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;CAC7C,GACD;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;
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/core/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAMjB,OAAO,EACL,iBAAiB,EAEjB,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,mBAAmB,EACnB,KAAK,IAAI,EACV,MAAM,uBAAuB,CAAC;AAe/B,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;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAE3D,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAC7D,qBAAqB,EAAE,2BAA2B,GACjD,sBAAsB,CAAC,cAAc,CAAC,CAkDxC;AAED,MAAM,MAAM,cAAc,CAAC,cAAc,IACrC;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,cAAc,CAAC;CAC7C,GACD;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;AAukBN,MAAM,MAAM,2BAA2B,GAAG;IACxC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,wBAAgB,oCAAoC,CAClD,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAAG,IAAI,GAClE,2BAA2B,CAK7B"}
|
package/dist/core/read.js
CHANGED
|
@@ -215,10 +215,10 @@ function readData(environment, ast, root, variables, nestedRefetchQueries, netwo
|
|
|
215
215
|
}
|
|
216
216
|
else {
|
|
217
217
|
const refetchQueryIndex = field.refetchQuery;
|
|
218
|
-
if (refetchQueryIndex == null) {
|
|
219
|
-
throw new Error('refetchQuery is null in RefetchField');
|
|
220
|
-
}
|
|
221
218
|
const refetchQuery = nestedRefetchQueries[refetchQueryIndex];
|
|
219
|
+
if (refetchQuery == null) {
|
|
220
|
+
throw new Error('refetchQuery is null in RefetchField. This is indicative of a bug in Isograph.');
|
|
221
|
+
}
|
|
222
222
|
const refetchQueryArtifact = refetchQuery.artifact;
|
|
223
223
|
const allowedVariables = refetchQuery.allowedVariables;
|
|
224
224
|
// Second, we allow the user to call the resolver, which will ultimately
|
|
@@ -236,7 +236,13 @@ function readData(environment, ast, root, variables, nestedRefetchQueries, netwo
|
|
|
236
236
|
}
|
|
237
237
|
case 'Resolver': {
|
|
238
238
|
const usedRefetchQueries = field.usedRefetchQueries;
|
|
239
|
-
const resolverRefetchQueries = usedRefetchQueries.map((index) =>
|
|
239
|
+
const resolverRefetchQueries = usedRefetchQueries.map((index) => {
|
|
240
|
+
const resolverRefetchQuery = nestedRefetchQueries[index];
|
|
241
|
+
if (resolverRefetchQuery == null) {
|
|
242
|
+
throw new Error('resolverRefetchQuery is null in Resolver. This is indicative of a bug in Isograph.');
|
|
243
|
+
}
|
|
244
|
+
return resolverRefetchQuery;
|
|
245
|
+
});
|
|
240
246
|
switch (field.readerArtifact.kind) {
|
|
241
247
|
case 'EagerReaderArtifact': {
|
|
242
248
|
const data = readData(environment, field.readerArtifact.readerAst, root, generateChildVariableMap(variables, field.arguments), resolverRefetchQueries, networkRequest, networkRequestOptions, mutableEncounteredRecords);
|
|
@@ -406,7 +412,12 @@ function generateChildVariableMap(variables, fieldArguments) {
|
|
|
406
412
|
const childVars = {};
|
|
407
413
|
for (const [name, value] of fieldArguments) {
|
|
408
414
|
if (value.kind === 'Variable') {
|
|
409
|
-
|
|
415
|
+
const variable = variables[value.name];
|
|
416
|
+
// Variable could be null if it was not provided but has a default case,
|
|
417
|
+
// so we allow the loop to continue rather than throwing an error.
|
|
418
|
+
if (variable != null) {
|
|
419
|
+
childVars[name] = variable;
|
|
420
|
+
}
|
|
410
421
|
}
|
|
411
422
|
else {
|
|
412
423
|
childVars[name] = value.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConnectionSpecPagination.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useConnectionSpecPagination.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAM9D,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAI/D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,KAAK,wBAAwB,CAC3B,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,IAEH;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe,EAAE,iBAAiB,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;CAC/B,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IAChE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAwBN,KAAK,QAAQ,GAAG;IACd,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,KAAK,UAAU,CAAC,CAAC,IAAI;IACnB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAOF,KAAK,+BAA+B,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,cAAc,SAAS;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,EACD,KAAK,EAEL,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,UAAU,CAAC,KAAK,CAAC,EACjB,+BAA+B,CAChC,EACD,YAAY,CAAC,EAAE,QAAQ,GACtB,wBAAwB,CAAC,cAAc,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"useConnectionSpecPagination.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useConnectionSpecPagination.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAM9D,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAI/D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,KAAK,wBAAwB,CAC3B,cAAc,SAAS;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,IAEH;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe,EAAE,iBAAiB,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;CAC/B,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IAChE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAwBN,KAAK,QAAQ,GAAG;IACd,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,KAAK,UAAU,CAAC,CAAC,IAAI;IACnB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAOF,KAAK,+BAA+B,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,cAAc,SAAS;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,EACD,KAAK,EAEL,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,UAAU,CAAC,KAAK,CAAC,EACjB,+BAA+B,CAChC,EACD,YAAY,CAAC,EAAE,QAAQ,GACtB,wBAAwB,CAAC,cAAc,EAAE,KAAK,CAAC,CA4OjD"}
|
|
@@ -32,9 +32,15 @@ function useConnectionSpecPagination(loadableField, initialState) {
|
|
|
32
32
|
function readCompletedFragmentReferences(completedReferences) {
|
|
33
33
|
var _a, _b;
|
|
34
34
|
const results = completedReferences.map((fragmentReference, i) => {
|
|
35
|
+
var _a;
|
|
35
36
|
const readerWithRefetchQueries = (0, PromiseWrapper_1.readPromise)(fragmentReference.readerWithRefetchQueries);
|
|
37
|
+
// invariant: readOutDataAndRecords.length === completedReferences.length
|
|
38
|
+
const data = (_a = readOutDataAndRecords[i]) === null || _a === void 0 ? void 0 : _a.item;
|
|
39
|
+
if (data == null) {
|
|
40
|
+
throw new Error('Parameter data is unexpectedly null. This is indicative of a bug in Isograph.');
|
|
41
|
+
}
|
|
36
42
|
const firstParameter = {
|
|
37
|
-
data
|
|
43
|
+
data,
|
|
38
44
|
parameters: fragmentReference.variables,
|
|
39
45
|
};
|
|
40
46
|
if (readerWithRefetchQueries.readerArtifact.kind !== 'EagerReaderArtifact') {
|
|
@@ -55,10 +61,14 @@ function useConnectionSpecPagination(loadableField, initialState) {
|
|
|
55
61
|
return completedReferences.map((fragmentReference, i) => {
|
|
56
62
|
(0, useResult_1.maybeUnwrapNetworkRequest)(fragmentReference.networkRequest, networkRequestOptions);
|
|
57
63
|
const readerWithRefetchQueries = (0, PromiseWrapper_1.readPromise)(fragmentReference.readerWithRefetchQueries);
|
|
64
|
+
const records = readOutDataAndRecords[i];
|
|
65
|
+
if (records == null) {
|
|
66
|
+
throw new Error('subscribeCompletedFragmentReferences records is unexpectedly null');
|
|
67
|
+
}
|
|
58
68
|
return {
|
|
59
69
|
fragmentReference,
|
|
60
70
|
readerAst: readerWithRefetchQueries.readerArtifact.readerAst,
|
|
61
|
-
records
|
|
71
|
+
records,
|
|
62
72
|
callback(_data) {
|
|
63
73
|
rerender({});
|
|
64
74
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSkipLimitPagination.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useSkipLimitPagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAgB9D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,KAAK,uBAAuB,CAC1B,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,IAEH;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IACzE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;CACxC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CACzC,cAAc,EACd,aAAa,CAAC,KAAK,CAAC,CACrB,CAAC;CACH,CAAC;AA6BN,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,KAAK,EACL,cAAc,SAAS;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,EAED,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,aAAa,CAAC,KAAK,CAAC,EACpB,0BAA0B,CAC3B,EACD,YAAY,CAAC,EAAE;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CAC7B,GACA,uBAAuB,CAAC,cAAc,EAAE,KAAK,CAAC,CA+
|
|
1
|
+
{"version":3,"file":"useSkipLimitPagination.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useSkipLimitPagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAgB9D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,KAAK,uBAAuB,CAC1B,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,IAEH;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IACzE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;CACxC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CACzC,cAAc,EACd,aAAa,CAAC,KAAK,CAAC,CACrB,CAAC;CACH,CAAC;AA6BN,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,KAAK,EACL,cAAc,SAAS;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,EAED,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,aAAa,CAAC,KAAK,CAAC,EACpB,0BAA0B,CAC3B,EACD,YAAY,CAAC,EAAE;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CAC7B,GACA,uBAAuB,CAAC,cAAc,EAAE,KAAK,CAAC,CA+NhD"}
|
|
@@ -31,9 +31,15 @@ function useSkipLimitPagination(loadableField, initialState) {
|
|
|
31
31
|
// as parameters (or recreate networkRequestOptions)
|
|
32
32
|
function readCompletedFragmentReferences(completedReferences) {
|
|
33
33
|
const results = completedReferences.map((fragmentReference, i) => {
|
|
34
|
+
var _a;
|
|
34
35
|
const readerWithRefetchQueries = (0, PromiseWrapper_1.readPromise)(fragmentReference.readerWithRefetchQueries);
|
|
36
|
+
// invariant: readOutDataAndRecords.length === completedReferences.length
|
|
37
|
+
const data = (_a = readOutDataAndRecords[i]) === null || _a === void 0 ? void 0 : _a.item;
|
|
38
|
+
if (data == null) {
|
|
39
|
+
throw new Error('Parameter data is unexpectedly null. This is indicative of a bug in Isograph.');
|
|
40
|
+
}
|
|
35
41
|
const firstParameter = {
|
|
36
|
-
data
|
|
42
|
+
data,
|
|
37
43
|
parameters: fragmentReference.variables,
|
|
38
44
|
};
|
|
39
45
|
if (readerWithRefetchQueries.readerArtifact.kind !== 'EagerReaderArtifact') {
|
|
@@ -48,10 +54,14 @@ function useSkipLimitPagination(loadableField, initialState) {
|
|
|
48
54
|
return completedReferences.map((fragmentReference, i) => {
|
|
49
55
|
(0, useResult_1.maybeUnwrapNetworkRequest)(fragmentReference.networkRequest, networkRequestOptions);
|
|
50
56
|
const readerWithRefetchQueries = (0, PromiseWrapper_1.readPromise)(fragmentReference.readerWithRefetchQueries);
|
|
57
|
+
const records = readOutDataAndRecords[i];
|
|
58
|
+
if (records == null) {
|
|
59
|
+
throw new Error('subscribeCompletedFragmentReferences records is unexpectedly null');
|
|
60
|
+
}
|
|
51
61
|
return {
|
|
52
62
|
fragmentReference,
|
|
53
63
|
readerAst: readerWithRefetchQueries.readerArtifact.readerAst,
|
|
54
|
-
records
|
|
64
|
+
records,
|
|
55
65
|
callback(_data) {
|
|
56
66
|
rerender({});
|
|
57
67
|
},
|
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-4941e5bf",
|
|
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-watch": "../../target/debug/isograph_cli --config ./isograph.config.json --watch"
|
|
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-4941e5bf",
|
|
23
|
+
"@isograph/react-disposable-state": "0.0.0-main-4941e5bf",
|
|
24
|
+
"@isograph/reference-counted-pointer": "0.0.0-main-4941e5bf"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"react": "18.3.1"
|
package/src/core/cache.ts
CHANGED
|
@@ -516,7 +516,7 @@ function normalizeLinkedField(
|
|
|
516
516
|
const dataIds: (Link | null)[] = [];
|
|
517
517
|
for (let i = 0; i < networkResponseData.length; i++) {
|
|
518
518
|
const networkResponseObject = networkResponseData[i];
|
|
519
|
-
if (networkResponseObject
|
|
519
|
+
if (networkResponseObject == null) {
|
|
520
520
|
dataIds.push(null);
|
|
521
521
|
continue;
|
|
522
522
|
}
|
package/src/core/read.ts
CHANGED
|
@@ -342,10 +342,12 @@ function readData<TReadFromStore>(
|
|
|
342
342
|
};
|
|
343
343
|
} else {
|
|
344
344
|
const refetchQueryIndex = field.refetchQuery;
|
|
345
|
-
if (refetchQueryIndex == null) {
|
|
346
|
-
throw new Error('refetchQuery is null in RefetchField');
|
|
347
|
-
}
|
|
348
345
|
const refetchQuery = nestedRefetchQueries[refetchQueryIndex];
|
|
346
|
+
if (refetchQuery == null) {
|
|
347
|
+
throw new Error(
|
|
348
|
+
'refetchQuery is null in RefetchField. This is indicative of a bug in Isograph.',
|
|
349
|
+
);
|
|
350
|
+
}
|
|
349
351
|
const refetchQueryArtifact = refetchQuery.artifact;
|
|
350
352
|
const allowedVariables = refetchQuery.allowedVariables;
|
|
351
353
|
|
|
@@ -371,9 +373,15 @@ function readData<TReadFromStore>(
|
|
|
371
373
|
}
|
|
372
374
|
case 'Resolver': {
|
|
373
375
|
const usedRefetchQueries = field.usedRefetchQueries;
|
|
374
|
-
const resolverRefetchQueries = usedRefetchQueries.map(
|
|
375
|
-
|
|
376
|
-
|
|
376
|
+
const resolverRefetchQueries = usedRefetchQueries.map((index) => {
|
|
377
|
+
const resolverRefetchQuery = nestedRefetchQueries[index];
|
|
378
|
+
if (resolverRefetchQuery == null) {
|
|
379
|
+
throw new Error(
|
|
380
|
+
'resolverRefetchQuery is null in Resolver. This is indicative of a bug in Isograph.',
|
|
381
|
+
);
|
|
382
|
+
}
|
|
383
|
+
return resolverRefetchQuery;
|
|
384
|
+
});
|
|
377
385
|
|
|
378
386
|
switch (field.readerArtifact.kind) {
|
|
379
387
|
case 'EagerReaderArtifact': {
|
|
@@ -636,7 +644,12 @@ function generateChildVariableMap(
|
|
|
636
644
|
const childVars: Writable<Variables> = {};
|
|
637
645
|
for (const [name, value] of fieldArguments) {
|
|
638
646
|
if (value.kind === 'Variable') {
|
|
639
|
-
|
|
647
|
+
const variable = variables[value.name];
|
|
648
|
+
// Variable could be null if it was not provided but has a default case,
|
|
649
|
+
// so we allow the loop to continue rather than throwing an error.
|
|
650
|
+
if (variable != null) {
|
|
651
|
+
childVars[name] = variable;
|
|
652
|
+
}
|
|
640
653
|
} else {
|
|
641
654
|
childVars[name] = value.value;
|
|
642
655
|
}
|
|
@@ -114,8 +114,16 @@ export function useConnectionSpecPagination<
|
|
|
114
114
|
fragmentReference.readerWithRefetchQueries,
|
|
115
115
|
);
|
|
116
116
|
|
|
117
|
+
// invariant: readOutDataAndRecords.length === completedReferences.length
|
|
118
|
+
const data = readOutDataAndRecords[i]?.item;
|
|
119
|
+
if (data == null) {
|
|
120
|
+
throw new Error(
|
|
121
|
+
'Parameter data is unexpectedly null. This is indicative of a bug in Isograph.',
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
|
|
117
125
|
const firstParameter = {
|
|
118
|
-
data
|
|
126
|
+
data,
|
|
119
127
|
parameters: fragmentReference.variables,
|
|
120
128
|
};
|
|
121
129
|
|
|
@@ -165,10 +173,17 @@ export function useConnectionSpecPagination<
|
|
|
165
173
|
fragmentReference.readerWithRefetchQueries,
|
|
166
174
|
);
|
|
167
175
|
|
|
176
|
+
const records = readOutDataAndRecords[i];
|
|
177
|
+
if (records == null) {
|
|
178
|
+
throw new Error(
|
|
179
|
+
'subscribeCompletedFragmentReferences records is unexpectedly null',
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
|
|
168
183
|
return {
|
|
169
184
|
fragmentReference,
|
|
170
185
|
readerAst: readerWithRefetchQueries.readerArtifact.readerAst,
|
|
171
|
-
records
|
|
186
|
+
records,
|
|
172
187
|
callback(_data) {
|
|
173
188
|
rerender({});
|
|
174
189
|
},
|
|
@@ -224,10 +239,9 @@ export function useConnectionSpecPagination<
|
|
|
224
239
|
|
|
225
240
|
const loadedReferences = state === UNASSIGNED_STATE ? [] : state;
|
|
226
241
|
|
|
227
|
-
const mostRecentItem:
|
|
228
|
-
TReadFromStore,
|
|
229
|
-
|
|
230
|
-
> | null = loadedReferences[loadedReferences.length - 1];
|
|
242
|
+
const mostRecentItem:
|
|
243
|
+
| LoadedFragmentReference<TReadFromStore, Connection<TItem>>
|
|
244
|
+
| undefined = loadedReferences[loadedReferences.length - 1];
|
|
231
245
|
const mostRecentFragmentReference =
|
|
232
246
|
mostRecentItem?.[0].getItemIfNotDisposed();
|
|
233
247
|
|
|
@@ -106,8 +106,16 @@ export function useSkipLimitPagination<
|
|
|
106
106
|
fragmentReference.readerWithRefetchQueries,
|
|
107
107
|
);
|
|
108
108
|
|
|
109
|
+
// invariant: readOutDataAndRecords.length === completedReferences.length
|
|
110
|
+
const data = readOutDataAndRecords[i]?.item;
|
|
111
|
+
if (data == null) {
|
|
112
|
+
throw new Error(
|
|
113
|
+
'Parameter data is unexpectedly null. This is indicative of a bug in Isograph.',
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
|
|
109
117
|
const firstParameter = {
|
|
110
|
-
data
|
|
118
|
+
data,
|
|
111
119
|
parameters: fragmentReference.variables,
|
|
112
120
|
};
|
|
113
121
|
|
|
@@ -150,10 +158,17 @@ export function useSkipLimitPagination<
|
|
|
150
158
|
fragmentReference.readerWithRefetchQueries,
|
|
151
159
|
);
|
|
152
160
|
|
|
161
|
+
const records = readOutDataAndRecords[i];
|
|
162
|
+
if (records == null) {
|
|
163
|
+
throw new Error(
|
|
164
|
+
'subscribeCompletedFragmentReferences records is unexpectedly null',
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
|
|
153
168
|
return {
|
|
154
169
|
fragmentReference,
|
|
155
170
|
readerAst: readerWithRefetchQueries.readerArtifact.readerAst,
|
|
156
|
-
records
|
|
171
|
+
records,
|
|
157
172
|
callback(_data) {
|
|
158
173
|
rerender({});
|
|
159
174
|
},
|
|
@@ -209,8 +224,9 @@ export function useSkipLimitPagination<
|
|
|
209
224
|
|
|
210
225
|
const loadedReferences = state === UNASSIGNED_STATE ? [] : state;
|
|
211
226
|
|
|
212
|
-
const mostRecentItem:
|
|
213
|
-
|
|
227
|
+
const mostRecentItem:
|
|
228
|
+
| LoadedFragmentReference<TReadFromStore, TItem>
|
|
229
|
+
| undefined = loadedReferences[loadedReferences.length - 1];
|
|
214
230
|
const mostRecentFragmentReference =
|
|
215
231
|
mostRecentItem?.[0].getItemIfNotDisposed();
|
|
216
232
|
|