@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.
@@ -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-2c0984c6 compile-libs /home/runner/work/isograph/isograph/libs/isograph-react
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> extends Record<PropertyKey, never> ? [
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,CAC3C,cAAc,EACd,aAAa,CACd,SAAS,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,GAChC;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"}
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> extends Record<PropertyKey, never> ? {
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":"AAAA,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,SAAS,MAAM,CACnE,WAAW,EACX,KAAK,CACN,GACG;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
+ {"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> extends Record<PropertyKey, never> ? {
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,SAAS,MAAM,CACnE,WAAW,EACX,KAAK,CACN,GACG;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"}
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-2c0984c6",
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-2c0984c6",
23
- "@isograph/react-disposable-state": "0.0.0-main-2c0984c6",
24
- "@isograph/reference-counted-pointer": "0.0.0-main-2c0984c6"
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
- > extends Record<PropertyKey, never>
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> extends Record<
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> extends Record<
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
+ }