@isograph/react 0.0.0-main-4adb5045 → 0.0.0-main-82400fb8
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/FragmentReference.d.ts +1 -1
- package/dist/core/FragmentReference.d.ts.map +1 -1
- package/dist/core/FragmentReference.js +2 -2
- package/dist/core/IsographEnvironment.d.ts +7 -5
- package/dist/core/IsographEnvironment.d.ts.map +1 -1
- package/dist/core/IsographEnvironment.js +5 -4
- package/dist/core/cache.d.ts +5 -18
- package/dist/core/cache.d.ts.map +1 -1
- package/dist/core/cache.js +6 -218
- package/dist/core/componentCache.d.ts +2 -2
- package/dist/core/componentCache.d.ts.map +1 -1
- package/dist/core/componentCache.js +1 -26
- package/dist/core/entrypoint.d.ts +2 -2
- package/dist/core/entrypoint.d.ts.map +1 -1
- package/dist/core/garbageCollection.d.ts +2 -2
- package/dist/core/garbageCollection.d.ts.map +1 -1
- package/dist/core/getOrCreateCacheForArtifact.d.ts +8 -0
- package/dist/core/getOrCreateCacheForArtifact.d.ts.map +1 -0
- package/dist/core/getOrCreateCacheForArtifact.js +40 -0
- package/dist/core/logging.d.ts +8 -8
- package/dist/core/logging.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 +3 -2
- package/dist/core/optimisticProxy.d.ts.map +1 -1
- package/dist/core/optimisticProxy.js +2 -1
- package/dist/core/read.d.ts +3 -3
- package/dist/core/read.d.ts.map +1 -1
- package/dist/core/startUpdate.d.ts.map +1 -1
- package/dist/core/startUpdate.js +2 -1
- package/dist/core/subscribe.d.ts +8 -0
- package/dist/core/subscribe.d.ts.map +1 -0
- package/dist/core/subscribe.js +127 -0
- package/dist/core/util.d.ts +7 -0
- package/dist/core/util.d.ts.map +1 -1
- package/dist/core/util.js +26 -0
- package/dist/core/writeData.d.ts +7 -0
- package/dist/core/writeData.d.ts.map +1 -0
- package/dist/core/writeData.js +36 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -5
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts +3 -3
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
- package/dist/loadable-hooks/useConnectionSpecPagination.js +2 -2
- package/dist/loadable-hooks/useSkipLimitPagination.d.ts +3 -3
- package/dist/loadable-hooks/useSkipLimitPagination.d.ts.map +1 -1
- package/dist/loadable-hooks/useSkipLimitPagination.js +2 -2
- package/dist/react/createIsographEnvironment.d.ts +4 -0
- package/dist/react/createIsographEnvironment.d.ts.map +1 -0
- package/dist/react/createIsographEnvironment.js +8 -0
- package/dist/react/maybeUnwrapNetworkRequest.d.ts +4 -0
- package/dist/react/maybeUnwrapNetworkRequest.d.ts.map +1 -0
- package/dist/react/maybeUnwrapNetworkRequest.js +14 -0
- package/dist/react/useLazyReference.d.ts.map +1 -1
- package/dist/react/useLazyReference.js +2 -2
- package/dist/react/useReadAndSubscribe.d.ts +4 -2
- package/dist/react/useReadAndSubscribe.d.ts.map +1 -1
- package/dist/react/useReadAndSubscribe.js +31 -2
- package/dist/react/useRerenderOnChange.d.ts +2 -2
- package/dist/react/useRerenderOnChange.d.ts.map +1 -1
- package/dist/react/useRerenderOnChange.js +2 -2
- package/dist/react/useResult.d.ts +2 -4
- package/dist/react/useResult.d.ts.map +1 -1
- package/dist/react/useResult.js +3 -13
- package/package.json +4 -4
- package/src/core/FragmentReference.ts +2 -2
- package/src/core/IsographEnvironment.ts +26 -10
- package/src/core/cache.ts +14 -360
- package/src/core/componentCache.ts +8 -43
- package/src/core/entrypoint.ts +2 -2
- package/src/core/garbageCollection.ts +5 -5
- package/src/core/getOrCreateCacheForArtifact.ts +86 -0
- package/src/core/logging.ts +10 -10
- package/src/core/makeNetworkRequest.ts +8 -8
- package/src/core/optimisticProxy.ts +2 -5
- package/src/core/read.ts +13 -13
- package/src/core/startUpdate.ts +1 -1
- package/src/core/subscribe.ts +195 -0
- package/src/core/util.ts +26 -0
- package/src/core/writeData.ts +79 -0
- package/src/index.ts +3 -4
- package/src/loadable-hooks/useConnectionSpecPagination.ts +5 -5
- package/src/loadable-hooks/useSkipLimitPagination.ts +5 -5
- package/src/react/createIsographEnvironment.ts +23 -0
- package/src/react/maybeUnwrapNetworkRequest.ts +17 -0
- package/src/react/useLazyReference.ts +2 -4
- package/src/react/useReadAndSubscribe.ts +53 -5
- package/src/react/useRerenderOnChange.ts +3 -3
- package/src/react/useResult.ts +6 -24
- package/src/tests/garbageCollection.test.ts +3 -6
- package/src/tests/meNameSuccessor.ts +1 -1
- package/src/tests/nodeQuery.ts +1 -1
- package/src/tests/normalizeData.test.ts +5 -3
- package/src/tests/optimisticProxy.test.ts +5 -3
- package/src/tests/startUpdate.test.ts +5 -7
- package/vitest.config.ts +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getOrCreateCacheForArtifact.d.ts","sourceRoot":"","sources":["../../src/core/getOrCreateCacheForArtifact.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,mBAAmB,EAGzB,MAAM,uBAAuB,CAAC;AAI/B,wBAAgB,2BAA2B,CACzC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EACnE,gBAAgB,SAAS,qBAAqB,EAE9C,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,kBAAkB,CAC5B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,CACjB,EACD,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,YAAY,CAAC,EAAE,YAAY,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,GAC/D,WAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,CA6CnE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOrCreateCacheForArtifact = getOrCreateCacheForArtifact;
|
|
4
|
+
const cache_1 = require("./cache");
|
|
5
|
+
const IsographEnvironment_1 = require("./IsographEnvironment");
|
|
6
|
+
const makeNetworkRequest_1 = require("./makeNetworkRequest");
|
|
7
|
+
const util_1 = require("./util");
|
|
8
|
+
function getOrCreateCacheForArtifact(environment, entrypoint, variables, fetchOptions) {
|
|
9
|
+
let cacheKey = '';
|
|
10
|
+
switch (entrypoint.networkRequestInfo.operation.kind) {
|
|
11
|
+
case 'Operation':
|
|
12
|
+
cacheKey =
|
|
13
|
+
entrypoint.networkRequestInfo.operation.text +
|
|
14
|
+
JSON.stringify((0, util_1.stableCopy)(variables));
|
|
15
|
+
break;
|
|
16
|
+
case 'PersistedOperation':
|
|
17
|
+
cacheKey =
|
|
18
|
+
entrypoint.networkRequestInfo.operation.operationId +
|
|
19
|
+
JSON.stringify((0, util_1.stableCopy)(variables));
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
const factory = () => {
|
|
23
|
+
const { fieldName, readerArtifactKind, readerWithRefetchQueries } = (0, IsographEnvironment_1.getOrLoadReaderWithRefetchQueries)(environment, entrypoint.readerWithRefetchQueries);
|
|
24
|
+
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.maybeMakeNetworkRequest)(environment, entrypoint, variables, readerWithRefetchQueries, fetchOptions !== null && fetchOptions !== void 0 ? fetchOptions : null);
|
|
25
|
+
const itemCleanupPair = [
|
|
26
|
+
{
|
|
27
|
+
kind: 'FragmentReference',
|
|
28
|
+
readerWithRefetchQueries,
|
|
29
|
+
fieldName,
|
|
30
|
+
readerArtifactKind,
|
|
31
|
+
root: { __link: IsographEnvironment_1.ROOT_ID, __typename: entrypoint.concreteType },
|
|
32
|
+
variables,
|
|
33
|
+
networkRequest: networkRequest,
|
|
34
|
+
},
|
|
35
|
+
disposeNetworkRequest,
|
|
36
|
+
];
|
|
37
|
+
return itemCleanupPair;
|
|
38
|
+
};
|
|
39
|
+
return (0, cache_1.getOrCreateItemInSuspenseCache)(environment, cacheKey, factory);
|
|
40
|
+
}
|
package/dist/core/logging.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { CleanupFn } from '@isograph/disposable-types';
|
|
2
|
-
import { NetworkResponseObject,
|
|
3
|
-
import { CheckResult } from './check';
|
|
4
|
-
import { IsographEntrypoint, RefetchQueryNormalizationArtifact,
|
|
5
|
-
import { FragmentReference, Variables } from './FragmentReference';
|
|
6
|
-
import { IsographEnvironment, StoreRecord,
|
|
7
|
-
import { ReadDataResult } from './read';
|
|
8
|
-
import { Arguments } from './util';
|
|
1
|
+
import type { CleanupFn } from '@isograph/disposable-types';
|
|
2
|
+
import type { NetworkResponseObject, EncounteredIds } from './cache';
|
|
3
|
+
import type { CheckResult } from './check';
|
|
4
|
+
import type { IsographEntrypoint, RefetchQueryNormalizationArtifact, NormalizationAstNodes } from './entrypoint';
|
|
5
|
+
import type { FragmentReference, Variables } from './FragmentReference';
|
|
6
|
+
import type { IsographEnvironment, StoreRecord, StoreLink } from './IsographEnvironment';
|
|
7
|
+
import type { ReadDataResult } from './read';
|
|
8
|
+
import type { Arguments } from './util';
|
|
9
9
|
import type { StoreLayer } from './optimisticProxy';
|
|
10
10
|
/**
|
|
11
11
|
* Note: these types are unstable. We will add and remove items from this enum
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/core/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/core/logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ItemCleanupPair } from '@isograph/disposable-types';
|
|
1
|
+
import type { ItemCleanupPair } from '@isograph/disposable-types';
|
|
2
2
|
import { type NetworkResponseObject } from './cache';
|
|
3
3
|
import { FetchOptions } from './check';
|
|
4
|
-
import { IsographEntrypoint,
|
|
5
|
-
import { ExtractParameters,
|
|
4
|
+
import type { IsographEntrypoint, NormalizationAst, NormalizationAstLoader, ReaderWithRefetchQueries, RefetchQueryNormalizationArtifact } from './entrypoint';
|
|
5
|
+
import type { ExtractParameters, UnknownTReadFromStore } from './FragmentReference';
|
|
6
6
|
import { IsographEnvironment } from './IsographEnvironment';
|
|
7
7
|
import { AnyError, PromiseWrapper } from './PromiseWrapper';
|
|
8
8
|
export declare function maybeMakeNetworkRequest<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader, TRawResponseType extends NetworkResponseObject>(environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact | IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst, TRawResponseType>, variables: ExtractParameters<TReadFromStore>, readerWithRefetchQueries: PromiseWrapper<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>> | null, fetchOptions: FetchOptions<TClientFieldValue, TRawResponseType> | null): ItemCleanupPair<PromiseWrapper<void, AnyError>>;
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"makeNetworkRequest.d.ts","sourceRoot":"","sources":["../../src/core/makeNetworkRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAqC,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1E,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,iCAAiC,EAClC,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,iBAAiB,EAEjB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,mBAAmB,EAAsB,MAAM,uBAAuB,CAAC;AAShF,OAAO,EACL,QAAQ,EACR,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAO1B,wBAAgB,uBAAuB,CACrC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EACnE,gBAAgB,SAAS,qBAAqB,EAE9C,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAChB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,CACjB,EACL,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,wBAAwB,EAAE,cAAc,CACtC,wBAAwB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAC5D,GAAG,IAAI,EACR,YAAY,EAAE,YAAY,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,IAAI,GACrE,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAuDjD;AAED,wBAAgB,sCAAsC,CACpD,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,gBAAgB,SAAS,qBAAqB,EAE9C,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GAAG,sBAAsB,EACzC,gBAAgB,CACjB,EACL,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,GAC3C,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAmBjD;AAED,wBAAgB,kBAAkB,CAChC,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,EACjB,iBAAiB,SAAS,gBAAgB,GAAG,sBAAsB,EACnE,gBAAgB,SAAS,qBAAqB,EAE9C,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EACJ,iCAAiC,GACjC,kBAAkB,CAChB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,CACjB,EACL,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,wBAAwB,EAAE,cAAc,CACtC,wBAAwB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAC5D,GAAG,IAAI,EACR,YAAY,EAAE,YAAY,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,IAAI,GACrE,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAiKjD"}
|
|
@@ -13,6 +13,7 @@ const optimisticProxy_1 = require("./optimisticProxy");
|
|
|
13
13
|
const PromiseWrapper_1 = require("./PromiseWrapper");
|
|
14
14
|
const read_1 = require("./read");
|
|
15
15
|
const startUpdate_1 = require("./startUpdate");
|
|
16
|
+
const subscribe_1 = require("./subscribe");
|
|
16
17
|
let networkRequestId = 0;
|
|
17
18
|
function maybeMakeNetworkRequest(environment, artifact, variables, readerWithRefetchQueries, fetchOptions) {
|
|
18
19
|
var _a;
|
|
@@ -113,7 +114,7 @@ function makeNetworkRequest(environment, artifact, variables, readerWithRefetchQ
|
|
|
113
114
|
store: environment.store,
|
|
114
115
|
encounteredIds: encounteredIds,
|
|
115
116
|
}));
|
|
116
|
-
(0,
|
|
117
|
+
(0, subscribe_1.callSubscriptions)(environment, encounteredIds);
|
|
117
118
|
status = {
|
|
118
119
|
kind: 'UndisposedComplete',
|
|
119
120
|
retainedQuery: status.retainedQuery,
|
|
@@ -257,7 +258,7 @@ function makeOptimisticUpdate(environment, artifact, variables, optimisticNetwor
|
|
|
257
258
|
store: environment.store,
|
|
258
259
|
encounteredIds: encounteredIds,
|
|
259
260
|
}));
|
|
260
|
-
(0,
|
|
261
|
+
(0, subscribe_1.callSubscriptions)(environment, encounteredIds);
|
|
261
262
|
return optimistic;
|
|
262
263
|
}
|
|
263
264
|
function revertOptimisticStoreLayerAndMaybeReplaceIfUndisposedIncomplete(environment, status, normalizeData) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimisticProxy.d.ts","sourceRoot":"","sources":["../../src/core/optimisticProxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"optimisticProxy.d.ts","sourceRoot":"","sources":["../../src/core/optimisticProxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ exports.addOptimisticUpdaterStoreLayer = addOptimisticUpdaterStoreLayer;
|
|
|
9
9
|
exports.addOptimisticNetworkResponseStoreLayer = addOptimisticNetworkResponseStoreLayer;
|
|
10
10
|
exports.revertOptimisticStoreLayerAndMaybeReplace = revertOptimisticStoreLayerAndMaybeReplace;
|
|
11
11
|
const cache_1 = require("./cache");
|
|
12
|
+
const subscribe_1 = require("./subscribe");
|
|
12
13
|
function getOrInsertRecord(dataLayer, link) {
|
|
13
14
|
var _a, _b;
|
|
14
15
|
var _c, _d;
|
|
@@ -364,7 +365,7 @@ function revertOptimisticStoreLayerAndMaybeReplace(environment, optimisticNode,
|
|
|
364
365
|
// the modified IDs, and re-execute subscriptions.
|
|
365
366
|
let encounteredIds = new Map();
|
|
366
367
|
compareData(oldMergedData, newMergedData, encounteredIds);
|
|
367
|
-
(0,
|
|
368
|
+
(0, subscribe_1.callSubscriptions)(environment, encounteredIds);
|
|
368
369
|
}
|
|
369
370
|
function compareData(oldData, newData, encounteredIds) {
|
|
370
371
|
var _a;
|
package/dist/core/read.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type EncounteredIds } from './cache';
|
|
2
|
-
import { RefetchQueryNormalizationArtifactWrapper } from './entrypoint';
|
|
3
|
-
import { ExtractData, FragmentReference,
|
|
2
|
+
import type { RefetchQueryNormalizationArtifactWrapper } from './entrypoint';
|
|
3
|
+
import type { ExtractData, FragmentReference, UnknownTReadFromStore, Variables } from './FragmentReference';
|
|
4
4
|
import { IsographEnvironment, type DataTypeValue, type StoreLink, type StoreRecord } from './IsographEnvironment';
|
|
5
5
|
import { PromiseWrapper } from './PromiseWrapper';
|
|
6
|
-
import {
|
|
6
|
+
import type { LoadablySelectedField, ReaderAst, ReaderClientPointer, ReaderImperativelyLoadedField, ReaderLinkedField, ReaderNonLoadableResolverField, ReaderScalarField } from './reader';
|
|
7
7
|
export type WithEncounteredRecords<T> = {
|
|
8
8
|
readonly encounteredRecords: EncounteredIds;
|
|
9
9
|
readonly item: ExtractData<T>;
|
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,
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/core/read.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startUpdate.d.ts","sourceRoot":"","sources":["../../src/core/startUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"startUpdate.d.ts","sourceRoot":"","sources":["../../src/core/startUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAML,KAAK,2BAA2B,EAEjC,MAAM,QAAQ,CAAC;AAIhB,wBAAgB,4BAA4B,CAC1C,cAAc,SAAS,qBAAqB,EAE5C,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAC7D,qBAAqB,EAAE,2BAA2B,GACjD,kBAAkB,CAAC,cAAc,CAAC,CAQpC;AAED,wBAAgB,iBAAiB,CAAC,cAAc,SAAS,qBAAqB,EAC5E,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAC7D,qBAAqB,EAAE,2BAA2B,GACjD,kBAAkB,CAAC,cAAc,CAAC,CAqCpC;AAED,wBAAgB,oBAAoB,CAClC,cAAc,SAAS,qBAAqB,EAE5C,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,EAC7D,qBAAqB,EAAE,2BAA2B,EAClD,iBAAiB,EAAE,cAAc,GAChC,oBAAoB,CAAC,cAAc,CAAC,CAmBtC"}
|
package/dist/core/startUpdate.js
CHANGED
|
@@ -10,6 +10,7 @@ const logging_1 = require("./logging");
|
|
|
10
10
|
const optimisticProxy_1 = require("./optimisticProxy");
|
|
11
11
|
const PromiseWrapper_1 = require("./PromiseWrapper");
|
|
12
12
|
const read_1 = require("./read");
|
|
13
|
+
const subscribe_1 = require("./subscribe");
|
|
13
14
|
function getOrCreateCachedStartUpdate(environment, fragmentReference, networkRequestOptions) {
|
|
14
15
|
var _a;
|
|
15
16
|
var _b, _c;
|
|
@@ -37,7 +38,7 @@ function createStartUpdate(environment, fragmentReference, networkRequestOptions
|
|
|
37
38
|
kind: 'StartUpdateComplete',
|
|
38
39
|
updatedIds: mutableUpdatedIds,
|
|
39
40
|
}));
|
|
40
|
-
(0,
|
|
41
|
+
(0, subscribe_1.callSubscriptions)(environment, mutableUpdatedIds);
|
|
41
42
|
};
|
|
42
43
|
}
|
|
43
44
|
function createUpdatableProxy(environment, storeLayer, fragmentReference, networkRequestOptions, mutableUpdatedIds) {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { EncounteredIds } from './cache';
|
|
2
|
+
import type { FragmentReference, UnknownTReadFromStore } from './FragmentReference';
|
|
3
|
+
import type { IsographEnvironment } from './IsographEnvironment';
|
|
4
|
+
import { type WithEncounteredRecords } from './read';
|
|
5
|
+
import type { ReaderAst } from './reader';
|
|
6
|
+
export declare function subscribe<TReadFromStore extends UnknownTReadFromStore>(environment: IsographEnvironment, encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>, fragmentReference: FragmentReference<TReadFromStore, any>, callback: (newEncounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>) => void, readerAst: ReaderAst<TReadFromStore>): () => void;
|
|
7
|
+
export declare function callSubscriptions(environment: IsographEnvironment, recordsEncounteredWhenNormalizing: EncounteredIds): void;
|
|
8
|
+
//# sourceMappingURL=subscribe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../src/core/subscribe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,sBAAsB,EAAwB,MAAM,QAAQ,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,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,CAiBZ;AAuBD,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,mBAAmB,EAChC,iCAAiC,EAAE,cAAc,QAkDlD"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.subscribe = subscribe;
|
|
4
|
+
exports.callSubscriptions = callSubscriptions;
|
|
5
|
+
const areEqualWithDeepComparison_1 = require("./areEqualWithDeepComparison");
|
|
6
|
+
const logging_1 = require("./logging");
|
|
7
|
+
const read_1 = require("./read");
|
|
8
|
+
function subscribe(environment, encounteredDataAndRecords, fragmentReference, callback, readerAst) {
|
|
9
|
+
const fragmentSubscription = {
|
|
10
|
+
kind: 'FragmentSubscription',
|
|
11
|
+
callback,
|
|
12
|
+
encounteredDataAndRecords,
|
|
13
|
+
fragmentReference,
|
|
14
|
+
readerAst,
|
|
15
|
+
};
|
|
16
|
+
// subscribe is called in an effect. (We should actually subscribe during the
|
|
17
|
+
// initial render.) Because it's called in an effect, we might have missed some
|
|
18
|
+
// changes since the initial render! So, at this point, we re-read and call the
|
|
19
|
+
// subscription (i.e. re-render) if the fragment data has changed.
|
|
20
|
+
callSubscriptionIfDataChanged(environment, fragmentSubscription);
|
|
21
|
+
environment.subscriptions.add(fragmentSubscription);
|
|
22
|
+
return () => environment.subscriptions.delete(fragmentSubscription);
|
|
23
|
+
}
|
|
24
|
+
// Calls to readButDoNotEvaluate can suspend (i.e. throw a promise).
|
|
25
|
+
// Maybe in the future, they will be able to throw errors.
|
|
26
|
+
//
|
|
27
|
+
// That's probably okay to ignore. We don't, however, want to prevent
|
|
28
|
+
// updating other subscriptions if one subscription had missing data.
|
|
29
|
+
function logAnyError(environment, context, f) {
|
|
30
|
+
try {
|
|
31
|
+
f();
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
(0, logging_1.logMessage)(environment, () => ({
|
|
35
|
+
kind: 'ErrorEncounteredInWithErrorHandling',
|
|
36
|
+
error: e,
|
|
37
|
+
context,
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function callSubscriptions(environment, recordsEncounteredWhenNormalizing) {
|
|
42
|
+
environment.subscriptions.forEach((subscription) => logAnyError(environment, { situation: 'calling subscriptions' }, () => {
|
|
43
|
+
var _a;
|
|
44
|
+
switch (subscription.kind) {
|
|
45
|
+
case 'FragmentSubscription': {
|
|
46
|
+
// TODO if there are multiple components subscribed to the same
|
|
47
|
+
// fragment, we will call readButNotEvaluate multiple times. We
|
|
48
|
+
// should fix that.
|
|
49
|
+
if (hasOverlappingIds(recordsEncounteredWhenNormalizing, subscription.encounteredDataAndRecords.encounteredRecords)) {
|
|
50
|
+
callSubscriptionIfDataChanged(environment, subscription);
|
|
51
|
+
}
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
case 'AnyRecords': {
|
|
55
|
+
logAnyError(environment, { situation: 'calling AnyRecords callback' }, () => subscription.callback());
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
case 'AnyChangesToRecord': {
|
|
59
|
+
if (((_a = recordsEncounteredWhenNormalizing
|
|
60
|
+
.get(subscription.recordLink.__typename)) === null || _a === void 0 ? void 0 : _a.has(subscription.recordLink.__link)) != null) {
|
|
61
|
+
logAnyError(environment, { situation: 'calling AnyChangesToRecord callback' }, () => subscription.callback());
|
|
62
|
+
}
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
default: {
|
|
66
|
+
// Ensure we have covered all variants
|
|
67
|
+
const _ = subscription;
|
|
68
|
+
_;
|
|
69
|
+
throw new Error('Unexpected case');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
function callSubscriptionIfDataChanged(environment, subscription) {
|
|
75
|
+
const newEncounteredDataAndRecords = (0, read_1.readButDoNotEvaluate)(environment, subscription.fragmentReference,
|
|
76
|
+
// Is this wrong?
|
|
77
|
+
// Reasons to think no:
|
|
78
|
+
// - we are only updating the read-out value, and the network
|
|
79
|
+
// options only affect whether we throw.
|
|
80
|
+
// - the component will re-render, and re-throw on its own, anyway.
|
|
81
|
+
//
|
|
82
|
+
// Reasons to think not:
|
|
83
|
+
// - it seems more efficient to suspend here and not update state,
|
|
84
|
+
// if we expect that the component will just throw anyway
|
|
85
|
+
// - consistency
|
|
86
|
+
// - it's also weird, this is called from makeNetworkRequest, where
|
|
87
|
+
// we don't currently pass network request options
|
|
88
|
+
{
|
|
89
|
+
suspendIfInFlight: false,
|
|
90
|
+
throwOnNetworkError: false,
|
|
91
|
+
});
|
|
92
|
+
const mergedItem = (0, areEqualWithDeepComparison_1.mergeObjectsUsingReaderAst)(subscription.readerAst, subscription.encounteredDataAndRecords.item, newEncounteredDataAndRecords.item);
|
|
93
|
+
(0, logging_1.logMessage)(environment, () => ({
|
|
94
|
+
kind: 'DeepEqualityCheck',
|
|
95
|
+
fragmentReference: subscription.fragmentReference,
|
|
96
|
+
old: subscription.encounteredDataAndRecords.item,
|
|
97
|
+
new: newEncounteredDataAndRecords.item,
|
|
98
|
+
deeplyEqual: mergedItem === subscription.encounteredDataAndRecords.item,
|
|
99
|
+
}));
|
|
100
|
+
if (mergedItem !== subscription.encounteredDataAndRecords.item) {
|
|
101
|
+
logAnyError(environment, { situation: 'calling FragmentSubscription callback' }, () => {
|
|
102
|
+
subscription.callback(newEncounteredDataAndRecords);
|
|
103
|
+
});
|
|
104
|
+
subscription.encounteredDataAndRecords = newEncounteredDataAndRecords;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function hasOverlappingIds(ids1, ids2) {
|
|
108
|
+
for (const [typeName, set1] of ids1.entries()) {
|
|
109
|
+
const set2 = ids2.get(typeName);
|
|
110
|
+
if (set2 === undefined) {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
if (isNotDisjointFrom(set1, set2)) {
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
// TODO use a polyfill library
|
|
120
|
+
function isNotDisjointFrom(set1, set2) {
|
|
121
|
+
for (const id of set1) {
|
|
122
|
+
if (set2.has(id)) {
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return false;
|
|
127
|
+
}
|
package/dist/core/util.d.ts
CHANGED
|
@@ -20,4 +20,11 @@ export type ArgumentValue = {
|
|
|
20
20
|
readonly kind: 'Object';
|
|
21
21
|
readonly value: Arguments;
|
|
22
22
|
};
|
|
23
|
+
export declare function isArray(value: unknown): value is readonly unknown[];
|
|
24
|
+
/**
|
|
25
|
+
* Creates a copy of the provided value, ensuring any nested objects have their
|
|
26
|
+
* keys sorted such that equivalent values would have identical JSON.stringify
|
|
27
|
+
* results.
|
|
28
|
+
*/
|
|
29
|
+
export declare function stableCopy<T>(value: T): T;
|
|
23
30
|
//# sourceMappingURL=util.d.ts.map
|
package/dist/core/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/core/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,GAAG,IACpE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;AAC1D,MAAM,MAAM,8BAA8B,CAAC,CAAC,IAC1C,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,GAChC,KAAK,CAAC,GAAG,CAAC,mBAAmB,GAC7B,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAExC,MAAM,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;AACnC,MAAM,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAClC,MAAM,MAAM,aAAa,GACrB;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;CACrB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/core/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,GAAG,IACpE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;AAC1D,MAAM,MAAM,8BAA8B,CAAC,CAAC,IAC1C,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,GAChC,KAAK,CAAC,GAAG,CAAC,mBAAmB,GAC7B,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAExC,MAAM,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;AACnC,MAAM,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAClC,MAAM,MAAM,aAAa,GACrB;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;CACrB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC3B,CAAC;AAEN,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,OAAO,EAAE,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAezC"}
|
package/dist/core/util.js
CHANGED
|
@@ -1,2 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isArray = isArray;
|
|
4
|
+
exports.stableCopy = stableCopy;
|
|
5
|
+
function isArray(value) {
|
|
6
|
+
return Array.isArray(value);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Creates a copy of the provided value, ensuring any nested objects have their
|
|
10
|
+
* keys sorted such that equivalent values would have identical JSON.stringify
|
|
11
|
+
* results.
|
|
12
|
+
*/
|
|
13
|
+
function stableCopy(value) {
|
|
14
|
+
if (value == null || typeof value !== 'object') {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
if (isArray(value)) {
|
|
18
|
+
// @ts-ignore
|
|
19
|
+
return value.map(stableCopy);
|
|
20
|
+
}
|
|
21
|
+
const keys = Object.keys(value).sort();
|
|
22
|
+
const stable = {};
|
|
23
|
+
for (let i = 0; i < keys.length; i++) {
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
stable[keys[i]] = stableCopy(value[keys[i]]);
|
|
26
|
+
}
|
|
27
|
+
return stable;
|
|
28
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ItemCleanupPair } from '@isograph/isograph-disposable-types/dist';
|
|
2
|
+
import { type NetworkResponseObject } from './cache';
|
|
3
|
+
import type { IsographEntrypoint, NormalizationAst } from './entrypoint';
|
|
4
|
+
import type { UnknownTReadFromStore, ExtractParameters, FragmentReference } from './FragmentReference';
|
|
5
|
+
import { type IsographEnvironment } from './IsographEnvironment';
|
|
6
|
+
export declare function writeData<TReadFromStore extends UnknownTReadFromStore, TRawResponseType extends NetworkResponseObject, TClientFieldValue>(environment: IsographEnvironment, entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue, NormalizationAst, TRawResponseType>, data: TRawResponseType, variables: ExtractParameters<TReadFromStore>): ItemCleanupPair<FragmentReference<TReadFromStore, TClientFieldValue>>;
|
|
7
|
+
//# sourceMappingURL=writeData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeData.d.ts","sourceRoot":"","sources":["../../src/core/writeData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAEhF,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,mBAAmB,EAGzB,MAAM,uBAAuB,CAAC;AAK/B,wBAAgB,SAAS,CACvB,cAAc,SAAS,qBAAqB,EAC5C,gBAAgB,SAAS,qBAAqB,EAC9C,iBAAiB,EAEjB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,kBAAkB,CAC5B,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,CACjB,EACD,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,GAC3C,eAAe,CAAC,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC,CA0CvE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writeData = writeData;
|
|
4
|
+
const subscribe_1 = require("./subscribe");
|
|
5
|
+
const cache_1 = require("./cache");
|
|
6
|
+
const IsographEnvironment_1 = require("./IsographEnvironment");
|
|
7
|
+
const logging_1 = require("./logging");
|
|
8
|
+
const makeNetworkRequest_1 = require("./makeNetworkRequest");
|
|
9
|
+
const optimisticProxy_1 = require("./optimisticProxy");
|
|
10
|
+
function writeData(environment, entrypoint, data, variables) {
|
|
11
|
+
const encounteredIds = new Map();
|
|
12
|
+
environment.store = (0, optimisticProxy_1.addNetworkResponseStoreLayer)(environment.store);
|
|
13
|
+
(0, cache_1.normalizeData)(environment, environment.store, entrypoint.networkRequestInfo.normalizationAst.selections, data, variables, { __link: IsographEnvironment_1.ROOT_ID, __typename: entrypoint.concreteType }, encounteredIds);
|
|
14
|
+
(0, logging_1.logMessage)(environment, () => ({
|
|
15
|
+
kind: 'AfterNormalization',
|
|
16
|
+
store: environment.store,
|
|
17
|
+
encounteredIds,
|
|
18
|
+
}));
|
|
19
|
+
(0, subscribe_1.callSubscriptions)(environment, encounteredIds);
|
|
20
|
+
const { fieldName, readerArtifactKind, readerWithRefetchQueries } = (0, IsographEnvironment_1.getOrLoadReaderWithRefetchQueries)(environment, entrypoint.readerWithRefetchQueries);
|
|
21
|
+
const [networkRequest, disposeNetworkRequest] = (0, makeNetworkRequest_1.retainQueryWithoutMakingNetworkRequest)(environment, entrypoint, variables);
|
|
22
|
+
return [
|
|
23
|
+
{
|
|
24
|
+
kind: 'FragmentReference',
|
|
25
|
+
readerWithRefetchQueries,
|
|
26
|
+
fieldName,
|
|
27
|
+
readerArtifactKind,
|
|
28
|
+
root: { __link: IsographEnvironment_1.ROOT_ID, __typename: entrypoint.concreteType },
|
|
29
|
+
variables,
|
|
30
|
+
networkRequest,
|
|
31
|
+
},
|
|
32
|
+
() => {
|
|
33
|
+
disposeNetworkRequest();
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export { retainQuery, unretainQuery, type RetainedQuery, garbageCollectEnvironment, type DidUnretainSomeQuery, } from './core/garbageCollection';
|
|
2
2
|
export { type PromiseWrapper, readPromise, getPromiseState, wrapResolvedValue, wrapPromise, type PromiseState, type Result, type AnyError, type NotSet, NOT_SET, } from './core/PromiseWrapper';
|
|
3
|
-
export {
|
|
3
|
+
export { normalizeData, type NetworkResponseObject, type NetworkResponseValue, type NetworkResponseScalarValue, type EncounteredIds, } from './core/cache';
|
|
4
|
+
export { callSubscriptions, subscribe } from './core/subscribe';
|
|
5
|
+
export { writeData } from './core/writeData';
|
|
4
6
|
export { makeNetworkRequest } from './core/makeNetworkRequest';
|
|
5
|
-
export { ROOT_ID, type DataId, type DataTypeValue, type IsographEnvironment, type IsographNetworkFunction, type BaseStoreLayerData as IsographStore, type MissingFieldHandler, type StoreLink, type Link, type StoreRecord, type CacheMap,
|
|
7
|
+
export { ROOT_ID, type DataId, type DataTypeValue, type IsographEnvironment, type IsographNetworkFunction, type BaseStoreLayerData as IsographStore, type MissingFieldHandler, type StoreLink, type Link, type StoreRecord, type CacheMap, createIsographStore, type FieldCache, type Subscriptions, type Subscription, type TypeName, type FragmentSubscription, type AnyChangesToRecordSubscription, type AnyRecordSubscription, type ComponentOrFieldName, type StringifiedArgs, } from './core/IsographEnvironment';
|
|
6
8
|
export { type EagerReaderArtifact, type ComponentReaderArtifact, type RefetchReaderArtifact, type ReaderAst, type ReaderAstNode, type ReaderLinkedField, type ReaderNonLoadableResolverField, type ReaderScalarField, type TopLevelReaderArtifact, type LoadableField, type StableId, type ResolverFirstParameter, type ReaderImperativelyLoadedField, type LoadablySelectedField as ReaderLoadableField, type ReaderLinkField, type StartUpdate, } from './core/reader';
|
|
7
9
|
export { type NormalizationAst, type NormalizationAstNode, type NormalizationAstNodes, type NormalizationAstLoader, type NormalizationLinkedField, type NormalizationScalarField, type IsographEntrypoint, type IsographOperation, type IsographPersistedOperation, type IsographPersistedOperationExtraInfo, assertIsEntrypoint, type RefetchQueryNormalizationArtifact, type RefetchQueryNormalizationArtifactWrapper, type ExtractProps, type ExtractReadFromStore, type ExtractClientFieldValue, type ExtractResolverResult, type FragmentReferenceOfEntrypoint, type NetworkRequestInfo, type NormalizationInlineFragment, type ReaderWithRefetchQueries, type IsographEntrypointLoader, } from './core/entrypoint';
|
|
8
10
|
export { readButDoNotEvaluate, type WithEncounteredRecords, type NetworkRequestReaderOptions, type ReadDataResult, } from './core/read';
|
|
@@ -21,6 +23,7 @@ export { useReadAndSubscribe, useSubscribeToMultiple, } from './react/useReadAnd
|
|
|
21
23
|
export { useLazyReference } from './react/useLazyReference';
|
|
22
24
|
export { useRerenderOnChange } from './react/useRerenderOnChange';
|
|
23
25
|
export { RenderAfterCommit__DO_NOT_USE } from './react/RenderAfterCommit__DO_NOT_USE';
|
|
26
|
+
export { createIsographEnvironment } from './react/createIsographEnvironment';
|
|
24
27
|
export { useClientSideDefer } from './loadable-hooks/useClientSideDefer';
|
|
25
28
|
export { useImperativeExposedMutationField, type UseImperativeLoadableFieldReturn as UseImperativeExposedMutationFieldReturn, } from './loadable-hooks/useImperativeExposedMutationField';
|
|
26
29
|
export { useSkipLimitPagination, type UseSkipLimitPaginationArgs, type UseSkipLimitReturnValue, } from './loadable-hooks/useSkipLimitPagination';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,aAAa,EACb,KAAK,aAAa,EAClB,yBAAyB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,KAAK,cAAc,EACnB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,OAAO,GACR,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useImperativeLoadableField = exports.useConnectionSpecPagination = exports.useSkipLimitPagination = exports.useImperativeExposedMutationField = exports.useClientSideDefer = exports.RenderAfterCommit__DO_NOT_USE = exports.useRerenderOnChange = exports.useLazyReference = exports.useSubscribeToMultiple = exports.useReadAndSubscribe = exports.useResult = exports.LoadableFieldRenderer = exports.LoadableFieldReader = exports.FragmentReader = exports.FragmentRenderer = exports.useImperativeReference = exports.useIsographEnvironment = exports.IsographEnvironmentProvider = exports.check = exports.registerLogger = exports.logMessage = exports.stableIdForFragmentReference = exports.readButDoNotEvaluate = exports.assertIsEntrypoint = exports.createIsographStore = exports.
|
|
3
|
+
exports.useImperativeLoadableField = exports.useConnectionSpecPagination = exports.useSkipLimitPagination = exports.useImperativeExposedMutationField = exports.useClientSideDefer = exports.createIsographEnvironment = exports.RenderAfterCommit__DO_NOT_USE = exports.useRerenderOnChange = exports.useLazyReference = exports.useSubscribeToMultiple = exports.useReadAndSubscribe = exports.useResult = exports.LoadableFieldRenderer = exports.LoadableFieldReader = exports.FragmentReader = exports.FragmentRenderer = exports.useImperativeReference = exports.useIsographEnvironment = exports.IsographEnvironmentProvider = exports.check = exports.registerLogger = exports.logMessage = exports.stableIdForFragmentReference = exports.readButDoNotEvaluate = exports.assertIsEntrypoint = exports.createIsographStore = exports.ROOT_ID = exports.makeNetworkRequest = exports.writeData = exports.subscribe = exports.callSubscriptions = exports.normalizeData = exports.NOT_SET = exports.wrapPromise = exports.wrapResolvedValue = exports.getPromiseState = exports.readPromise = exports.garbageCollectEnvironment = exports.unretainQuery = exports.retainQuery = void 0;
|
|
4
4
|
var garbageCollection_1 = require("./core/garbageCollection");
|
|
5
5
|
Object.defineProperty(exports, "retainQuery", { enumerable: true, get: function () { return garbageCollection_1.retainQuery; } });
|
|
6
6
|
Object.defineProperty(exports, "unretainQuery", { enumerable: true, get: function () { return garbageCollection_1.unretainQuery; } });
|
|
@@ -12,15 +12,16 @@ Object.defineProperty(exports, "wrapResolvedValue", { enumerable: true, get: fun
|
|
|
12
12
|
Object.defineProperty(exports, "wrapPromise", { enumerable: true, get: function () { return PromiseWrapper_1.wrapPromise; } });
|
|
13
13
|
Object.defineProperty(exports, "NOT_SET", { enumerable: true, get: function () { return PromiseWrapper_1.NOT_SET; } });
|
|
14
14
|
var cache_1 = require("./core/cache");
|
|
15
|
-
Object.defineProperty(exports, "callSubscriptions", { enumerable: true, get: function () { return cache_1.callSubscriptions; } });
|
|
16
|
-
Object.defineProperty(exports, "subscribe", { enumerable: true, get: function () { return cache_1.subscribe; } });
|
|
17
15
|
Object.defineProperty(exports, "normalizeData", { enumerable: true, get: function () { return cache_1.normalizeData; } });
|
|
18
|
-
|
|
16
|
+
var subscribe_1 = require("./core/subscribe");
|
|
17
|
+
Object.defineProperty(exports, "callSubscriptions", { enumerable: true, get: function () { return subscribe_1.callSubscriptions; } });
|
|
18
|
+
Object.defineProperty(exports, "subscribe", { enumerable: true, get: function () { return subscribe_1.subscribe; } });
|
|
19
|
+
var writeData_1 = require("./core/writeData");
|
|
20
|
+
Object.defineProperty(exports, "writeData", { enumerable: true, get: function () { return writeData_1.writeData; } });
|
|
19
21
|
var makeNetworkRequest_1 = require("./core/makeNetworkRequest");
|
|
20
22
|
Object.defineProperty(exports, "makeNetworkRequest", { enumerable: true, get: function () { return makeNetworkRequest_1.makeNetworkRequest; } });
|
|
21
23
|
var IsographEnvironment_1 = require("./core/IsographEnvironment");
|
|
22
24
|
Object.defineProperty(exports, "ROOT_ID", { enumerable: true, get: function () { return IsographEnvironment_1.ROOT_ID; } });
|
|
23
|
-
Object.defineProperty(exports, "createIsographEnvironment", { enumerable: true, get: function () { return IsographEnvironment_1.createIsographEnvironment; } });
|
|
24
25
|
Object.defineProperty(exports, "createIsographStore", { enumerable: true, get: function () { return IsographEnvironment_1.createIsographStore; } });
|
|
25
26
|
var entrypoint_1 = require("./core/entrypoint");
|
|
26
27
|
Object.defineProperty(exports, "assertIsEntrypoint", { enumerable: true, get: function () { return entrypoint_1.assertIsEntrypoint; } });
|
|
@@ -57,6 +58,8 @@ var useRerenderOnChange_1 = require("./react/useRerenderOnChange");
|
|
|
57
58
|
Object.defineProperty(exports, "useRerenderOnChange", { enumerable: true, get: function () { return useRerenderOnChange_1.useRerenderOnChange; } });
|
|
58
59
|
var RenderAfterCommit__DO_NOT_USE_1 = require("./react/RenderAfterCommit__DO_NOT_USE");
|
|
59
60
|
Object.defineProperty(exports, "RenderAfterCommit__DO_NOT_USE", { enumerable: true, get: function () { return RenderAfterCommit__DO_NOT_USE_1.RenderAfterCommit__DO_NOT_USE; } });
|
|
61
|
+
var createIsographEnvironment_1 = require("./react/createIsographEnvironment");
|
|
62
|
+
Object.defineProperty(exports, "createIsographEnvironment", { enumerable: true, get: function () { return createIsographEnvironment_1.createIsographEnvironment; } });
|
|
60
63
|
var useClientSideDefer_1 = require("./loadable-hooks/useClientSideDefer");
|
|
61
64
|
Object.defineProperty(exports, "useClientSideDefer", { enumerable: true, get: function () { return useClientSideDefer_1.useClientSideDefer; } });
|
|
62
65
|
var useImperativeExposedMutationField_1 = require("./loadable-hooks/useImperativeExposedMutationField");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { FetchOptions } from '../core/check';
|
|
2
|
-
import { FragmentReference,
|
|
3
|
-
import { LoadableField } from '../core/reader';
|
|
1
|
+
import type { FetchOptions } from '../core/check';
|
|
2
|
+
import type { FragmentReference, UnknownTReadFromStore } from '../core/FragmentReference';
|
|
3
|
+
import type { LoadableField } from '../core/reader';
|
|
4
4
|
export type UsePaginationReturnValue<TReadFromStore extends UnknownTReadFromStore, TItem> = {
|
|
5
5
|
kind: 'Pending';
|
|
6
6
|
pendingFragment: FragmentReference<TReadFromStore, Connection<TItem>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConnectionSpecPagination.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useConnectionSpecPagination.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"useConnectionSpecPagination.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useConnectionSpecPagination.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,gBAAgB,CAAC;AAM/D,MAAM,MAAM,wBAAwB,CAClC,cAAc,SAAS,qBAAqB,EAC5C,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,gBAAgB,CAAC;IACvB,SAAS,EAAE,CACT,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAClD,IAAI,CAAC;IACV,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;CAC/B,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;CAC/B,CAAC;AAwBN,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAOF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,cAAc,SAAS,qBAAqB,EAC5C,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,CAwQjD"}
|
|
@@ -9,8 +9,8 @@ const PromiseWrapper_1 = require("../core/PromiseWrapper");
|
|
|
9
9
|
const read_1 = require("../core/read");
|
|
10
10
|
const startUpdate_1 = require("../core/startUpdate");
|
|
11
11
|
const IsographEnvironmentProvider_1 = require("../react/IsographEnvironmentProvider");
|
|
12
|
+
const maybeUnwrapNetworkRequest_1 = require("../react/maybeUnwrapNetworkRequest");
|
|
12
13
|
const useReadAndSubscribe_1 = require("../react/useReadAndSubscribe");
|
|
13
|
-
const useResult_1 = require("../react/useResult");
|
|
14
14
|
function flatten(arr) {
|
|
15
15
|
let outArray = [];
|
|
16
16
|
for (const subarr of arr) {
|
|
@@ -61,7 +61,7 @@ function useConnectionSpecPagination(loadableField, initialState) {
|
|
|
61
61
|
}
|
|
62
62
|
function subscribeCompletedFragmentReferences(completedReferences) {
|
|
63
63
|
return completedReferences.map((fragmentReference, i) => {
|
|
64
|
-
(0,
|
|
64
|
+
(0, maybeUnwrapNetworkRequest_1.maybeUnwrapNetworkRequest)(fragmentReference.networkRequest, networkRequestOptions);
|
|
65
65
|
const readerWithRefetchQueries = (0, PromiseWrapper_1.readPromise)(fragmentReference.readerWithRefetchQueries);
|
|
66
66
|
const records = readOutDataAndRecords[i];
|
|
67
67
|
if (records == null) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { FetchOptions } from '../core/check';
|
|
2
|
-
import { FragmentReference,
|
|
3
|
-
import { LoadableField } from '../core/reader';
|
|
1
|
+
import type { FetchOptions } from '../core/check';
|
|
2
|
+
import type { FragmentReference, UnknownTReadFromStore } from '../core/FragmentReference';
|
|
3
|
+
import type { LoadableField } from '../core/reader';
|
|
4
4
|
export type UseSkipLimitReturnValue<TReadFromStore extends UnknownTReadFromStore, TItem> = {
|
|
5
5
|
readonly kind: 'Complete';
|
|
6
6
|
readonly fetchMore: (count: number, fetchOptions?: FetchOptions<ReadonlyArray<TItem>, never>) => void;
|