@isograph/react 0.2.0 → 0.3.1
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-typescript.log +4 -0
- package/dist/core/FragmentReference.d.ts +25 -6
- package/dist/core/FragmentReference.d.ts.map +1 -0
- package/dist/core/FragmentReference.js +3 -13
- package/dist/core/IsographEnvironment.d.ts +34 -26
- package/dist/core/IsographEnvironment.d.ts.map +1 -0
- package/dist/core/IsographEnvironment.js +19 -22
- package/dist/core/PromiseWrapper.d.ts +4 -4
- package/dist/core/PromiseWrapper.d.ts.map +1 -0
- package/dist/core/PromiseWrapper.js +9 -9
- package/dist/core/areEqualWithDeepComparison.d.ts +5 -3
- package/dist/core/areEqualWithDeepComparison.d.ts.map +1 -0
- package/dist/core/areEqualWithDeepComparison.js +89 -39
- package/dist/core/cache.d.ts +20 -13
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js +205 -128
- package/dist/core/check.d.ts +22 -0
- package/dist/core/check.d.ts.map +1 -0
- package/dist/core/check.js +127 -0
- package/dist/core/componentCache.d.ts +2 -2
- package/dist/core/componentCache.d.ts.map +1 -0
- package/dist/core/componentCache.js +28 -32
- package/dist/core/entrypoint.d.ts +31 -15
- package/dist/core/entrypoint.d.ts.map +1 -0
- package/dist/core/entrypoint.js +1 -2
- package/dist/core/garbageCollection.d.ts +6 -5
- package/dist/core/garbageCollection.d.ts.map +1 -0
- package/dist/core/garbageCollection.js +49 -16
- package/dist/core/logging.d.ts +68 -0
- package/dist/core/logging.d.ts.map +1 -0
- package/dist/core/logging.js +22 -0
- package/dist/core/makeNetworkRequest.d.ts +6 -3
- package/dist/core/makeNetworkRequest.d.ts.map +1 -0
- package/dist/core/makeNetworkRequest.js +160 -19
- package/dist/core/read.d.ts +25 -5
- package/dist/core/read.d.ts.map +1 -0
- package/dist/core/read.js +416 -259
- package/dist/core/reader.d.ts +31 -15
- package/dist/core/reader.d.ts.map +1 -0
- package/dist/core/startUpdate.d.ts +5 -0
- package/dist/core/startUpdate.d.ts.map +1 -0
- package/dist/core/startUpdate.js +15 -0
- package/dist/core/util.d.ts +5 -0
- package/dist/core/util.d.ts.map +1 -0
- package/dist/index.d.ts +19 -14
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -2
- package/dist/loadable-hooks/useClientSideDefer.d.ts +9 -3
- package/dist/loadable-hooks/useClientSideDefer.d.ts.map +1 -0
- package/dist/loadable-hooks/useClientSideDefer.js +6 -8
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts +27 -0
- package/dist/loadable-hooks/useConnectionSpecPagination.d.ts.map +1 -0
- package/dist/loadable-hooks/useConnectionSpecPagination.js +162 -0
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts +2 -2
- package/dist/loadable-hooks/useImperativeExposedMutationField.d.ts.map +1 -0
- package/dist/loadable-hooks/useImperativeExposedMutationField.js +1 -2
- package/dist/loadable-hooks/useImperativeLoadableField.d.ts +13 -7
- package/dist/loadable-hooks/useImperativeLoadableField.d.ts.map +1 -0
- package/dist/loadable-hooks/useImperativeLoadableField.js +4 -5
- package/dist/loadable-hooks/useSkipLimitPagination.d.ts +13 -26
- package/dist/loadable-hooks/useSkipLimitPagination.d.ts.map +1 -0
- package/dist/loadable-hooks/useSkipLimitPagination.js +93 -47
- package/dist/react/FragmentReader.d.ts +6 -4
- package/dist/react/FragmentReader.d.ts.map +1 -0
- package/dist/react/FragmentReader.js +4 -2
- package/dist/react/IsographEnvironmentProvider.d.ts +1 -0
- package/dist/react/IsographEnvironmentProvider.d.ts.map +1 -0
- package/dist/react/IsographEnvironmentProvider.js +3 -3
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.ts +10 -0
- package/dist/react/RenderAfterCommit__DO_NOT_USE.d.ts.map +1 -0
- package/dist/react/RenderAfterCommit__DO_NOT_USE.js +15 -0
- package/dist/react/useImperativeReference.d.ts +8 -6
- package/dist/react/useImperativeReference.d.ts.map +1 -0
- package/dist/react/useImperativeReference.js +6 -8
- package/dist/react/useLazyReference.d.ts +5 -3
- package/dist/react/useLazyReference.d.ts.map +1 -0
- package/dist/react/useLazyReference.js +34 -6
- package/dist/react/useReadAndSubscribe.d.ts +6 -3
- package/dist/react/useReadAndSubscribe.d.ts.map +1 -0
- package/dist/react/useReadAndSubscribe.js +13 -10
- package/dist/react/useRerenderOnChange.d.ts +7 -2
- package/dist/react/useRerenderOnChange.d.ts.map +1 -0
- package/dist/react/useRerenderOnChange.js +3 -4
- package/dist/react/useResult.d.ts +4 -3
- package/dist/react/useResult.d.ts.map +1 -0
- package/dist/react/useResult.js +14 -9
- package/isograph.config.json +8 -0
- package/package.json +14 -9
- package/{src/tests/schema.graphql → schema.graphql} +1 -0
- package/src/core/FragmentReference.ts +44 -17
- package/src/core/IsographEnvironment.ts +67 -50
- package/src/core/PromiseWrapper.ts +3 -3
- package/src/core/areEqualWithDeepComparison.ts +95 -41
- package/src/core/cache.ts +316 -169
- package/src/core/check.ts +212 -0
- package/src/core/componentCache.ts +40 -46
- package/src/core/entrypoint.ts +41 -16
- package/src/core/garbageCollection.ts +77 -26
- package/src/core/logging.ts +118 -0
- package/src/core/makeNetworkRequest.ts +249 -20
- package/src/core/read.ts +658 -368
- package/src/core/reader.ts +61 -21
- package/src/core/startUpdate.ts +28 -0
- package/src/core/util.ts +8 -0
- package/src/index.ts +94 -8
- package/src/loadable-hooks/useClientSideDefer.ts +48 -17
- package/src/loadable-hooks/useConnectionSpecPagination.ts +344 -0
- package/src/loadable-hooks/useImperativeExposedMutationField.ts +1 -1
- package/src/loadable-hooks/useImperativeLoadableField.ts +36 -12
- package/src/loadable-hooks/useSkipLimitPagination.ts +253 -94
- package/src/react/FragmentReader.tsx +15 -6
- package/src/react/IsographEnvironmentProvider.tsx +1 -1
- package/src/react/RenderAfterCommit__DO_NOT_USE.tsx +17 -0
- package/src/react/useImperativeReference.ts +50 -18
- package/src/react/useLazyReference.ts +79 -11
- package/src/react/useReadAndSubscribe.ts +33 -10
- package/src/react/useRerenderOnChange.ts +7 -2
- package/src/react/useResult.ts +30 -9
- package/src/tests/__isograph/Query/meName/entrypoint.ts +10 -29
- package/src/tests/__isograph/Query/meName/normalization_ast.ts +25 -0
- package/src/tests/__isograph/Query/meName/param_type.ts +5 -2
- 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 +10 -65
- package/src/tests/__isograph/Query/meNameSuccessor/normalization_ast.ts +56 -0
- package/src/tests/__isograph/Query/meNameSuccessor/param_type.ts +9 -6
- 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 +10 -28
- package/src/tests/__isograph/Query/nodeField/normalization_ast.ts +30 -0
- package/src/tests/__isograph/Query/nodeField/param_type.ts +7 -3
- package/src/tests/__isograph/Query/nodeField/parameters_type.ts +3 -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/subquery/entrypoint.ts +28 -0
- package/src/tests/__isograph/Query/subquery/normalization_ast.ts +38 -0
- package/src/tests/__isograph/Query/subquery/output_type.ts +3 -0
- package/src/tests/__isograph/Query/subquery/param_type.ts +12 -0
- package/src/tests/__isograph/Query/subquery/parameters_type.ts +3 -0
- package/src/tests/__isograph/Query/subquery/query_text.ts +8 -0
- package/src/tests/__isograph/Query/subquery/resolver_reader.ts +52 -0
- package/src/tests/__isograph/iso.ts +24 -12
- package/src/tests/garbageCollection.test.ts +53 -45
- package/src/tests/meNameSuccessor.ts +8 -3
- package/src/tests/nodeQuery.ts +7 -4
- package/src/tests/normalizeData.test.ts +120 -0
- package/src/tests/tsconfig.json +3 -3
- package/tsconfig.json +2 -2
- package/tsconfig.pkg.json +7 -3
- package/vitest.config.ts +20 -0
- package/src/tests/isograph.config.json +0 -7
package/dist/core/reader.d.ts
CHANGED
@@ -1,33 +1,43 @@
|
|
1
|
-
/// <reference types="react" />
|
2
1
|
import { Factory } from '@isograph/disposable-types';
|
3
|
-
import {
|
4
|
-
import { ComponentOrFieldName, DataId, IsographEnvironment } from './IsographEnvironment';
|
2
|
+
import { FetchOptions } from './check';
|
5
3
|
import { IsographEntrypoint, IsographEntrypointLoader, RefetchQueryNormalizationArtifact, RefetchQueryNormalizationArtifactWrapper } from './entrypoint';
|
4
|
+
import { ExtractParameters, FragmentReference, type UnknownTReadFromStore } from './FragmentReference';
|
5
|
+
import { ComponentOrFieldName, IsographEnvironment, type Link } from './IsographEnvironment';
|
6
6
|
import { Arguments } from './util';
|
7
|
-
export type TopLevelReaderArtifact<TReadFromStore extends
|
8
|
-
export type EagerReaderArtifact<TReadFromStore extends
|
7
|
+
export type TopLevelReaderArtifact<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue, TComponentProps extends Record<PropertyKey, never>> = EagerReaderArtifact<TReadFromStore, TClientFieldValue> | ComponentReaderArtifact<TReadFromStore, TComponentProps>;
|
8
|
+
export type EagerReaderArtifact<TReadFromStore extends UnknownTReadFromStore, TClientFieldValue> = {
|
9
9
|
readonly kind: 'EagerReaderArtifact';
|
10
|
+
readonly fieldName: string;
|
10
11
|
readonly readerAst: ReaderAst<TReadFromStore>;
|
11
|
-
readonly resolver: (data: TReadFromStore) => TClientFieldValue;
|
12
|
+
readonly resolver: (data: ResolverFirstParameter<TReadFromStore>) => TClientFieldValue;
|
13
|
+
readonly hasUpdatable: boolean;
|
12
14
|
};
|
13
|
-
export type ComponentReaderArtifact<TReadFromStore extends
|
15
|
+
export type ComponentReaderArtifact<TReadFromStore extends UnknownTReadFromStore, TComponentProps extends Record<string, unknown> = Record<PropertyKey, never>> = {
|
14
16
|
readonly kind: 'ComponentReaderArtifact';
|
15
|
-
readonly
|
17
|
+
readonly fieldName: ComponentOrFieldName;
|
16
18
|
readonly readerAst: ReaderAst<TReadFromStore>;
|
17
|
-
readonly resolver: (data: TReadFromStore
|
19
|
+
readonly resolver: (data: ResolverFirstParameter<TReadFromStore>, runtimeProps: TComponentProps) => React.ReactNode;
|
20
|
+
readonly hasUpdatable: boolean;
|
18
21
|
};
|
22
|
+
export type ResolverFirstParameter<TReadFromStore extends UnknownTReadFromStore> = Pick<TReadFromStore, 'data' | 'parameters' | 'startUpdate'>;
|
23
|
+
export type StartUpdate<UpdatableData> = (updater: (updatableData: UpdatableData) => void) => void;
|
19
24
|
export type RefetchReaderArtifact = {
|
20
25
|
readonly kind: 'RefetchReaderArtifact';
|
21
26
|
readonly readerAst: ReaderAst<unknown>;
|
22
|
-
readonly resolver: (environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact, variables: any, filteredVariables: any,
|
27
|
+
readonly resolver: (environment: IsographEnvironment, artifact: RefetchQueryNormalizationArtifact, variables: any, filteredVariables: any, rootLink: Link, readerArtifact: TopLevelReaderArtifact<any, any, any> | null, nestedRefetchQueries: RefetchQueryNormalizationArtifactWrapper[]) => () => void;
|
23
28
|
};
|
24
|
-
export type ReaderAstNode = ReaderScalarField | ReaderLinkedField | ReaderNonLoadableResolverField | ReaderImperativelyLoadedField | ReaderLoadableField;
|
29
|
+
export type ReaderAstNode = ReaderScalarField | ReaderLinkedField | ReaderNonLoadableResolverField | ReaderImperativelyLoadedField | ReaderLoadableField | ReaderLinkField;
|
25
30
|
export type ReaderAst<TReadFromStore> = ReadonlyArray<ReaderAstNode>;
|
26
31
|
export type ReaderScalarField = {
|
27
32
|
readonly kind: 'Scalar';
|
28
33
|
readonly fieldName: string;
|
29
34
|
readonly alias: string | null;
|
30
35
|
readonly arguments: Arguments | null;
|
36
|
+
readonly isUpdatable: boolean;
|
37
|
+
};
|
38
|
+
export type ReaderLinkField = {
|
39
|
+
readonly kind: 'Link';
|
40
|
+
readonly alias: string;
|
31
41
|
};
|
32
42
|
export type ReaderLinkedField = {
|
33
43
|
readonly kind: 'Linked';
|
@@ -35,6 +45,12 @@ export type ReaderLinkedField = {
|
|
35
45
|
readonly alias: string | null;
|
36
46
|
readonly selections: ReaderAst<unknown>;
|
37
47
|
readonly arguments: Arguments | null;
|
48
|
+
readonly condition: EagerReaderArtifact<{
|
49
|
+
data: object;
|
50
|
+
parameters: any;
|
51
|
+
startUpdate?: StartUpdate<object>;
|
52
|
+
}, boolean | Link | null> | null;
|
53
|
+
readonly isUpdatable: boolean;
|
38
54
|
};
|
39
55
|
export type ReaderNonLoadableResolverField = {
|
40
56
|
readonly kind: 'Resolver';
|
@@ -56,8 +72,8 @@ export type ReaderLoadableField = {
|
|
56
72
|
readonly name: string;
|
57
73
|
readonly queryArguments: Arguments | null;
|
58
74
|
readonly refetchReaderAst: ReaderAst<any>;
|
59
|
-
readonly entrypoint: IsographEntrypoint<any, any> | IsographEntrypointLoader<any, any>;
|
75
|
+
readonly entrypoint: IsographEntrypoint<any, any, any> | IsographEntrypointLoader<any, any>;
|
60
76
|
};
|
61
|
-
type StableId = string;
|
62
|
-
export type LoadableField<
|
63
|
-
|
77
|
+
export type StableId = string;
|
78
|
+
export type LoadableField<TReadFromStore extends UnknownTReadFromStore, TResult, TArgs = ExtractParameters<TReadFromStore>> = (args: TArgs | void, fetchOptions: FetchOptions<TResult>) => [StableId, Factory<FragmentReference<TReadFromStore, TResult>>];
|
79
|
+
//# sourceMappingURL=reader.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/core/reader.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import { type ExtractStartUpdate, type FragmentReference, type UnknownTReadFromStore } from './FragmentReference';
|
2
|
+
import type { IsographEnvironment } from './IsographEnvironment';
|
3
|
+
export declare function getOrCreateCachedStartUpdate<TReadFromStore extends UnknownTReadFromStore>(environment: IsographEnvironment, fragmentReference: FragmentReference<TReadFromStore, any>, eagerResolverName: string): ExtractStartUpdate<TReadFromStore>;
|
4
|
+
export declare function createStartUpdate<TReadFromStore extends UnknownTReadFromStore>(_environment: IsographEnvironment, _fragmentReference: FragmentReference<TReadFromStore, any>): ExtractStartUpdate<TReadFromStore>;
|
5
|
+
//# sourceMappingURL=startUpdate.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"startUpdate.d.ts","sourceRoot":"","sources":["../../src/core/startUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,wBAAgB,4BAA4B,CAC1C,cAAc,SAAS,qBAAqB,EAE5C,WAAW,EAAE,mBAAmB,EAChC,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,GAAG,CAAC,EACzD,iBAAiB,EAAE,MAAM,GACxB,kBAAkB,CAAC,cAAc,CAAC,CAIpC;AAED,wBAAgB,iBAAiB,CAAC,cAAc,SAAS,qBAAqB,EAC5E,YAAY,EAAE,mBAAmB,EACjC,kBAAkB,EAAE,iBAAiB,CAAC,cAAc,EAAE,GAAG,CAAC,GACzD,kBAAkB,CAAC,cAAc,CAAC,CAIpC"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.getOrCreateCachedStartUpdate = getOrCreateCachedStartUpdate;
|
4
|
+
exports.createStartUpdate = createStartUpdate;
|
5
|
+
const FragmentReference_1 = require("./FragmentReference");
|
6
|
+
function getOrCreateCachedStartUpdate(environment, fragmentReference, eagerResolverName) {
|
7
|
+
var _a;
|
8
|
+
var _b, _c;
|
9
|
+
return ((_a = (_b = environment.eagerReaderCache)[_c = (0, FragmentReference_1.stableIdForFragmentReference)(fragmentReference, eagerResolverName)]) !== null && _a !== void 0 ? _a : (_b[_c] = createStartUpdate(environment, fragmentReference)));
|
10
|
+
}
|
11
|
+
function createStartUpdate(_environment, _fragmentReference) {
|
12
|
+
return (_updater) => {
|
13
|
+
// TODO start update
|
14
|
+
};
|
15
|
+
}
|
package/dist/core/util.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
export type ExtractSecondParam<T extends (arg1: any, arg2: any) => any> = T extends (arg1: any, arg2: infer P) => any ? P : never;
|
2
|
+
export type CombineWithIntrinsicAttributes<T> = T extends Record<PropertyKey, never> ? JSX.IntrinsicAttributes : T & JSX.IntrinsicAttributes;
|
2
3
|
export type Arguments = Argument[];
|
3
4
|
export type Argument = [ArgumentName, ArgumentValue];
|
4
5
|
export type ArgumentName = string;
|
@@ -14,4 +15,8 @@ export type ArgumentValue = {
|
|
14
15
|
} | {
|
15
16
|
readonly kind: 'Enum';
|
16
17
|
readonly value: string;
|
18
|
+
} | {
|
19
|
+
readonly kind: 'Object';
|
20
|
+
readonly value: Arguments;
|
17
21
|
};
|
22
|
+
//# sourceMappingURL=util.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/core/util.ts"],"names":[],"mappings":"AAAA,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,GAAG,CAAC,mBAAmB,GACvB,CAAC,GAAG,GAAG,CAAC,mBAAmB,CAAC;AAElC,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"}
|
package/dist/index.d.ts
CHANGED
@@ -1,21 +1,26 @@
|
|
1
|
-
export { retainQuery, unretainQuery, type RetainedQuery, garbageCollectEnvironment, } from './core/garbageCollection';
|
2
|
-
export { type PromiseWrapper, readPromise, getPromiseState, wrapResolvedValue, wrapPromise, } from './core/PromiseWrapper';
|
3
|
-
export { subscribe, normalizeData } from './core/cache';
|
1
|
+
export { retainQuery, unretainQuery, type RetainedQuery, garbageCollectEnvironment, type DidUnretainSomeQuery, } from './core/garbageCollection';
|
2
|
+
export { type PromiseWrapper, readPromise, getPromiseState, wrapResolvedValue, wrapPromise, type PromiseState, type Result, type AnyError, type NotSet, NOT_SET, } from './core/PromiseWrapper';
|
3
|
+
export { subscribe, normalizeData, type NetworkResponseObject, type NetworkResponseValue, type NetworkResponseScalarValue, type EncounteredIds, } from './core/cache';
|
4
4
|
export { makeNetworkRequest } from './core/makeNetworkRequest';
|
5
|
-
export { ROOT_ID, type DataId, type DataTypeValue, type IsographEnvironment, type IsographNetworkFunction, type IsographStore, type Link, type StoreRecord, createIsographEnvironment, createIsographStore,
|
6
|
-
export { type EagerReaderArtifact, type ComponentReaderArtifact, type RefetchReaderArtifact, type ReaderAst, type ReaderAstNode, type ReaderLinkedField, type ReaderNonLoadableResolverField, type ReaderScalarField, type TopLevelReaderArtifact, type LoadableField, } from './core/reader';
|
7
|
-
export { type NormalizationAst, type NormalizationAstNode, type NormalizationLinkedField, type NormalizationScalarField, type IsographEntrypoint, assertIsEntrypoint, type RefetchQueryNormalizationArtifact, type RefetchQueryNormalizationArtifactWrapper, type ExtractProps, type ExtractReadFromStore, type ExtractResolverResult, } from './core/entrypoint';
|
8
|
-
export { readButDoNotEvaluate } from './core/read';
|
9
|
-
export { type ExtractSecondParam, type Argument, type ArgumentName, type ArgumentValue, type Arguments, } from './core/util';
|
10
|
-
export { type FragmentReference, type Variables, stableIdForFragmentReference, } from './core/FragmentReference';
|
5
|
+
export { ROOT_ID, type DataId, type DataTypeValue, type IsographEnvironment, type IsographNetworkFunction, type IsographStore, type MissingFieldHandler, type Link, type StoreRecord, type CacheMap, createIsographEnvironment, createIsographStore, type FieldCache, type Subscriptions, type Subscription, type TypeName, type FragmentSubscription, type AnyChangesToRecordSubscription, type AnyRecordSubscription, type ComponentOrFieldName, type StringifiedArgs, } from './core/IsographEnvironment';
|
6
|
+
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 ReaderLoadableField, type ReaderLinkField, type StartUpdate, } from './core/reader';
|
7
|
+
export { type NormalizationAst, type NormalizationAstNode, type NormalizationAstNodes, type NormalizationAstLoader, type NormalizationLinkedField, type NormalizationScalarField, type IsographEntrypoint, assertIsEntrypoint, type RefetchQueryNormalizationArtifact, type RefetchQueryNormalizationArtifactWrapper, type ExtractProps, type ExtractReadFromStore, type ExtractResolverResult, type NetworkRequestInfo, type NormalizationInlineFragment, type ReaderWithRefetchQueries, type IsographEntrypointLoader, } from './core/entrypoint';
|
8
|
+
export { readButDoNotEvaluate, type WithEncounteredRecords, type NetworkRequestReaderOptions, type ReadDataResult, } from './core/read';
|
9
|
+
export { type ExtractSecondParam, type CombineWithIntrinsicAttributes, type Argument, type ArgumentName, type ArgumentValue, type Arguments, } from './core/util';
|
10
|
+
export { type FragmentReference, type Variables, type ExtractParameters, type ExtractData, type UnknownTReadFromStore, stableIdForFragmentReference, type ExtractStartUpdate, type VariableValue, type StableIdForFragmentReference, } from './core/FragmentReference';
|
11
|
+
export { type LogMessage, type LogFunction, type WrappedLogFunction, logMessage, registerLogger, } from './core/logging';
|
12
|
+
export { check, type CheckResult, type FetchOptions, type RequiredFetchOptions, type ShouldFetch, type RequiredShouldFetch, } from './core/check';
|
11
13
|
export { IsographEnvironmentProvider, useIsographEnvironment, type IsographEnvironmentProviderProps, } from './react/IsographEnvironmentProvider';
|
12
|
-
export { useImperativeReference } from './react/useImperativeReference';
|
13
|
-
export { FragmentReader } from './react/FragmentReader';
|
14
|
+
export { useImperativeReference, type UseImperativeReferenceResult, } from './react/useImperativeReference';
|
15
|
+
export { FragmentReader, type IsExactlyIntrinsicAttributes, } from './react/FragmentReader';
|
14
16
|
export { useResult } from './react/useResult';
|
15
17
|
export { useReadAndSubscribe, useSubscribeToMultiple, } from './react/useReadAndSubscribe';
|
16
18
|
export { useLazyReference } from './react/useLazyReference';
|
17
19
|
export { useRerenderOnChange } from './react/useRerenderOnChange';
|
20
|
+
export { RenderAfterCommit__DO_NOT_USE } from './react/RenderAfterCommit__DO_NOT_USE';
|
18
21
|
export { useClientSideDefer } from './loadable-hooks/useClientSideDefer';
|
19
|
-
export { useImperativeExposedMutationField } from './loadable-hooks/useImperativeExposedMutationField';
|
20
|
-
export { useSkipLimitPagination } from './loadable-hooks/useSkipLimitPagination';
|
21
|
-
export {
|
22
|
+
export { useImperativeExposedMutationField, type UseImperativeLoadableFieldReturn as UseImperativeExposedMutationFieldReturn, } from './loadable-hooks/useImperativeExposedMutationField';
|
23
|
+
export { useSkipLimitPagination, type UseSkipLimitPaginationArgs, type UseSkipLimitReturnValue, } from './loadable-hooks/useSkipLimitPagination';
|
24
|
+
export { useConnectionSpecPagination, type Connection, type PageInfo, type UseConnectionSpecPaginationArgs, type UsePaginationReturnValue, } from './loadable-hooks/useConnectionSpecPagination';
|
25
|
+
export { useImperativeLoadableField, type UseImperativeLoadableFieldReturn, } from './loadable-hooks/useImperativeLoadableField';
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
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.useSkipLimitPagination = exports.useImperativeExposedMutationField = exports.useClientSideDefer = exports.useRerenderOnChange = exports.useLazyReference = exports.useSubscribeToMultiple = exports.useReadAndSubscribe = exports.useResult = exports.FragmentReader = exports.useImperativeReference = exports.useIsographEnvironment = exports.IsographEnvironmentProvider = exports.
|
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.FragmentReader = exports.useImperativeReference = exports.useIsographEnvironment = exports.IsographEnvironmentProvider = exports.check = exports.registerLogger = exports.logMessage = exports.stableIdForFragmentReference = exports.readButDoNotEvaluate = exports.assertIsEntrypoint = exports.createIsographStore = exports.createIsographEnvironment = exports.ROOT_ID = exports.makeNetworkRequest = exports.normalizeData = exports.subscribe = 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; } });
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "readPromise", { enumerable: true, get: function
|
|
10
10
|
Object.defineProperty(exports, "getPromiseState", { enumerable: true, get: function () { return PromiseWrapper_1.getPromiseState; } });
|
11
11
|
Object.defineProperty(exports, "wrapResolvedValue", { enumerable: true, get: function () { return PromiseWrapper_1.wrapResolvedValue; } });
|
12
12
|
Object.defineProperty(exports, "wrapPromise", { enumerable: true, get: function () { return PromiseWrapper_1.wrapPromise; } });
|
13
|
+
Object.defineProperty(exports, "NOT_SET", { enumerable: true, get: function () { return PromiseWrapper_1.NOT_SET; } });
|
13
14
|
var cache_1 = require("./core/cache");
|
14
15
|
Object.defineProperty(exports, "subscribe", { enumerable: true, get: function () { return cache_1.subscribe; } });
|
15
16
|
Object.defineProperty(exports, "normalizeData", { enumerable: true, get: function () { return cache_1.normalizeData; } });
|
@@ -19,13 +20,17 @@ var IsographEnvironment_1 = require("./core/IsographEnvironment");
|
|
19
20
|
Object.defineProperty(exports, "ROOT_ID", { enumerable: true, get: function () { return IsographEnvironment_1.ROOT_ID; } });
|
20
21
|
Object.defineProperty(exports, "createIsographEnvironment", { enumerable: true, get: function () { return IsographEnvironment_1.createIsographEnvironment; } });
|
21
22
|
Object.defineProperty(exports, "createIsographStore", { enumerable: true, get: function () { return IsographEnvironment_1.createIsographStore; } });
|
22
|
-
Object.defineProperty(exports, "defaultMissingFieldHandler", { enumerable: true, get: function () { return IsographEnvironment_1.defaultMissingFieldHandler; } });
|
23
23
|
var entrypoint_1 = require("./core/entrypoint");
|
24
24
|
Object.defineProperty(exports, "assertIsEntrypoint", { enumerable: true, get: function () { return entrypoint_1.assertIsEntrypoint; } });
|
25
25
|
var read_1 = require("./core/read");
|
26
26
|
Object.defineProperty(exports, "readButDoNotEvaluate", { enumerable: true, get: function () { return read_1.readButDoNotEvaluate; } });
|
27
27
|
var FragmentReference_1 = require("./core/FragmentReference");
|
28
28
|
Object.defineProperty(exports, "stableIdForFragmentReference", { enumerable: true, get: function () { return FragmentReference_1.stableIdForFragmentReference; } });
|
29
|
+
var logging_1 = require("./core/logging");
|
30
|
+
Object.defineProperty(exports, "logMessage", { enumerable: true, get: function () { return logging_1.logMessage; } });
|
31
|
+
Object.defineProperty(exports, "registerLogger", { enumerable: true, get: function () { return logging_1.registerLogger; } });
|
32
|
+
var check_1 = require("./core/check");
|
33
|
+
Object.defineProperty(exports, "check", { enumerable: true, get: function () { return check_1.check; } });
|
29
34
|
var IsographEnvironmentProvider_1 = require("./react/IsographEnvironmentProvider");
|
30
35
|
Object.defineProperty(exports, "IsographEnvironmentProvider", { enumerable: true, get: function () { return IsographEnvironmentProvider_1.IsographEnvironmentProvider; } });
|
31
36
|
Object.defineProperty(exports, "useIsographEnvironment", { enumerable: true, get: function () { return IsographEnvironmentProvider_1.useIsographEnvironment; } });
|
@@ -42,11 +47,15 @@ var useLazyReference_1 = require("./react/useLazyReference");
|
|
42
47
|
Object.defineProperty(exports, "useLazyReference", { enumerable: true, get: function () { return useLazyReference_1.useLazyReference; } });
|
43
48
|
var useRerenderOnChange_1 = require("./react/useRerenderOnChange");
|
44
49
|
Object.defineProperty(exports, "useRerenderOnChange", { enumerable: true, get: function () { return useRerenderOnChange_1.useRerenderOnChange; } });
|
50
|
+
var RenderAfterCommit__DO_NOT_USE_1 = require("./react/RenderAfterCommit__DO_NOT_USE");
|
51
|
+
Object.defineProperty(exports, "RenderAfterCommit__DO_NOT_USE", { enumerable: true, get: function () { return RenderAfterCommit__DO_NOT_USE_1.RenderAfterCommit__DO_NOT_USE; } });
|
45
52
|
var useClientSideDefer_1 = require("./loadable-hooks/useClientSideDefer");
|
46
53
|
Object.defineProperty(exports, "useClientSideDefer", { enumerable: true, get: function () { return useClientSideDefer_1.useClientSideDefer; } });
|
47
54
|
var useImperativeExposedMutationField_1 = require("./loadable-hooks/useImperativeExposedMutationField");
|
48
55
|
Object.defineProperty(exports, "useImperativeExposedMutationField", { enumerable: true, get: function () { return useImperativeExposedMutationField_1.useImperativeExposedMutationField; } });
|
49
56
|
var useSkipLimitPagination_1 = require("./loadable-hooks/useSkipLimitPagination");
|
50
57
|
Object.defineProperty(exports, "useSkipLimitPagination", { enumerable: true, get: function () { return useSkipLimitPagination_1.useSkipLimitPagination; } });
|
58
|
+
var useConnectionSpecPagination_1 = require("./loadable-hooks/useConnectionSpecPagination");
|
59
|
+
Object.defineProperty(exports, "useConnectionSpecPagination", { enumerable: true, get: function () { return useConnectionSpecPagination_1.useConnectionSpecPagination; } });
|
51
60
|
var useImperativeLoadableField_1 = require("./loadable-hooks/useImperativeLoadableField");
|
52
61
|
Object.defineProperty(exports, "useImperativeLoadableField", { enumerable: true, get: function () { return useImperativeLoadableField_1.useImperativeLoadableField; } });
|
@@ -1,4 +1,10 @@
|
|
1
|
-
import {
|
1
|
+
import { FetchOptions } from '../core/check';
|
2
|
+
import { ExtractParameters, FragmentReference, type UnknownTReadFromStore } from '../core/FragmentReference';
|
2
3
|
import { LoadableField } from '../core/reader';
|
3
|
-
export declare function useClientSideDefer<TResult>(loadableField: LoadableField<
|
4
|
-
|
4
|
+
export declare function useClientSideDefer<TReadFromStore extends UnknownTReadFromStore, TResult>(loadableField: LoadableField<TReadFromStore, TResult, ExtractParameters<TReadFromStore>>, args?: Record<PropertyKey, never>, fetchOptions?: FetchOptions<TResult>): {
|
5
|
+
fragmentReference: FragmentReference<TReadFromStore, TResult>;
|
6
|
+
};
|
7
|
+
export declare function useClientSideDefer<TReadFromStore extends UnknownTReadFromStore, TResult, TProvidedArgs extends object>(loadableField: LoadableField<TReadFromStore, TResult, Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>>, args: Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>, fetchOptions?: FetchOptions<TResult>): {
|
8
|
+
fragmentReference: FragmentReference<TReadFromStore, TResult>;
|
9
|
+
};
|
10
|
+
//# sourceMappingURL=useClientSideDefer.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useClientSideDefer.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useClientSideDefer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,wBAAgB,kBAAkB,CAChC,cAAc,SAAS,qBAAqB,EAC5C,OAAO,EAEP,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,OAAO,EACP,iBAAiB,CAAC,cAAc,CAAC,CAClC,EACD,IAAI,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,EACjC,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GACnC;IAAE,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAErE,wBAAgB,kBAAkB,CAChC,cAAc,SAAS,qBAAqB,EAC5C,OAAO,EACP,aAAa,SAAS,MAAM,EAE5B,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,OAAO,EACP,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAC7D,EACD,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,EAClE,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GACnC;IAAE,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC"}
|
@@ -1,15 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.useClientSideDefer =
|
4
|
-
const IsographEnvironmentProvider_1 = require("../react/IsographEnvironmentProvider");
|
5
|
-
const cache_1 = require("../core/cache");
|
3
|
+
exports.useClientSideDefer = useClientSideDefer;
|
6
4
|
const react_disposable_state_1 = require("@isograph/react-disposable-state");
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
const cache_1 = require("../core/cache");
|
6
|
+
const IsographEnvironmentProvider_1 = require("../react/IsographEnvironmentProvider");
|
7
|
+
function useClientSideDefer(loadableField, args, fetchOptions) {
|
8
|
+
const [id, loader] = loadableField(args, fetchOptions !== null && fetchOptions !== void 0 ? fetchOptions : {});
|
10
9
|
const environment = (0, IsographEnvironmentProvider_1.useIsographEnvironment)();
|
11
10
|
const cache = (0, cache_1.getOrCreateItemInSuspenseCache)(environment, id, loader);
|
12
11
|
const fragmentReference = (0, react_disposable_state_1.useLazyDisposableState)(cache).state;
|
13
|
-
return fragmentReference;
|
12
|
+
return { fragmentReference };
|
14
13
|
}
|
15
|
-
exports.useClientSideDefer = useClientSideDefer;
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { FetchOptions } from '../core/check';
|
2
|
+
import { FragmentReference, type UnknownTReadFromStore } from '../core/FragmentReference';
|
3
|
+
import { LoadableField } from '../core/reader';
|
4
|
+
export type UsePaginationReturnValue<TReadFromStore extends UnknownTReadFromStore, TItem> = {
|
5
|
+
kind: 'Pending';
|
6
|
+
pendingFragment: FragmentReference<TReadFromStore, Connection<TItem>>;
|
7
|
+
results: ReadonlyArray<TItem>;
|
8
|
+
} | {
|
9
|
+
kind: 'Complete';
|
10
|
+
fetchMore: (count: number, fetchOptions?: FetchOptions<Connection<TItem>>) => void;
|
11
|
+
results: ReadonlyArray<TItem>;
|
12
|
+
hasNextPage: boolean;
|
13
|
+
};
|
14
|
+
export type PageInfo = {
|
15
|
+
readonly hasNextPage: boolean;
|
16
|
+
readonly endCursor: string | null;
|
17
|
+
};
|
18
|
+
export type Connection<T> = {
|
19
|
+
readonly edges: ReadonlyArray<T> | null;
|
20
|
+
readonly pageInfo: PageInfo;
|
21
|
+
};
|
22
|
+
export type UseConnectionSpecPaginationArgs = {
|
23
|
+
first: number;
|
24
|
+
after: string | null;
|
25
|
+
};
|
26
|
+
export declare function useConnectionSpecPagination<TReadFromStore extends UnknownTReadFromStore, TItem>(loadableField: LoadableField<TReadFromStore, Connection<TItem>, UseConnectionSpecPaginationArgs>, initialState?: PageInfo): UsePaginationReturnValue<TReadFromStore, TItem>;
|
27
|
+
//# sourceMappingURL=useConnectionSpecPagination.d.ts.map
|
@@ -0,0 +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;AAC7C,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EAAE,aAAa,EAAkB,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,UAAU,CAAC;IACjB,SAAS,EAAE,CACT,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAC3C,IAAI,CAAC;IACV,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;CACtB,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,CAqPjD"}
|
@@ -0,0 +1,162 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.useConnectionSpecPagination = useConnectionSpecPagination;
|
4
|
+
const react_disposable_state_1 = require("@isograph/react-disposable-state");
|
5
|
+
const reference_counted_pointer_1 = require("@isograph/reference-counted-pointer");
|
6
|
+
const react_1 = require("react");
|
7
|
+
const cache_1 = require("../core/cache");
|
8
|
+
const PromiseWrapper_1 = require("../core/PromiseWrapper");
|
9
|
+
const read_1 = require("../core/read");
|
10
|
+
const startUpdate_1 = require("../core/startUpdate");
|
11
|
+
const IsographEnvironmentProvider_1 = require("../react/IsographEnvironmentProvider");
|
12
|
+
const useReadAndSubscribe_1 = require("../react/useReadAndSubscribe");
|
13
|
+
const useResult_1 = require("../react/useResult");
|
14
|
+
function flatten(arr) {
|
15
|
+
let outArray = [];
|
16
|
+
for (const subarr of arr) {
|
17
|
+
for (const item of subarr) {
|
18
|
+
outArray.push(item);
|
19
|
+
}
|
20
|
+
}
|
21
|
+
return outArray;
|
22
|
+
}
|
23
|
+
function useConnectionSpecPagination(loadableField, initialState) {
|
24
|
+
var _a, _b;
|
25
|
+
const networkRequestOptions = {
|
26
|
+
suspendIfInFlight: true,
|
27
|
+
throwOnNetworkError: true,
|
28
|
+
};
|
29
|
+
const { state, setState } = (0, react_disposable_state_1.useUpdatableDisposableState)();
|
30
|
+
const environment = (0, IsographEnvironmentProvider_1.useIsographEnvironment)();
|
31
|
+
// TODO move this out of useSkipLimitPagination, and pass environment and networkRequestOptions
|
32
|
+
// as parameters (or recreate networkRequestOptions)
|
33
|
+
function readCompletedFragmentReferences(completedReferences) {
|
34
|
+
var _a, _b;
|
35
|
+
const results = completedReferences.map((fragmentReference, i) => {
|
36
|
+
var _a;
|
37
|
+
const readerWithRefetchQueries = (0, PromiseWrapper_1.readPromise)(fragmentReference.readerWithRefetchQueries);
|
38
|
+
// invariant: readOutDataAndRecords.length === completedReferences.length
|
39
|
+
const data = (_a = readOutDataAndRecords[i]) === null || _a === void 0 ? void 0 : _a.item;
|
40
|
+
if (data == null) {
|
41
|
+
throw new Error('Parameter data is unexpectedly null. This is indicative of a bug in Isograph.');
|
42
|
+
}
|
43
|
+
const firstParameter = Object.assign({ data, parameters: fragmentReference.variables }, (readerWithRefetchQueries.readerArtifact.hasUpdatable
|
44
|
+
? {
|
45
|
+
startUpdate: (0, startUpdate_1.getOrCreateCachedStartUpdate)(environment, fragmentReference, readerWithRefetchQueries.readerArtifact.fieldName),
|
46
|
+
}
|
47
|
+
: undefined));
|
48
|
+
if (readerWithRefetchQueries.readerArtifact.kind !== 'EagerReaderArtifact') {
|
49
|
+
throw new Error(`@loadable field of kind "${readerWithRefetchQueries.readerArtifact.kind}" is not supported by useSkipLimitPagination`);
|
50
|
+
}
|
51
|
+
return readerWithRefetchQueries.readerArtifact.resolver(firstParameter);
|
52
|
+
});
|
53
|
+
const items = flatten(results.map((result) => { var _a; return (_a = result.edges) !== null && _a !== void 0 ? _a : []; }));
|
54
|
+
return {
|
55
|
+
edges: items,
|
56
|
+
pageInfo: (_b = (_a = results[results.length - 1]) === null || _a === void 0 ? void 0 : _a.pageInfo) !== null && _b !== void 0 ? _b : {
|
57
|
+
endCursor: null,
|
58
|
+
hasNextPage: true,
|
59
|
+
},
|
60
|
+
};
|
61
|
+
}
|
62
|
+
function subscribeCompletedFragmentReferences(completedReferences) {
|
63
|
+
return completedReferences.map((fragmentReference, i) => {
|
64
|
+
(0, useResult_1.maybeUnwrapNetworkRequest)(fragmentReference.networkRequest, networkRequestOptions);
|
65
|
+
const readerWithRefetchQueries = (0, PromiseWrapper_1.readPromise)(fragmentReference.readerWithRefetchQueries);
|
66
|
+
const records = readOutDataAndRecords[i];
|
67
|
+
if (records == null) {
|
68
|
+
throw new Error('subscribeCompletedFragmentReferences records is unexpectedly null');
|
69
|
+
}
|
70
|
+
return {
|
71
|
+
fragmentReference,
|
72
|
+
readerAst: readerWithRefetchQueries.readerArtifact.readerAst,
|
73
|
+
records,
|
74
|
+
callback(_data) {
|
75
|
+
rerender({});
|
76
|
+
},
|
77
|
+
};
|
78
|
+
});
|
79
|
+
}
|
80
|
+
const getFetchMore = (after) => (count, fetchOptions) => {
|
81
|
+
const loadedField = loadableField({
|
82
|
+
after: after,
|
83
|
+
first: count,
|
84
|
+
}, fetchOptions !== null && fetchOptions !== void 0 ? fetchOptions : {})[1]();
|
85
|
+
const newPointer = (0, reference_counted_pointer_1.createReferenceCountedPointer)(loadedField);
|
86
|
+
const clonedPointers = loadedReferences.map(([refCountedPointer]) => {
|
87
|
+
const clonedRefCountedPointer = refCountedPointer.cloneIfNotDisposed();
|
88
|
+
if (clonedRefCountedPointer == null) {
|
89
|
+
throw new Error('This reference counted pointer has already been disposed. \
|
90
|
+
This is indicative of a bug in useSkipLimitPagination.');
|
91
|
+
}
|
92
|
+
return clonedRefCountedPointer;
|
93
|
+
});
|
94
|
+
clonedPointers.push(newPointer);
|
95
|
+
const totalItemCleanupPair = [
|
96
|
+
clonedPointers,
|
97
|
+
() => {
|
98
|
+
clonedPointers.forEach(([, dispose]) => {
|
99
|
+
dispose();
|
100
|
+
});
|
101
|
+
},
|
102
|
+
];
|
103
|
+
setState(totalItemCleanupPair);
|
104
|
+
};
|
105
|
+
const [, rerender] = (0, react_1.useState)({});
|
106
|
+
const loadedReferences = state === react_disposable_state_1.UNASSIGNED_STATE ? [] : state;
|
107
|
+
const mostRecentItem = loadedReferences[loadedReferences.length - 1];
|
108
|
+
const mostRecentFragmentReference = mostRecentItem === null || mostRecentItem === void 0 ? void 0 : mostRecentItem[0].getItemIfNotDisposed();
|
109
|
+
if (mostRecentItem && mostRecentFragmentReference === null) {
|
110
|
+
throw new Error('FragmentReference is unexpectedly disposed. \
|
111
|
+
This is indicative of a bug in Isograph.');
|
112
|
+
}
|
113
|
+
const networkRequestStatus = mostRecentFragmentReference &&
|
114
|
+
(0, PromiseWrapper_1.getPromiseState)(mostRecentFragmentReference.networkRequest);
|
115
|
+
const slicedFragmentReferences = (networkRequestStatus === null || networkRequestStatus === void 0 ? void 0 : networkRequestStatus.kind) === 'Ok'
|
116
|
+
? loadedReferences
|
117
|
+
: loadedReferences.slice(0, loadedReferences.length - 1);
|
118
|
+
const completedFragmentReferences = slicedFragmentReferences.map(([pointer]) => {
|
119
|
+
const fragmentReference = pointer.getItemIfNotDisposed();
|
120
|
+
if (fragmentReference == null) {
|
121
|
+
throw new Error('FragmentReference is unexpectedly disposed. \
|
122
|
+
This is indicative of a bug in Isograph.');
|
123
|
+
}
|
124
|
+
return fragmentReference;
|
125
|
+
});
|
126
|
+
const readOutDataAndRecords = completedFragmentReferences.map((fragmentReference) => (0, read_1.readButDoNotEvaluate)(environment, fragmentReference, networkRequestOptions));
|
127
|
+
(0, useReadAndSubscribe_1.useSubscribeToMultiple)(subscribeCompletedFragmentReferences(completedFragmentReferences));
|
128
|
+
if (!networkRequestStatus) {
|
129
|
+
return {
|
130
|
+
kind: 'Complete',
|
131
|
+
fetchMore: getFetchMore((_a = initialState === null || initialState === void 0 ? void 0 : initialState.endCursor) !== null && _a !== void 0 ? _a : null),
|
132
|
+
results: [],
|
133
|
+
hasNextPage: (_b = initialState === null || initialState === void 0 ? void 0 : initialState.hasNextPage) !== null && _b !== void 0 ? _b : true,
|
134
|
+
};
|
135
|
+
}
|
136
|
+
switch (networkRequestStatus.kind) {
|
137
|
+
case 'Pending': {
|
138
|
+
const unsubscribe = (0, cache_1.subscribeToAnyChange)(environment, () => {
|
139
|
+
unsubscribe();
|
140
|
+
rerender({});
|
141
|
+
});
|
142
|
+
const results = readCompletedFragmentReferences(completedFragmentReferences);
|
143
|
+
return {
|
144
|
+
results: results.edges,
|
145
|
+
kind: 'Pending',
|
146
|
+
pendingFragment: mostRecentFragmentReference,
|
147
|
+
};
|
148
|
+
}
|
149
|
+
case 'Err': {
|
150
|
+
throw networkRequestStatus.error;
|
151
|
+
}
|
152
|
+
case 'Ok': {
|
153
|
+
const results = readCompletedFragmentReferences(completedFragmentReferences);
|
154
|
+
return {
|
155
|
+
results: results.edges,
|
156
|
+
hasNextPage: results.pageInfo.hasNextPage,
|
157
|
+
kind: 'Complete',
|
158
|
+
fetchMore: getFetchMore(results.pageInfo.endCursor),
|
159
|
+
};
|
160
|
+
}
|
161
|
+
}
|
162
|
+
}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
type UseImperativeLoadableFieldReturn<TArgs> = {
|
1
|
+
export type UseImperativeLoadableFieldReturn<TArgs> = {
|
2
2
|
loadField: (args: TArgs) => void;
|
3
3
|
};
|
4
4
|
export declare function useImperativeExposedMutationField<TArgs>(exposedField: (args: TArgs) => [string, () => void]): UseImperativeLoadableFieldReturn<TArgs>;
|
5
|
-
|
5
|
+
//# sourceMappingURL=useImperativeExposedMutationField.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useImperativeExposedMutationField.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useImperativeExposedMutationField.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gCAAgC,CAAC,KAAK,IAAI;IACpD,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC;AAKF,wBAAgB,iCAAiC,CAAC,KAAK,EACrD,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,GAClD,gCAAgC,CAAC,KAAK,CAAC,CAOzC"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.useImperativeExposedMutationField =
|
3
|
+
exports.useImperativeExposedMutationField = useImperativeExposedMutationField;
|
4
4
|
// Note: this function doesn't seem to work if there are additional arguments,
|
5
5
|
// e.g. with set_pet_tagline. Why? This seems to straightforwardly call
|
6
6
|
// exposedField(args)[1](); Odd.
|
@@ -12,4 +12,3 @@ function useImperativeExposedMutationField(exposedField) {
|
|
12
12
|
},
|
13
13
|
};
|
14
14
|
}
|
15
|
-
exports.useImperativeExposedMutationField = useImperativeExposedMutationField;
|
@@ -1,9 +1,15 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import { FetchOptions } from '../core/check';
|
2
|
+
import { ExtractParameters, FragmentReference } from '../core/FragmentReference';
|
3
3
|
import { LoadableField } from '../core/reader';
|
4
|
-
type UseImperativeLoadableFieldReturn<
|
5
|
-
|
6
|
-
|
4
|
+
export type UseImperativeLoadableFieldReturn<TReadFromStore extends {
|
5
|
+
data: object;
|
6
|
+
parameters: object;
|
7
|
+
}, TResult, TProvidedArgs extends object> = {
|
8
|
+
fragmentReference: FragmentReference<TReadFromStore, TResult> | null;
|
9
|
+
loadField: (args: Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs> | void, fetchOptions?: FetchOptions<TResult>) => void;
|
7
10
|
};
|
8
|
-
export declare function useImperativeLoadableField<
|
9
|
-
|
11
|
+
export declare function useImperativeLoadableField<TReadFromStore extends {
|
12
|
+
data: object;
|
13
|
+
parameters: object;
|
14
|
+
}, TResult, TProvidedArgs extends object>(loadableField: LoadableField<TReadFromStore, TResult, Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>>): UseImperativeLoadableFieldReturn<TReadFromStore, TResult, TProvidedArgs>;
|
15
|
+
//# sourceMappingURL=useImperativeLoadableField.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useImperativeLoadableField.d.ts","sourceRoot":"","sources":["../../src/loadable-hooks/useImperativeLoadableField.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,gCAAgC,CAC1C,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EACP,aAAa,SAAS,MAAM,IAC1B;IACF,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACrE,SAAS,EAAE,CAGT,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,GAAG,IAAI,EACzE,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,KACjC,IAAI,CAAC;CACX,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,cAAc,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EACP,aAAa,SAAS,MAAM,EAE5B,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,OAAO,EACP,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAC7D,GACA,gCAAgC,CAAC,cAAc,EAAE,OAAO,EAAE,aAAa,CAAC,CAc1E"}
|
@@ -1,15 +1,14 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.useImperativeLoadableField =
|
3
|
+
exports.useImperativeLoadableField = useImperativeLoadableField;
|
4
4
|
const react_disposable_state_1 = require("@isograph/react-disposable-state");
|
5
5
|
function useImperativeLoadableField(loadableField) {
|
6
6
|
const { state, setState } = (0, react_disposable_state_1.useUpdatableDisposableState)();
|
7
7
|
return {
|
8
|
-
loadField: (args) => {
|
9
|
-
const [_id, loader] = loadableField(args);
|
8
|
+
loadField: (args, fetchOptions) => {
|
9
|
+
const [_id, loader] = loadableField(args, fetchOptions !== null && fetchOptions !== void 0 ? fetchOptions : {});
|
10
10
|
setState(loader());
|
11
11
|
},
|
12
|
-
fragmentReference: state,
|
12
|
+
fragmentReference: state !== react_disposable_state_1.UNASSIGNED_STATE ? state : null,
|
13
13
|
};
|
14
14
|
}
|
15
|
-
exports.useImperativeLoadableField = useImperativeLoadableField;
|