@isograph/react 0.3.0 → 0.4.0
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 +5 -0
- package/dist/core/FragmentReference.d.ts +17 -8
- package/dist/core/FragmentReference.d.ts.map +1 -1
- package/dist/core/FragmentReference.js +3 -12
- package/dist/core/IsographEnvironment.d.ts +30 -35
- package/dist/core/IsographEnvironment.d.ts.map +1 -1
- package/dist/core/IsographEnvironment.js +4 -0
- package/dist/core/PromiseWrapper.d.ts +6 -7
- package/dist/core/PromiseWrapper.d.ts.map +1 -1
- package/dist/core/PromiseWrapper.js +6 -12
- package/dist/core/areEqualWithDeepComparison.d.ts +1 -3
- package/dist/core/areEqualWithDeepComparison.d.ts.map +1 -1
- package/dist/core/areEqualWithDeepComparison.js +16 -2
- package/dist/core/brand.d.ts +2 -0
- package/dist/core/brand.d.ts.map +1 -0
- package/dist/core/brand.js +2 -0
- package/dist/core/cache.d.ts +16 -24
- package/dist/core/cache.d.ts.map +1 -1
- package/dist/core/cache.js +105 -72
- package/dist/core/check.d.ts +11 -7
- package/dist/core/check.d.ts.map +1 -1
- package/dist/core/check.js +2 -2
- package/dist/core/componentCache.d.ts +1 -1
- package/dist/core/componentCache.d.ts.map +1 -1
- package/dist/core/componentCache.js +27 -31
- package/dist/core/entrypoint.d.ts +43 -28
- package/dist/core/entrypoint.d.ts.map +1 -1
- package/dist/core/garbageCollection.d.ts +5 -6
- package/dist/core/garbageCollection.d.ts.map +1 -1
- package/dist/core/garbageCollection.js +1 -1
- package/dist/core/logging.d.ts +23 -15
- package/dist/core/logging.d.ts.map +1 -1
- package/dist/core/logging.js +8 -5
- package/dist/core/makeNetworkRequest.d.ts +5 -5
- package/dist/core/makeNetworkRequest.d.ts.map +1 -1
- package/dist/core/makeNetworkRequest.js +113 -28
- package/dist/core/read.d.ts +16 -11
- package/dist/core/read.d.ts.map +1 -1
- package/dist/core/read.js +468 -305
- package/dist/core/reader.d.ts +33 -37
- package/dist/core/reader.d.ts.map +1 -1
- package/dist/core/startUpdate.d.ts +8 -0
- package/dist/core/startUpdate.d.ts.map +1 -0
- package/dist/core/startUpdate.js +163 -0
- package/dist/core/util.d.ts +3 -0
- package/dist/core/util.d.ts.map +1 -1
- package/dist/index.d.ts +18 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/loadable-hooks/useClientSideDefer.d.ts +4 -10
- package/dist/loadable-hooks/useClientSideDefer.d.ts.map +1 -1
- package/dist/loadable-hooks/useClientSideDefer.js +2 -2
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts +8 -15
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -1
- package/dist/loadable-hooks/useConnectionSpecPagination.js +6 -4
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts +1 -2
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts.map +1 -1
- package/dist/loadable-hooks/useImperativeLoadableField.d.ts +4 -6
- package/dist/loadable-hooks/useImperativeLoadableField.d.ts.map +1 -1
- package/dist/loadable-hooks/useImperativeLoadableField.js +1 -1
- package/dist/loadable-hooks/useSkipLimitPagination.d.ts +6 -13
- package/dist/loadable-hooks/useSkipLimitPagination.d.ts.map +1 -1
- package/dist/loadable-hooks/useSkipLimitPagination.js +11 -9
- package/dist/react/FragmentReader.d.ts +7 -14
- package/dist/react/FragmentReader.d.ts.map +1 -1
- package/dist/react/FragmentReader.js +3 -30
- package/dist/react/FragmentRenderer.d.ts +15 -0
- package/dist/react/FragmentRenderer.d.ts.map +1 -0
- package/dist/react/FragmentRenderer.js +35 -0
- package/dist/react/IsographEnvironmentProvider.d.ts.map +1 -1
- package/dist/react/LoadableFieldReader.d.ts +12 -0
- package/dist/react/LoadableFieldReader.d.ts.map +1 -0
- package/dist/react/LoadableFieldReader.js +10 -0
- package/dist/react/LoadableFieldRenderer.d.ts +13 -0
- package/dist/react/LoadableFieldRenderer.d.ts.map +1 -0
- package/dist/react/LoadableFieldRenderer.js +37 -0
- package/dist/react/useImperativeReference.d.ts +7 -10
- package/dist/react/useImperativeReference.d.ts.map +1 -1
- package/dist/react/useImperativeReference.js +8 -9
- package/dist/react/useLazyReference.d.ts +4 -7
- package/dist/react/useLazyReference.d.ts.map +1 -1
- package/dist/react/useLazyReference.js +26 -5
- package/dist/react/useReadAndSubscribe.d.ts +3 -9
- package/dist/react/useReadAndSubscribe.d.ts.map +1 -1
- package/dist/react/useReadAndSubscribe.js +7 -3
- package/dist/react/useRerenderOnChange.d.ts +1 -1
- package/dist/react/useRerenderOnChange.d.ts.map +1 -1
- package/dist/react/useResult.d.ts +3 -6
- package/dist/react/useResult.d.ts.map +1 -1
- package/dist/react/useResult.js +10 -8
- package/isograph.config.json +1 -0
- package/package.json +6 -6
- package/src/core/FragmentReference.ts +40 -16
- package/src/core/IsographEnvironment.ts +57 -39
- package/src/core/PromiseWrapper.ts +15 -18
- package/src/core/areEqualWithDeepComparison.ts +22 -2
- package/src/core/brand.ts +18 -0
- package/src/core/cache.ts +153 -113
- package/src/core/check.ts +17 -12
- package/src/core/componentCache.ts +47 -50
- package/src/core/entrypoint.ts +66 -21
- package/src/core/garbageCollection.ts +9 -9
- package/src/core/logging.ts +39 -25
- package/src/core/makeNetworkRequest.ts +212 -34
- package/src/core/read.ts +728 -440
- package/src/core/reader.ts +46 -29
- package/src/core/startUpdate.ts +334 -0
- package/src/core/util.ts +4 -0
- package/src/index.ts +89 -8
- package/src/loadable-hooks/useClientSideDefer.ts +11 -10
- package/src/loadable-hooks/useConnectionSpecPagination.ts +27 -13
- package/src/loadable-hooks/useImperativeExposedMutationField.ts +1 -1
- package/src/loadable-hooks/useImperativeLoadableField.ts +10 -12
- package/src/loadable-hooks/useSkipLimitPagination.ts +38 -19
- package/src/react/FragmentReader.tsx +23 -39
- package/src/react/FragmentRenderer.tsx +46 -0
- package/src/react/IsographEnvironmentProvider.tsx +1 -1
- package/src/react/LoadableFieldReader.tsx +40 -0
- package/src/react/LoadableFieldRenderer.tsx +41 -0
- package/src/react/useImperativeReference.ts +49 -27
- package/src/react/useLazyReference.ts +62 -14
- package/src/react/useReadAndSubscribe.ts +17 -9
- package/src/react/useRerenderOnChange.ts +2 -2
- package/src/react/useResult.ts +22 -8
- package/src/tests/__isograph/Economist/link/output_type.ts +2 -0
- package/src/tests/__isograph/Node/asEconomist/resolver_reader.ts +28 -0
- package/src/tests/__isograph/Node/link/output_type.ts +3 -0
- package/src/tests/__isograph/Query/linkedUpdate/entrypoint.ts +31 -0
- package/src/tests/__isograph/Query/linkedUpdate/normalization_ast.ts +95 -0
- package/src/tests/__isograph/Query/linkedUpdate/output_type.ts +3 -0
- package/src/tests/__isograph/Query/linkedUpdate/param_type.ts +51 -0
- package/src/tests/__isograph/Query/linkedUpdate/query_text.ts +20 -0
- package/src/tests/__isograph/Query/linkedUpdate/resolver_reader.ts +93 -0
- package/src/tests/__isograph/Query/meName/entrypoint.ts +8 -29
- package/src/tests/__isograph/Query/meName/normalization_ast.ts +25 -0
- package/src/tests/__isograph/Query/meName/query_text.ts +6 -0
- package/src/tests/__isograph/Query/meName/resolver_reader.ts +5 -0
- package/src/tests/__isograph/Query/meNameSuccessor/entrypoint.ts +8 -67
- package/src/tests/__isograph/Query/meNameSuccessor/normalization_ast.ts +56 -0
- package/src/tests/__isograph/Query/meNameSuccessor/query_text.ts +13 -0
- package/src/tests/__isograph/Query/meNameSuccessor/resolver_reader.ts +10 -0
- package/src/tests/__isograph/Query/nodeField/entrypoint.ts +8 -34
- package/src/tests/__isograph/Query/nodeField/normalization_ast.ts +30 -0
- package/src/tests/__isograph/Query/nodeField/query_text.ts +6 -0
- package/src/tests/__isograph/Query/nodeField/resolver_reader.ts +5 -0
- package/src/tests/__isograph/Query/startUpdate/entrypoint.ts +31 -0
- package/src/tests/__isograph/Query/startUpdate/normalization_ast.ts +51 -0
- package/src/tests/__isograph/Query/startUpdate/output_type.ts +3 -0
- package/src/tests/__isograph/Query/startUpdate/param_type.ts +26 -0
- package/src/tests/__isograph/Query/startUpdate/parameters_type.ts +3 -0
- package/src/tests/__isograph/Query/startUpdate/query_text.ts +11 -0
- package/src/tests/__isograph/Query/startUpdate/resolver_reader.ts +55 -0
- package/src/tests/__isograph/Query/subquery/entrypoint.ts +8 -44
- package/src/tests/__isograph/Query/subquery/normalization_ast.ts +38 -0
- package/src/tests/__isograph/Query/subquery/query_text.ts +8 -0
- package/src/tests/__isograph/Query/subquery/resolver_reader.ts +7 -0
- package/src/tests/__isograph/iso.ts +24 -3
- package/src/tests/__isograph/tsconfig.json +8 -0
- package/src/tests/garbageCollection.test.ts +10 -8
- package/src/tests/meNameSuccessor.ts +1 -1
- package/src/tests/nodeQuery.ts +2 -1
- package/src/tests/normalizeData.test.ts +1 -2
- package/src/tests/startUpdate.test.ts +205 -0
- package/tsconfig.pkg.json +1 -2
|
@@ -1,25 +1,34 @@
|
|
|
1
|
-
import { type Link } from './IsographEnvironment';
|
|
2
1
|
import { ReaderWithRefetchQueries } from '../core/entrypoint';
|
|
2
|
+
import { type StoreLink } from './IsographEnvironment';
|
|
3
3
|
import { PromiseWrapper } from './PromiseWrapper';
|
|
4
|
-
|
|
4
|
+
import type { StartUpdate } from './reader';
|
|
5
|
+
export type VariableValue = string | number | boolean | null | {
|
|
6
|
+
readonly [index: string]: VariableValue;
|
|
7
|
+
} | VariableValue[];
|
|
5
8
|
export type Variables = {
|
|
6
9
|
readonly [index: string]: VariableValue;
|
|
7
10
|
};
|
|
11
|
+
export type UnknownTReadFromStore = {
|
|
12
|
+
parameters: object;
|
|
13
|
+
data: object;
|
|
14
|
+
startUpdate?: StartUpdate<object>;
|
|
15
|
+
};
|
|
8
16
|
export type ExtractData<T> = T extends {
|
|
9
17
|
data: infer D extends object;
|
|
10
18
|
} ? D : never;
|
|
11
19
|
export type ExtractParameters<T> = T extends {
|
|
12
20
|
parameters: infer P extends Variables;
|
|
13
21
|
} ? P : Variables;
|
|
14
|
-
export type
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
22
|
+
export type ExtractStartUpdate<T extends UnknownTReadFromStore> = T['startUpdate'];
|
|
23
|
+
export type ExtractUpdatableData<T extends UnknownTReadFromStore> = ExtractUpdatableDataFromStartUpdate<ExtractStartUpdate<T>>;
|
|
24
|
+
export type ExtractUpdatableDataFromStartUpdate<T> = T extends StartUpdate<infer D> ? D : never;
|
|
25
|
+
export type FragmentReference<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue> = {
|
|
18
26
|
readonly kind: 'FragmentReference';
|
|
19
27
|
readonly readerWithRefetchQueries: PromiseWrapper<ReaderWithRefetchQueries<TReadFromStore, TClientFieldValue>>;
|
|
20
|
-
readonly root:
|
|
28
|
+
readonly root: StoreLink;
|
|
21
29
|
readonly variables: ExtractParameters<TReadFromStore>;
|
|
22
30
|
readonly networkRequest: PromiseWrapper<void, any>;
|
|
23
31
|
};
|
|
24
|
-
export
|
|
32
|
+
export type StableIdForFragmentReference = string;
|
|
33
|
+
export declare function stableIdForFragmentReference(fragmentReference: FragmentReference<any, any>, fieldName: string): StableIdForFragmentReference;
|
|
25
34
|
//# sourceMappingURL=FragmentReference.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FragmentReference.d.ts","sourceRoot":"","sources":["../../src/core/FragmentReference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"FragmentReference.d.ts","sourceRoot":"","sources":["../../src/core/FragmentReference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ;IACE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;CACzC,GACD,aAAa,EAAE,CAAC;AAEpB,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS;IACrC,IAAI,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC;CAC9B,GACG,CAAC,GACD,KAAK,CAAC;AAEV,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS;IAC3C,UAAU,EAAE,MAAM,CAAC,SAAS,SAAS,CAAC;CACvC,GACG,CAAC,GACD,SAAS,CAAC;AAEd,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,qBAAqB,IAC5D,CAAC,CAAC,aAAa,CAAC,CAAC;AAEnB,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,qBAAqB,IAC9D,mCAAmC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7D,MAAM,MAAM,mCAAmC,CAAC,CAAC,IAC/C,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE7C,MAAM,MAAM,iBAAiB,CAC3B,cAAc,SAAS,qBAAqB,EAC5C,iBAAiB,IACf;IACF,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,wBAAwB,EAAE,cAAc,CAC/C,wBAAwB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAC5D,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAOzB,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACtD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAElD,wBAAgB,4BAA4B,CAC1C,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC9C,SAAS,EAAE,MAAM,GAChB,4BAA4B,CAE9B"}
|
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.stableIdForFragmentReference = stableIdForFragmentReference;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
return `${fragmentReference.root.__typename}/${fragmentReference.root.__link}
|
|
7
|
-
}
|
|
8
|
-
function serializeVariables(variables) {
|
|
9
|
-
let s = '';
|
|
10
|
-
const keys = Object.keys(variables);
|
|
11
|
-
keys.sort();
|
|
12
|
-
for (const key of keys) {
|
|
13
|
-
s += `${key}:${variables[key]},`;
|
|
14
|
-
}
|
|
15
|
-
return s;
|
|
4
|
+
const cache_1 = require("./cache");
|
|
5
|
+
function stableIdForFragmentReference(fragmentReference, fieldName) {
|
|
6
|
+
return `${fragmentReference.root.__typename}/${fragmentReference.root.__link}/${fieldName}/${JSON.stringify((0, cache_1.stableCopy)(fragmentReference.variables))}`;
|
|
16
7
|
}
|
|
@@ -1,24 +1,18 @@
|
|
|
1
1
|
import { ParentCache } from '@isograph/react-disposable-state';
|
|
2
|
+
import { IsographEntrypoint, IsographOperation, IsographPersistedOperation } from './entrypoint';
|
|
3
|
+
import { FragmentReference, Variables, type StableIdForFragmentReference, type UnknownTReadFromStore } from './FragmentReference';
|
|
2
4
|
import { RetainedQuery } from './garbageCollection';
|
|
3
|
-
import { WithEncounteredRecords } from './read';
|
|
4
|
-
import { FragmentReference, Variables } from './FragmentReference';
|
|
5
|
-
import { PromiseWrapper } from './PromiseWrapper';
|
|
6
|
-
import { IsographEntrypoint } from './entrypoint';
|
|
7
|
-
import type { ReaderAst } from './reader';
|
|
8
5
|
import { LogFunction, WrappedLogFunction } from './logging';
|
|
6
|
+
import { PromiseWrapper } from './PromiseWrapper';
|
|
7
|
+
import { WithEncounteredRecords } from './read';
|
|
8
|
+
import type { ReaderAst, StartUpdate } from './reader';
|
|
9
|
+
import type { Brand } from './brand';
|
|
9
10
|
export type ComponentOrFieldName = string;
|
|
10
11
|
export type StringifiedArgs = string;
|
|
11
|
-
type
|
|
12
|
-
[key:
|
|
13
|
-
[key: ComponentOrFieldName]: {
|
|
14
|
-
[key: StringifiedArgs]: React.FC<any>;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
12
|
+
export type FieldCache<T> = {
|
|
13
|
+
[key: StableIdForFragmentReference]: T;
|
|
17
14
|
};
|
|
18
|
-
export type FragmentSubscription<TReadFromStore extends {
|
|
19
|
-
parameters: object;
|
|
20
|
-
data: object;
|
|
21
|
-
}> = {
|
|
15
|
+
export type FragmentSubscription<TReadFromStore extends UnknownTReadFromStore> = {
|
|
22
16
|
readonly kind: 'FragmentSubscription';
|
|
23
17
|
readonly callback: (newEncounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>) => void;
|
|
24
18
|
/** The value read out from the previous call to readButDoNotEvaluate */
|
|
@@ -26,45 +20,47 @@ export type FragmentSubscription<TReadFromStore extends {
|
|
|
26
20
|
readonly fragmentReference: FragmentReference<TReadFromStore, any>;
|
|
27
21
|
readonly readerAst: ReaderAst<TReadFromStore>;
|
|
28
22
|
};
|
|
29
|
-
type AnyChangesToRecordSubscription = {
|
|
23
|
+
export type AnyChangesToRecordSubscription = {
|
|
30
24
|
readonly kind: 'AnyChangesToRecord';
|
|
31
25
|
readonly callback: () => void;
|
|
32
|
-
readonly recordLink:
|
|
26
|
+
readonly recordLink: StoreLink;
|
|
33
27
|
};
|
|
34
|
-
type AnyRecordSubscription = {
|
|
28
|
+
export type AnyRecordSubscription = {
|
|
35
29
|
readonly kind: 'AnyRecords';
|
|
36
30
|
readonly callback: () => void;
|
|
37
31
|
};
|
|
38
|
-
type Subscription = FragmentSubscription<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}> | AnyChangesToRecordSubscription | AnyRecordSubscription;
|
|
42
|
-
type Subscriptions = Set<Subscription>;
|
|
43
|
-
type CacheMap<T> = {
|
|
32
|
+
export type Subscription = FragmentSubscription<any> | AnyChangesToRecordSubscription | AnyRecordSubscription;
|
|
33
|
+
export type Subscriptions = Set<Subscription>;
|
|
34
|
+
export type CacheMap<T> = {
|
|
44
35
|
[index: string]: ParentCache<T>;
|
|
45
36
|
};
|
|
46
37
|
export type IsographEnvironment = {
|
|
47
38
|
readonly store: IsographStore;
|
|
48
39
|
readonly networkFunction: IsographNetworkFunction;
|
|
49
40
|
readonly missingFieldHandler: MissingFieldHandler | null;
|
|
50
|
-
readonly componentCache:
|
|
41
|
+
readonly componentCache: FieldCache<React.FC<any>>;
|
|
42
|
+
readonly eagerReaderCache: FieldCache<StartUpdate<any> | undefined>;
|
|
51
43
|
readonly subscriptions: Subscriptions;
|
|
52
44
|
readonly fragmentCache: CacheMap<FragmentReference<any, any>>;
|
|
53
|
-
readonly entrypointArtifactCache: Map<string, PromiseWrapper<IsographEntrypoint<any, any>>>;
|
|
45
|
+
readonly entrypointArtifactCache: Map<string, PromiseWrapper<IsographEntrypoint<any, any, any>>>;
|
|
54
46
|
readonly retainedQueries: Set<RetainedQuery>;
|
|
55
47
|
readonly gcBuffer: Array<RetainedQuery>;
|
|
56
48
|
readonly gcBufferSize: number;
|
|
57
49
|
readonly loggers: Set<WrappedLogFunction>;
|
|
58
50
|
};
|
|
59
|
-
export type MissingFieldHandler = (storeRecord: StoreRecord, root:
|
|
51
|
+
export type MissingFieldHandler = (storeRecord: StoreRecord, root: StoreLink, fieldName: string, arguments_: {
|
|
60
52
|
[index: string]: any;
|
|
61
|
-
} | null, variables: Variables | null) =>
|
|
62
|
-
export type IsographNetworkFunction = (
|
|
63
|
-
export
|
|
53
|
+
} | null, variables: Variables | null) => StoreLink | undefined;
|
|
54
|
+
export type IsographNetworkFunction = (operation: IsographOperation | IsographPersistedOperation, variables: Variables) => Promise<any>;
|
|
55
|
+
export interface Link<T extends TypeName> extends StoreLink {
|
|
56
|
+
readonly __link: Brand<DataId, T>;
|
|
57
|
+
readonly __typename: T;
|
|
58
|
+
}
|
|
59
|
+
export type StoreLink = {
|
|
64
60
|
readonly __link: DataId;
|
|
65
61
|
readonly __typename: TypeName;
|
|
66
62
|
};
|
|
67
|
-
export type DataTypeValue = undefined | number | boolean | string | null |
|
|
63
|
+
export type DataTypeValue = undefined | number | boolean | string | null | StoreLink | DataTypeValue[];
|
|
68
64
|
export type StoreRecord = {
|
|
69
65
|
[index: DataId | string]: DataTypeValue;
|
|
70
66
|
readonly id?: DataId;
|
|
@@ -82,8 +78,7 @@ export type IsographStore = {
|
|
|
82
78
|
};
|
|
83
79
|
export declare function createIsographEnvironment(store: IsographStore, networkFunction: IsographNetworkFunction, missingFieldHandler?: MissingFieldHandler | null, logFunction?: LogFunction | null): IsographEnvironment;
|
|
84
80
|
export declare function createIsographStore(): IsographStore;
|
|
85
|
-
export declare function assertLink(link: DataTypeValue):
|
|
86
|
-
export declare function getLink(maybeLink: DataTypeValue):
|
|
87
|
-
export declare function getOrLoadIsographArtifact(environment: IsographEnvironment, key: string, loader: () => Promise<IsographEntrypoint<any, any>>): PromiseWrapper<IsographEntrypoint<any, any>>;
|
|
88
|
-
export {};
|
|
81
|
+
export declare function assertLink(link: DataTypeValue): StoreLink | null | undefined;
|
|
82
|
+
export declare function getLink(maybeLink: DataTypeValue): StoreLink | null;
|
|
83
|
+
export declare function getOrLoadIsographArtifact(environment: IsographEnvironment, key: string, loader: () => Promise<IsographEntrypoint<any, any, any>>): PromiseWrapper<IsographEntrypoint<any, any, any>>;
|
|
89
84
|
//# sourceMappingURL=IsographEnvironment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IsographEnvironment.d.ts","sourceRoot":"","sources":["../../src/core/IsographEnvironment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"IsographEnvironment.d.ts","sourceRoot":"","sources":["../../src/core/IsographEnvironment.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,11 +10,15 @@ const PromiseWrapper_1 = require("./PromiseWrapper");
|
|
|
10
10
|
exports.ROOT_ID = '__ROOT';
|
|
11
11
|
const DEFAULT_GC_BUFFER_SIZE = 10;
|
|
12
12
|
function createIsographEnvironment(store, networkFunction, missingFieldHandler, logFunction) {
|
|
13
|
+
logFunction === null || logFunction === void 0 ? void 0 : logFunction({
|
|
14
|
+
kind: 'EnvironmentCreated',
|
|
15
|
+
});
|
|
13
16
|
return {
|
|
14
17
|
store,
|
|
15
18
|
networkFunction,
|
|
16
19
|
missingFieldHandler: missingFieldHandler !== null && missingFieldHandler !== void 0 ? missingFieldHandler : null,
|
|
17
20
|
componentCache: {},
|
|
21
|
+
eagerReaderCache: {},
|
|
18
22
|
subscriptions: new Set(),
|
|
19
23
|
fragmentCache: {},
|
|
20
24
|
entrypointArtifactCache: new Map(),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type AnyError = any;
|
|
2
|
-
declare const NOT_SET:
|
|
3
|
-
type NotSet = typeof NOT_SET;
|
|
4
|
-
type Result<T, E> = {
|
|
2
|
+
export declare const NOT_SET: unique symbol;
|
|
3
|
+
export type NotSet = typeof NOT_SET;
|
|
4
|
+
export type Result<T, E> = {
|
|
5
5
|
kind: 'Ok';
|
|
6
6
|
value: T;
|
|
7
7
|
} | {
|
|
@@ -13,16 +13,15 @@ type Result<T, E> = {
|
|
|
13
13
|
* Before the promise is resolved, value becomes non-null.
|
|
14
14
|
*/
|
|
15
15
|
export type PromiseWrapper<T, E = any> = {
|
|
16
|
-
readonly promise: Promise<T
|
|
16
|
+
readonly promise: Promise<Exclude<T, NotSet>>;
|
|
17
17
|
result: Result<Exclude<T, NotSet>, E> | NotSet;
|
|
18
18
|
};
|
|
19
|
-
export declare function wrapPromise<T>(promise: Promise<T
|
|
20
|
-
export declare function wrapResolvedValue<T>(value: T): PromiseWrapper<T, never>;
|
|
19
|
+
export declare function wrapPromise<T>(promise: Promise<Exclude<T, NotSet>>): PromiseWrapper<T, unknown>;
|
|
20
|
+
export declare function wrapResolvedValue<T>(value: Exclude<T, NotSet>): PromiseWrapper<T, never>;
|
|
21
21
|
export declare function readPromise<T, E>(p: PromiseWrapper<T, E>): T;
|
|
22
22
|
export type PromiseState<T, E> = {
|
|
23
23
|
kind: 'Pending';
|
|
24
24
|
promise: Promise<T>;
|
|
25
25
|
} | Result<T, E>;
|
|
26
26
|
export declare function getPromiseState<T, E>(p: PromiseWrapper<T, E>): PromiseState<T, E>;
|
|
27
|
-
export {};
|
|
28
27
|
//# sourceMappingURL=PromiseWrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromiseWrapper.d.ts","sourceRoot":"","sources":["../../src/core/PromiseWrapper.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC;AAE3B,
|
|
1
|
+
{"version":3,"file":"PromiseWrapper.d.ts","sourceRoot":"","sources":["../../src/core/PromiseWrapper.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC;AAE3B,eAAO,MAAM,OAAO,eAAoB,CAAC;AACzC,MAAM,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC;AAEpC,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IACnB;IACE,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,CAAC,CAAC;CACV,GACD;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;CAChD,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,EAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GACnC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAW5B;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,GACxB,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAQ1B;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAY5D;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,IACzB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACrB,GACD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEjB,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAClC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GACtB,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAQpB"}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NOT_SET = void 0;
|
|
3
4
|
exports.wrapPromise = wrapPromise;
|
|
4
5
|
exports.wrapResolvedValue = wrapResolvedValue;
|
|
5
6
|
exports.readPromise = readPromise;
|
|
6
7
|
exports.getPromiseState = getPromiseState;
|
|
7
|
-
|
|
8
|
+
exports.NOT_SET = Symbol('NOT_SET');
|
|
8
9
|
function wrapPromise(promise) {
|
|
9
10
|
// TODO confirm suspense works if the promise is already resolved.
|
|
10
|
-
const wrapper = { promise, result: NOT_SET };
|
|
11
|
+
const wrapper = { promise, result: exports.NOT_SET };
|
|
11
12
|
promise
|
|
12
13
|
.then((v) => {
|
|
13
|
-
// v is assignable to Exclude<T, Symbol> | Symbol
|
|
14
14
|
wrapper.result = { kind: 'Ok', value: v };
|
|
15
15
|
})
|
|
16
16
|
.catch((e) => {
|
|
17
|
-
// e is assignable to Exclude<T, Symbol> | Symbol
|
|
18
17
|
wrapper.result = { kind: 'Err', error: e };
|
|
19
18
|
});
|
|
20
19
|
return wrapper;
|
|
@@ -24,15 +23,13 @@ function wrapResolvedValue(value) {
|
|
|
24
23
|
promise: Promise.resolve(value),
|
|
25
24
|
result: {
|
|
26
25
|
kind: 'Ok',
|
|
27
|
-
// @ts-expect-error one should not call wrapResolvedValue with NOT_SET
|
|
28
26
|
value,
|
|
29
27
|
},
|
|
30
28
|
};
|
|
31
29
|
}
|
|
32
30
|
function readPromise(p) {
|
|
33
31
|
const { result } = p;
|
|
34
|
-
if (result !== NOT_SET) {
|
|
35
|
-
// Safety: p.result is either NOT_SET or an actual value.
|
|
32
|
+
if (result !== exports.NOT_SET) {
|
|
36
33
|
const resultKind = result;
|
|
37
34
|
if (resultKind.kind === 'Ok') {
|
|
38
35
|
return resultKind.value;
|
|
@@ -44,11 +41,8 @@ function readPromise(p) {
|
|
|
44
41
|
throw p.promise;
|
|
45
42
|
}
|
|
46
43
|
function getPromiseState(p) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
// Safety: p.result is either NOT_SET or an actual value.
|
|
50
|
-
const resultKind = result;
|
|
51
|
-
return resultKind;
|
|
44
|
+
if (p.result !== exports.NOT_SET) {
|
|
45
|
+
return p.result;
|
|
52
46
|
}
|
|
53
47
|
return {
|
|
54
48
|
kind: 'Pending',
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { ReaderAst
|
|
2
|
-
export declare function mergeUsingReaderAst(field: ReaderScalarField | ReaderLinkedField, oldItem: unknown, newItem: unknown): unknown;
|
|
3
|
-
export declare function mergeArraysUsingReaderAst(field: ReaderScalarField | ReaderLinkedField, oldItems: ReadonlyArray<unknown>, newItems: Array<unknown>): ReadonlyArray<unknown>;
|
|
1
|
+
import type { ReaderAst } from './reader';
|
|
4
2
|
export declare function mergeObjectsUsingReaderAst(ast: ReaderAst<object>, oldItemObject: object, newItemObject: object): object;
|
|
5
3
|
//# sourceMappingURL=areEqualWithDeepComparison.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"areEqualWithDeepComparison.d.ts","sourceRoot":"","sources":["../../src/core/areEqualWithDeepComparison.ts"],"names":[],"mappings":"
|
|
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,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mergeUsingReaderAst = mergeUsingReaderAst;
|
|
4
|
-
exports.mergeArraysUsingReaderAst = mergeArraysUsingReaderAst;
|
|
5
3
|
exports.mergeObjectsUsingReaderAst = mergeObjectsUsingReaderAst;
|
|
6
4
|
function mergeUsingReaderAst(field, oldItem, newItem) {
|
|
7
5
|
if (newItem === null) {
|
|
@@ -80,6 +78,22 @@ function mergeObjectsUsingReaderAst(ast, oldItemObject, newItemObject) {
|
|
|
80
78
|
}
|
|
81
79
|
break;
|
|
82
80
|
}
|
|
81
|
+
case 'Link': {
|
|
82
|
+
const key = field.alias;
|
|
83
|
+
// @ts-expect-error
|
|
84
|
+
const oldValue = oldItemObject[key];
|
|
85
|
+
// @ts-expect-error
|
|
86
|
+
const newValue = newItemObject[key];
|
|
87
|
+
if (oldValue.__link !== newValue.__link ||
|
|
88
|
+
oldValue.__typename !== newValue.__typename) {
|
|
89
|
+
canRecycle = false;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// @ts-expect-error
|
|
93
|
+
newItemObject[key] = oldValue;
|
|
94
|
+
}
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
83
97
|
case 'ImperativelyLoadedField':
|
|
84
98
|
case 'LoadablySelectedField':
|
|
85
99
|
break;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../src/core/brand.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,KAAK,CACf,QAAQ,EACR,KAAK,SAAS,MAAM,GAAG,MAAM,IAE3B,MAAM,CAAC,SAAS,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC"}
|
package/dist/core/cache.d.ts
CHANGED
|
@@ -1,44 +1,36 @@
|
|
|
1
1
|
import { Factory, ParentCache } from '@isograph/react-disposable-state';
|
|
2
|
-
import {
|
|
3
|
-
import { IsographEntrypoint, NormalizationAst, NormalizationLinkedField, NormalizationScalarField, RefetchQueryNormalizationArtifactWrapper } from '../core/entrypoint';
|
|
4
|
-
import { ReaderLinkedField, ReaderScalarField, type ReaderAst } from './reader';
|
|
5
|
-
import { WithEncounteredRecords } from './read';
|
|
6
|
-
import { FragmentReference, Variables, ExtractParameters } from './FragmentReference';
|
|
2
|
+
import { IsographEntrypoint, NormalizationLinkedField, NormalizationScalarField, type NormalizationAst, type NormalizationAstLoader, type NormalizationAstNodes } from '../core/entrypoint';
|
|
7
3
|
import { FetchOptions } from './check';
|
|
4
|
+
import { ExtractParameters, FragmentReference, Variables, type UnknownTReadFromStore } from './FragmentReference';
|
|
5
|
+
import { DataId, StoreLink, type IsographEnvironment, type TypeName } from './IsographEnvironment';
|
|
6
|
+
import { WithEncounteredRecords } from './read';
|
|
7
|
+
import { ReaderLinkedField, ReaderScalarField, type ReaderAst } from './reader';
|
|
8
8
|
export declare const TYPENAME_FIELD_NAME = "__typename";
|
|
9
|
-
export declare function getOrCreateItemInSuspenseCache<TReadFromStore extends
|
|
10
|
-
parameters: object;
|
|
11
|
-
data: object;
|
|
12
|
-
}, TClientFieldValue>(environment: IsographEnvironment, index: string, factory: Factory<FragmentReference<TReadFromStore, TClientFieldValue>>): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>>;
|
|
9
|
+
export declare function getOrCreateItemInSuspenseCache<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue>(environment: IsographEnvironment, index: string, factory: Factory<FragmentReference<TReadFromStore, TClientFieldValue>>): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>>;
|
|
13
10
|
/**
|
|
14
11
|
* Creates a copy of the provided value, ensuring any nested objects have their
|
|
15
12
|
* keys sorted such that equivalent values would have identical JSON.stringify
|
|
16
13
|
* results.
|
|
17
14
|
*/
|
|
18
15
|
export declare function stableCopy<T>(value: T): T;
|
|
19
|
-
export declare function getOrCreateCacheForArtifact<TReadFromStore extends
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}, TClientFieldValue>(environment: IsographEnvironment, entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue>, variables: ExtractParameters<TReadFromStore>, fetchOptions?: FetchOptions): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>>;
|
|
23
|
-
type NetworkResponseScalarValue = string | number | boolean;
|
|
24
|
-
type NetworkResponseValue = NetworkResponseScalarValue | null | NetworkResponseObject | (NetworkResponseObject | null)[] | (NetworkResponseScalarValue | null)[];
|
|
16
|
+
export declare function getOrCreateCacheForArtifact<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TNormalizationAst extends NormalizationAst | NormalizationAstLoader>(environment: IsographEnvironment, entrypoint: IsographEntrypoint<TReadFromStore, TClientFieldValue, TNormalizationAst>, variables: ExtractParameters<TReadFromStore>, fetchOptions?: FetchOptions<TClientFieldValue>): ParentCache<FragmentReference<TReadFromStore, TClientFieldValue>>;
|
|
17
|
+
export type NetworkResponseScalarValue = string | number | boolean;
|
|
18
|
+
export type NetworkResponseValue = NetworkResponseScalarValue | null | NetworkResponseObject | (NetworkResponseObject | null)[] | (NetworkResponseScalarValue | null)[];
|
|
25
19
|
export type NetworkResponseObject = {
|
|
26
20
|
[index: string]: undefined | NetworkResponseValue;
|
|
27
21
|
id?: DataId;
|
|
28
22
|
__typename?: TypeName;
|
|
29
23
|
};
|
|
30
|
-
export declare function normalizeData(environment: IsographEnvironment, normalizationAst:
|
|
24
|
+
export declare function normalizeData(environment: IsographEnvironment, normalizationAst: NormalizationAstNodes, networkResponse: NetworkResponseObject, variables: Variables, root: StoreLink): EncounteredIds;
|
|
31
25
|
export declare function subscribeToAnyChange(environment: IsographEnvironment, callback: () => void): () => void;
|
|
32
|
-
export declare function subscribeToAnyChangesToRecord(environment: IsographEnvironment, recordLink:
|
|
33
|
-
export declare function subscribe<TReadFromStore extends
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}>(environment: IsographEnvironment, encounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>, fragmentReference: FragmentReference<TReadFromStore, any>, callback: (newEncounteredDataAndRecords: WithEncounteredRecords<TReadFromStore>) => void, readerAst: ReaderAst<TReadFromStore>): () => void;
|
|
37
|
-
export declare function onNextChangeToRecord(environment: IsographEnvironment, recordLink: Link): Promise<void>;
|
|
26
|
+
export declare function subscribeToAnyChangesToRecord(environment: IsographEnvironment, recordLink: StoreLink, callback: () => void): () => void;
|
|
27
|
+
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;
|
|
28
|
+
export declare function onNextChangeToRecord(environment: IsographEnvironment, recordLink: StoreLink): Promise<void>;
|
|
29
|
+
export declare function callSubscriptions(environment: IsographEnvironment, recordsEncounteredWhenNormalizing: EncounteredIds): void;
|
|
38
30
|
export type EncounteredIds = Map<TypeName, Set<DataId>>;
|
|
39
|
-
export declare function
|
|
31
|
+
export declare function insertEmptySetIfMissing<K, V>(map: Map<K, Set<V>>, key: K): Set<V>;
|
|
40
32
|
export declare function getParentRecordKey(astNode: NormalizationLinkedField | NormalizationScalarField | ReaderLinkedField | ReaderScalarField, variables: Variables): string;
|
|
41
33
|
export declare const FIRST_SPLIT_KEY = "____";
|
|
42
34
|
export declare const SECOND_SPLIT_KEY = "___";
|
|
43
|
-
export
|
|
35
|
+
export declare const THIRD_SPLIT_KEY = "__";
|
|
44
36
|
//# sourceMappingURL=cache.d.ts.map
|
package/dist/core/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,WAAW,EACZ,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/core/cache.ts"],"names":[],"mappings":"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"}
|