@isograph/react 0.0.0-main-2c0984c6 → 0.0.0-main-c29b1443
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/loadable-hooks/useClientSideDefer.d.ts +1 -1
- package/dist/loadable-hooks/useClientSideDefer.d.ts.map +1 -1
- package/dist/loadable-hooks/useClientSideDefer.js +32 -0
- package/dist/react/LoadableFieldReader.d.ts +1 -1
- package/dist/react/LoadableFieldReader.d.ts.map +1 -1
- package/dist/react/LoadableFieldReader.js +37 -0
- package/dist/react/LoadableFieldRenderer.d.ts +1 -1
- package/dist/react/LoadableFieldRenderer.d.ts.map +1 -1
- package/dist/react/LoadableFieldRenderer.js +33 -0
- package/package.json +4 -4
- package/src/loadable-hooks/useClientSideDefer.ts +62 -2
- package/src/react/LoadableFieldReader.tsx +94 -4
- package/src/react/LoadableFieldRenderer.tsx +93 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
../.. | WARN Unsupported engine: wanted: {"node":"22.9.0"} (current: {"node":"v22.20.0","pnpm":"10.15.0"})
|
|
2
2
|
|
|
3
|
-
> @isograph/react@0.0.0-main-
|
|
3
|
+
> @isograph/react@0.0.0-main-c29b1443 compile-libs /home/runner/work/isograph/isograph/libs/isograph-react
|
|
4
4
|
> rimraf dist && tsc -p tsconfig.pkg.json
|
|
5
5
|
|
|
@@ -2,7 +2,7 @@ import { FetchOptions } from '../core/check';
|
|
|
2
2
|
import { ExtractParameters, FragmentReference, type UnknownTReadFromStore } from '../core/FragmentReference';
|
|
3
3
|
import { LoadableField } from '../core/reader';
|
|
4
4
|
type ArgsWithoutProvidedArgs<TReadFromStore extends UnknownTReadFromStore, TProvidedArgs extends object> = Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>;
|
|
5
|
-
export declare function useClientSideDefer<TReadFromStore extends UnknownTReadFromStore, TResult, TProvidedArgs extends object>(loadableField: LoadableField<TReadFromStore, TResult, Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>>, ...maybeRequiredArgs: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>
|
|
5
|
+
export declare function useClientSideDefer<TReadFromStore extends UnknownTReadFromStore, TResult, TProvidedArgs extends object>(loadableField: LoadableField<TReadFromStore, TResult, Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>>, ...maybeRequiredArgs: {} extends ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs> ? [
|
|
6
6
|
args?: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>,
|
|
7
7
|
fetchOptions?: FetchOptions<TResult>
|
|
8
8
|
] : [
|
|
@@ -1 +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,KAAK,uBAAuB,CAC1B,cAAc,SAAS,qBAAqB,EAC5C,aAAa,SAAS,MAAM,IAC1B,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAAC;AAEjE,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,GAAG,iBAAiB,EAAE,uBAAuB,
|
|
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,KAAK,uBAAuB,CAC1B,cAAc,SAAS,qBAAqB,EAC5C,aAAa,SAAS,MAAM,IAC1B,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAAC;AAEjE,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,GAAG,iBAAiB,EAAE,EAAE,SAAS,uBAAuB,CACtD,cAAc,EACd,aAAa,CACd,GACG;IACE,IAAI,CAAC,EAAE,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC;IAC7D,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC;CACrC,GACD;IACE,IAAI,EAAE,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC;IAC5D,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC;CACrC,GACJ;IAAE,iBAAiB,EAAE,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;CAAE,CAUnE"}
|
|
@@ -12,3 +12,35 @@ function useClientSideDefer(loadableField, ...maybeRequiredArgs) {
|
|
|
12
12
|
const fragmentReference = (0, react_disposable_state_1.useLazyDisposableState)(cache).state;
|
|
13
13
|
return { fragmentReference };
|
|
14
14
|
}
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
function tsTests() {
|
|
17
|
+
let neverArgs;
|
|
18
|
+
let optionalArgs;
|
|
19
|
+
let requiredArgs;
|
|
20
|
+
useClientSideDefer(neverArgs);
|
|
21
|
+
useClientSideDefer(neverArgs, {});
|
|
22
|
+
useClientSideDefer(neverArgs, {
|
|
23
|
+
// @ts-expect-error
|
|
24
|
+
foo: 'bar',
|
|
25
|
+
});
|
|
26
|
+
useClientSideDefer(optionalArgs);
|
|
27
|
+
useClientSideDefer(optionalArgs, {});
|
|
28
|
+
useClientSideDefer(optionalArgs, {
|
|
29
|
+
foo: 'bar',
|
|
30
|
+
});
|
|
31
|
+
useClientSideDefer(optionalArgs, {
|
|
32
|
+
// @ts-expect-error
|
|
33
|
+
foo: 12,
|
|
34
|
+
});
|
|
35
|
+
// @ts-expect-error
|
|
36
|
+
useClientSideDefer(requiredArgs);
|
|
37
|
+
// @ts-expect-error
|
|
38
|
+
useClientSideDefer(requiredArgs, {});
|
|
39
|
+
useClientSideDefer(requiredArgs, {
|
|
40
|
+
foo: 'bar',
|
|
41
|
+
});
|
|
42
|
+
useClientSideDefer(requiredArgs, {
|
|
43
|
+
// @ts-expect-error
|
|
44
|
+
foo: 12,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
@@ -3,7 +3,7 @@ import { ExtractParameters, type UnknownTReadFromStore } from '../core/FragmentR
|
|
|
3
3
|
import { type NetworkRequestReaderOptions } from '../core/read';
|
|
4
4
|
import { type LoadableField } from '../core/reader';
|
|
5
5
|
type ArgsWithoutProvidedArgs<TReadFromStore extends UnknownTReadFromStore, TProvidedArgs extends object> = Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>;
|
|
6
|
-
type MaybeRequiredArgs<TReadFromStore extends UnknownTReadFromStore, TProvidedArgs extends object> = ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>
|
|
6
|
+
type MaybeRequiredArgs<TReadFromStore extends UnknownTReadFromStore, TProvidedArgs extends object> = {} extends ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs> ? {
|
|
7
7
|
args?: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;
|
|
8
8
|
} : {
|
|
9
9
|
args: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadableFieldReader.d.ts","sourceRoot":"","sources":["../../src/react/LoadableFieldReader.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LoadableFieldReader.d.ts","sourceRoot":"","sources":["../../src/react/LoadableFieldReader.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIpD,KAAK,uBAAuB,CAC1B,cAAc,SAAS,qBAAqB,EAC5C,aAAa,SAAS,MAAM,IAC1B,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAAC;AAEjE,KAAK,iBAAiB,CACpB,cAAc,SAAS,qBAAqB,EAC5C,aAAa,SAAS,MAAM,IAE5B,EAAE,SAAS,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC,GAC7D;IACE,IAAI,CAAC,EAAE,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CAC/D,GACD;IACE,IAAI,EAAE,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CAC9D,CAAC;AAER,wBAAgB,mBAAmB,CACjC,cAAc,SAAS,qBAAqB,EAC5C,OAAO,EACP,aAAa,SAAS,MAAM,EAC5B,eAAe,EAEf,KAAK,EAAE;IACL,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,OAAO,EACP,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAC7D,CAAC;IACF,YAAY,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC7D,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,eAAe,CAAC;CAC7C,GAAG,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,GACnD,eAAe,CAcjB"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.LoadableFieldReader = LoadableFieldReader;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
4
8
|
const useClientSideDefer_1 = require("../loadable-hooks/useClientSideDefer");
|
|
5
9
|
const useResult_1 = require("./useResult");
|
|
6
10
|
function LoadableFieldReader(props) {
|
|
@@ -10,3 +14,36 @@ function LoadableFieldReader(props) {
|
|
|
10
14
|
const readOutFragmentData = (0, useResult_1.useResult)(fragmentReference, props.networkRequestOptions);
|
|
11
15
|
return props.children(readOutFragmentData);
|
|
12
16
|
}
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
function tsTests() {
|
|
19
|
+
let neverArgs;
|
|
20
|
+
let optionalArgs;
|
|
21
|
+
let requiredArgs;
|
|
22
|
+
react_1.default.createElement(LoadableFieldReader, { loadableField: neverArgs, children: () => { } });
|
|
23
|
+
react_1.default.createElement(LoadableFieldReader, { loadableField: neverArgs, children: () => { }, args: {} });
|
|
24
|
+
react_1.default.createElement(LoadableFieldReader, { loadableField: neverArgs, children: () => { }, args: {
|
|
25
|
+
// @ts-expect-error
|
|
26
|
+
foo: 'bar',
|
|
27
|
+
} });
|
|
28
|
+
react_1.default.createElement(LoadableFieldReader, { loadableField: optionalArgs, children: () => { } });
|
|
29
|
+
react_1.default.createElement(LoadableFieldReader, { loadableField: optionalArgs, children: () => { }, args: {} });
|
|
30
|
+
react_1.default.createElement(LoadableFieldReader, { loadableField: optionalArgs, children: () => { }, args: {
|
|
31
|
+
foo: 'bar',
|
|
32
|
+
} });
|
|
33
|
+
react_1.default.createElement(LoadableFieldReader, { loadableField: optionalArgs, children: () => { }, args: {
|
|
34
|
+
// @ts-expect-error
|
|
35
|
+
foo: 12,
|
|
36
|
+
} });
|
|
37
|
+
// @ts-expect-error
|
|
38
|
+
react_1.default.createElement(LoadableFieldReader, { loadableField: requiredArgs, children: () => { } });
|
|
39
|
+
react_1.default.createElement(LoadableFieldReader, { loadableField: requiredArgs, children: () => { },
|
|
40
|
+
// @ts-expect-error
|
|
41
|
+
args: {} });
|
|
42
|
+
react_1.default.createElement(LoadableFieldReader, { loadableField: requiredArgs, children: () => { }, args: {
|
|
43
|
+
foo: 'bar',
|
|
44
|
+
} });
|
|
45
|
+
react_1.default.createElement(LoadableFieldReader, { loadableField: requiredArgs, children: () => { }, args: {
|
|
46
|
+
// @ts-expect-error
|
|
47
|
+
foo: 12,
|
|
48
|
+
} });
|
|
49
|
+
}
|
|
@@ -4,7 +4,7 @@ import { ExtractParameters, type UnknownTReadFromStore } from '../core/FragmentR
|
|
|
4
4
|
import { type NetworkRequestReaderOptions } from '../core/read';
|
|
5
5
|
import { type LoadableField } from '../core/reader';
|
|
6
6
|
type ArgsWithoutProvidedArgs<TReadFromStore extends UnknownTReadFromStore, TProvidedArgs extends object> = Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>;
|
|
7
|
-
type MaybeRequiredArgs<TReadFromStore extends UnknownTReadFromStore, TProvidedArgs extends object> = ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>
|
|
7
|
+
type MaybeRequiredArgs<TReadFromStore extends UnknownTReadFromStore, TProvidedArgs extends object> = {} extends ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs> ? {
|
|
8
8
|
args?: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;
|
|
9
9
|
} : {
|
|
10
10
|
args: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadableFieldRenderer.d.ts","sourceRoot":"","sources":["../../src/react/LoadableFieldRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIpD,KAAK,uBAAuB,CAC1B,cAAc,SAAS,qBAAqB,EAC5C,aAAa,SAAS,MAAM,IAC1B,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAAC;AAEjE,KAAK,iBAAiB,CACpB,cAAc,SAAS,qBAAqB,EAC5C,aAAa,SAAS,MAAM,IAE5B,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"LoadableFieldRenderer.d.ts","sourceRoot":"","sources":["../../src/react/LoadableFieldRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIpD,KAAK,uBAAuB,CAC1B,cAAc,SAAS,qBAAqB,EAC5C,aAAa,SAAS,MAAM,IAC1B,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAAC;AAEjE,KAAK,iBAAiB,CACpB,cAAc,SAAS,qBAAqB,EAC5C,aAAa,SAAS,MAAM,IAE5B,EAAE,SAAS,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC,GAC7D;IACE,IAAI,CAAC,EAAE,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CAC/D,GACD;IACE,IAAI,EAAE,uBAAuB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CAC9D,CAAC;AAER,wBAAgB,qBAAqB,CACnC,cAAc,SAAS,qBAAqB,EAC5C,aAAa,SAAS,MAAM,EAC5B,eAAe,EACf,MAAM,EAEN,KAAK,EAAE;IACL,aAAa,EAAE,aAAa,CAC1B,cAAc,EACd,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAChB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,aAAa,CAAC,CAC7D,CAAC;IACF,YAAY,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC7D,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,mBAAmB,CAAC,CAAC;CAC9D,GAAG,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,GACnD,eAAe,CAcjB"}
|
|
@@ -37,3 +37,36 @@ function LoadableFieldRenderer(props) {
|
|
|
37
37
|
// @ts-expect-error
|
|
38
38
|
return React.createElement(Component, Object.assign({}, props.additionalProps));
|
|
39
39
|
}
|
|
40
|
+
// @ts-ignore
|
|
41
|
+
function tsTests() {
|
|
42
|
+
let neverArgs;
|
|
43
|
+
let optionalArgs;
|
|
44
|
+
let requiredArgs;
|
|
45
|
+
React.createElement(LoadableFieldRenderer, { loadableField: neverArgs, additionalProps: {} });
|
|
46
|
+
React.createElement(LoadableFieldRenderer, { loadableField: neverArgs, additionalProps: {}, args: {} });
|
|
47
|
+
React.createElement(LoadableFieldRenderer, { loadableField: neverArgs, additionalProps: {}, args: {
|
|
48
|
+
// @ts-expect-error
|
|
49
|
+
foo: 'bar',
|
|
50
|
+
} });
|
|
51
|
+
React.createElement(LoadableFieldRenderer, { loadableField: optionalArgs, additionalProps: {} });
|
|
52
|
+
React.createElement(LoadableFieldRenderer, { loadableField: optionalArgs, additionalProps: {}, args: {} });
|
|
53
|
+
React.createElement(LoadableFieldRenderer, { loadableField: optionalArgs, additionalProps: {}, args: {
|
|
54
|
+
foo: 'bar',
|
|
55
|
+
} });
|
|
56
|
+
React.createElement(LoadableFieldRenderer, { loadableField: optionalArgs, additionalProps: {}, args: {
|
|
57
|
+
// @ts-expect-error
|
|
58
|
+
foo: 12,
|
|
59
|
+
} });
|
|
60
|
+
// @ts-expect-error
|
|
61
|
+
React.createElement(LoadableFieldRenderer, { loadableField: requiredArgs, additionalProps: {} });
|
|
62
|
+
React.createElement(LoadableFieldRenderer, { loadableField: requiredArgs, additionalProps: {},
|
|
63
|
+
// @ts-expect-error
|
|
64
|
+
args: {} });
|
|
65
|
+
React.createElement(LoadableFieldRenderer, { loadableField: requiredArgs, additionalProps: {}, args: {
|
|
66
|
+
foo: 'bar',
|
|
67
|
+
} });
|
|
68
|
+
React.createElement(LoadableFieldRenderer, { loadableField: requiredArgs, additionalProps: {}, args: {
|
|
69
|
+
// @ts-expect-error
|
|
70
|
+
foo: 12,
|
|
71
|
+
} });
|
|
72
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@isograph/react",
|
|
3
|
-
"version": "0.0.0-main-
|
|
3
|
+
"version": "0.0.0-main-c29b1443",
|
|
4
4
|
"description": "Use Isograph with React",
|
|
5
5
|
"homepage": "https://isograph.dev",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"iso": "cross-env ISO_PRINT_ABSOLUTE_FILEPATH=1 ../../target/debug/isograph_cli --config ./isograph.config.json"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@isograph/disposable-types": "0.0.0-main-
|
|
23
|
-
"@isograph/react-disposable-state": "0.0.0-main-
|
|
24
|
-
"@isograph/reference-counted-pointer": "0.0.0-main-
|
|
22
|
+
"@isograph/disposable-types": "0.0.0-main-c29b1443",
|
|
23
|
+
"@isograph/react-disposable-state": "0.0.0-main-c29b1443",
|
|
24
|
+
"@isograph/reference-counted-pointer": "0.0.0-main-c29b1443"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"react": "^18.0.0 || ^19.0.0"
|
|
@@ -24,10 +24,10 @@ export function useClientSideDefer<
|
|
|
24
24
|
TResult,
|
|
25
25
|
Omit<ExtractParameters<TReadFromStore>, keyof TProvidedArgs>
|
|
26
26
|
>,
|
|
27
|
-
...maybeRequiredArgs: ArgsWithoutProvidedArgs<
|
|
27
|
+
...maybeRequiredArgs: {} extends ArgsWithoutProvidedArgs<
|
|
28
28
|
TReadFromStore,
|
|
29
29
|
TProvidedArgs
|
|
30
|
-
>
|
|
30
|
+
>
|
|
31
31
|
? [
|
|
32
32
|
args?: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>,
|
|
33
33
|
fetchOptions?: FetchOptions<TResult>,
|
|
@@ -47,3 +47,63 @@ export function useClientSideDefer<
|
|
|
47
47
|
|
|
48
48
|
return { fragmentReference };
|
|
49
49
|
}
|
|
50
|
+
|
|
51
|
+
// @ts-ignore
|
|
52
|
+
function tsTests() {
|
|
53
|
+
let neverArgs!: LoadableField<
|
|
54
|
+
{
|
|
55
|
+
parameters: Record<string, never>;
|
|
56
|
+
data: {};
|
|
57
|
+
},
|
|
58
|
+
unknown
|
|
59
|
+
>;
|
|
60
|
+
|
|
61
|
+
let optionalArgs!: LoadableField<
|
|
62
|
+
{
|
|
63
|
+
parameters: {
|
|
64
|
+
foo?: string;
|
|
65
|
+
};
|
|
66
|
+
data: {};
|
|
67
|
+
},
|
|
68
|
+
unknown
|
|
69
|
+
>;
|
|
70
|
+
|
|
71
|
+
let requiredArgs!: LoadableField<
|
|
72
|
+
{
|
|
73
|
+
parameters: {
|
|
74
|
+
foo: string;
|
|
75
|
+
};
|
|
76
|
+
data: {};
|
|
77
|
+
},
|
|
78
|
+
unknown
|
|
79
|
+
>;
|
|
80
|
+
|
|
81
|
+
useClientSideDefer(neverArgs);
|
|
82
|
+
useClientSideDefer(neverArgs, {});
|
|
83
|
+
useClientSideDefer(neverArgs, {
|
|
84
|
+
// @ts-expect-error
|
|
85
|
+
foo: 'bar',
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
useClientSideDefer(optionalArgs);
|
|
89
|
+
useClientSideDefer(optionalArgs, {});
|
|
90
|
+
useClientSideDefer(optionalArgs, {
|
|
91
|
+
foo: 'bar',
|
|
92
|
+
});
|
|
93
|
+
useClientSideDefer(optionalArgs, {
|
|
94
|
+
// @ts-expect-error
|
|
95
|
+
foo: 12,
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
// @ts-expect-error
|
|
99
|
+
useClientSideDefer(requiredArgs);
|
|
100
|
+
// @ts-expect-error
|
|
101
|
+
useClientSideDefer(requiredArgs, {});
|
|
102
|
+
useClientSideDefer(requiredArgs, {
|
|
103
|
+
foo: 'bar',
|
|
104
|
+
});
|
|
105
|
+
useClientSideDefer(requiredArgs, {
|
|
106
|
+
// @ts-expect-error
|
|
107
|
+
foo: 12,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import { type FetchOptions } from '../core/check';
|
|
2
3
|
import {
|
|
3
4
|
ExtractParameters,
|
|
@@ -17,10 +18,7 @@ type MaybeRequiredArgs<
|
|
|
17
18
|
TReadFromStore extends UnknownTReadFromStore,
|
|
18
19
|
TProvidedArgs extends object,
|
|
19
20
|
> =
|
|
20
|
-
ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>
|
|
21
|
-
PropertyKey,
|
|
22
|
-
never
|
|
23
|
-
>
|
|
21
|
+
{} extends ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>
|
|
24
22
|
? {
|
|
25
23
|
args?: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;
|
|
26
24
|
}
|
|
@@ -59,3 +57,95 @@ export function LoadableFieldReader<
|
|
|
59
57
|
|
|
60
58
|
return props.children(readOutFragmentData);
|
|
61
59
|
}
|
|
60
|
+
|
|
61
|
+
// @ts-ignore
|
|
62
|
+
function tsTests() {
|
|
63
|
+
let neverArgs!: LoadableField<
|
|
64
|
+
{
|
|
65
|
+
parameters: Record<string, never>;
|
|
66
|
+
data: {};
|
|
67
|
+
},
|
|
68
|
+
unknown
|
|
69
|
+
>;
|
|
70
|
+
|
|
71
|
+
let optionalArgs!: LoadableField<
|
|
72
|
+
{
|
|
73
|
+
parameters: {
|
|
74
|
+
foo?: string;
|
|
75
|
+
};
|
|
76
|
+
data: {};
|
|
77
|
+
},
|
|
78
|
+
unknown
|
|
79
|
+
>;
|
|
80
|
+
|
|
81
|
+
let requiredArgs!: LoadableField<
|
|
82
|
+
{
|
|
83
|
+
parameters: {
|
|
84
|
+
foo: string;
|
|
85
|
+
};
|
|
86
|
+
data: {};
|
|
87
|
+
},
|
|
88
|
+
unknown
|
|
89
|
+
>;
|
|
90
|
+
|
|
91
|
+
<LoadableFieldReader loadableField={neverArgs} children={() => {}} />;
|
|
92
|
+
<LoadableFieldReader
|
|
93
|
+
loadableField={neverArgs}
|
|
94
|
+
children={() => {}}
|
|
95
|
+
args={{}}
|
|
96
|
+
/>;
|
|
97
|
+
<LoadableFieldReader
|
|
98
|
+
loadableField={neverArgs}
|
|
99
|
+
children={() => {}}
|
|
100
|
+
args={{
|
|
101
|
+
// @ts-expect-error
|
|
102
|
+
foo: 'bar',
|
|
103
|
+
}}
|
|
104
|
+
/>;
|
|
105
|
+
|
|
106
|
+
<LoadableFieldReader loadableField={optionalArgs} children={() => {}} />;
|
|
107
|
+
<LoadableFieldReader
|
|
108
|
+
loadableField={optionalArgs}
|
|
109
|
+
children={() => {}}
|
|
110
|
+
args={{}}
|
|
111
|
+
/>;
|
|
112
|
+
<LoadableFieldReader
|
|
113
|
+
loadableField={optionalArgs}
|
|
114
|
+
children={() => {}}
|
|
115
|
+
args={{
|
|
116
|
+
foo: 'bar',
|
|
117
|
+
}}
|
|
118
|
+
/>;
|
|
119
|
+
<LoadableFieldReader
|
|
120
|
+
loadableField={optionalArgs}
|
|
121
|
+
children={() => {}}
|
|
122
|
+
args={{
|
|
123
|
+
// @ts-expect-error
|
|
124
|
+
foo: 12,
|
|
125
|
+
}}
|
|
126
|
+
/>;
|
|
127
|
+
|
|
128
|
+
// @ts-expect-error
|
|
129
|
+
<LoadableFieldReader loadableField={requiredArgs} children={() => {}} />;
|
|
130
|
+
<LoadableFieldReader
|
|
131
|
+
loadableField={requiredArgs}
|
|
132
|
+
children={() => {}}
|
|
133
|
+
// @ts-expect-error
|
|
134
|
+
args={{}}
|
|
135
|
+
/>;
|
|
136
|
+
<LoadableFieldReader
|
|
137
|
+
loadableField={requiredArgs}
|
|
138
|
+
children={() => {}}
|
|
139
|
+
args={{
|
|
140
|
+
foo: 'bar',
|
|
141
|
+
}}
|
|
142
|
+
/>;
|
|
143
|
+
<LoadableFieldReader
|
|
144
|
+
loadableField={requiredArgs}
|
|
145
|
+
children={() => {}}
|
|
146
|
+
args={{
|
|
147
|
+
// @ts-expect-error
|
|
148
|
+
foo: 12,
|
|
149
|
+
}}
|
|
150
|
+
/>;
|
|
151
|
+
}
|
|
@@ -18,10 +18,7 @@ type MaybeRequiredArgs<
|
|
|
18
18
|
TReadFromStore extends UnknownTReadFromStore,
|
|
19
19
|
TProvidedArgs extends object,
|
|
20
20
|
> =
|
|
21
|
-
ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>
|
|
22
|
-
PropertyKey,
|
|
23
|
-
never
|
|
24
|
-
>
|
|
21
|
+
{} extends ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>
|
|
25
22
|
? {
|
|
26
23
|
args?: ArgsWithoutProvidedArgs<TReadFromStore, TProvidedArgs>;
|
|
27
24
|
}
|
|
@@ -60,3 +57,95 @@ export function LoadableFieldRenderer<
|
|
|
60
57
|
// @ts-expect-error
|
|
61
58
|
return <Component {...props.additionalProps} />;
|
|
62
59
|
}
|
|
60
|
+
|
|
61
|
+
// @ts-ignore
|
|
62
|
+
function tsTests() {
|
|
63
|
+
let neverArgs!: LoadableField<
|
|
64
|
+
{
|
|
65
|
+
parameters: Record<string, never>;
|
|
66
|
+
data: {};
|
|
67
|
+
},
|
|
68
|
+
() => React.ReactNode
|
|
69
|
+
>;
|
|
70
|
+
|
|
71
|
+
let optionalArgs!: LoadableField<
|
|
72
|
+
{
|
|
73
|
+
parameters: {
|
|
74
|
+
foo?: string;
|
|
75
|
+
};
|
|
76
|
+
data: {};
|
|
77
|
+
},
|
|
78
|
+
() => React.ReactNode
|
|
79
|
+
>;
|
|
80
|
+
|
|
81
|
+
let requiredArgs!: LoadableField<
|
|
82
|
+
{
|
|
83
|
+
parameters: {
|
|
84
|
+
foo: string;
|
|
85
|
+
};
|
|
86
|
+
data: {};
|
|
87
|
+
},
|
|
88
|
+
() => React.ReactNode
|
|
89
|
+
>;
|
|
90
|
+
|
|
91
|
+
<LoadableFieldRenderer loadableField={neverArgs} additionalProps={{}} />;
|
|
92
|
+
<LoadableFieldRenderer
|
|
93
|
+
loadableField={neverArgs}
|
|
94
|
+
additionalProps={{}}
|
|
95
|
+
args={{}}
|
|
96
|
+
/>;
|
|
97
|
+
<LoadableFieldRenderer
|
|
98
|
+
loadableField={neverArgs}
|
|
99
|
+
additionalProps={{}}
|
|
100
|
+
args={{
|
|
101
|
+
// @ts-expect-error
|
|
102
|
+
foo: 'bar',
|
|
103
|
+
}}
|
|
104
|
+
/>;
|
|
105
|
+
|
|
106
|
+
<LoadableFieldRenderer loadableField={optionalArgs} additionalProps={{}} />;
|
|
107
|
+
<LoadableFieldRenderer
|
|
108
|
+
loadableField={optionalArgs}
|
|
109
|
+
additionalProps={{}}
|
|
110
|
+
args={{}}
|
|
111
|
+
/>;
|
|
112
|
+
<LoadableFieldRenderer
|
|
113
|
+
loadableField={optionalArgs}
|
|
114
|
+
additionalProps={{}}
|
|
115
|
+
args={{
|
|
116
|
+
foo: 'bar',
|
|
117
|
+
}}
|
|
118
|
+
/>;
|
|
119
|
+
<LoadableFieldRenderer
|
|
120
|
+
loadableField={optionalArgs}
|
|
121
|
+
additionalProps={{}}
|
|
122
|
+
args={{
|
|
123
|
+
// @ts-expect-error
|
|
124
|
+
foo: 12,
|
|
125
|
+
}}
|
|
126
|
+
/>;
|
|
127
|
+
|
|
128
|
+
// @ts-expect-error
|
|
129
|
+
<LoadableFieldRenderer loadableField={requiredArgs} additionalProps={{}} />;
|
|
130
|
+
<LoadableFieldRenderer
|
|
131
|
+
loadableField={requiredArgs}
|
|
132
|
+
additionalProps={{}}
|
|
133
|
+
// @ts-expect-error
|
|
134
|
+
args={{}}
|
|
135
|
+
/>;
|
|
136
|
+
<LoadableFieldRenderer
|
|
137
|
+
loadableField={requiredArgs}
|
|
138
|
+
additionalProps={{}}
|
|
139
|
+
args={{
|
|
140
|
+
foo: 'bar',
|
|
141
|
+
}}
|
|
142
|
+
/>;
|
|
143
|
+
<LoadableFieldRenderer
|
|
144
|
+
loadableField={requiredArgs}
|
|
145
|
+
additionalProps={{}}
|
|
146
|
+
args={{
|
|
147
|
+
// @ts-expect-error
|
|
148
|
+
foo: 12,
|
|
149
|
+
}}
|
|
150
|
+
/>;
|
|
151
|
+
}
|