rescript-relay 3.0.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # master
2
2
 
3
+ # 3.1.0
4
+
5
+ - **Upgrade versions**: `react-relay` and `relay-runtime` to `18.2.0`.
6
+ - Add support for `Fragment.waitForFragmentData`, a new API in Relay 18.2 that lets you wait for fragment data outside of React.
7
+ - Experimental: Add a "non React" mode to the PPX, which makes sure only APIs that don't rely on React directly are exposed. This is intended to be a way to simplify using RescriptRelay without React. Activate by passing `-non-react` to the PPX, like `"ppx-flags": [["rescript-relay/ppx", "-non-react"]]`.
8
+
3
9
  # 3.0.1
4
10
 
5
11
  - Add `Environment.findAllConnectionIds` for finding all IDs of all connection instances for a specific connection, regardless of what configs that connection has been fetched (and cached) with.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rescript-relay",
3
- "version": "3.0.1",
3
+ "version": "3.1.0",
4
4
  "main": "src/RescriptRelay.res",
5
5
  "license": "MIT",
6
6
  "author": "Gabriel Nordeborn",
@@ -49,14 +49,14 @@
49
49
  "node-fetch": "^2.6.0",
50
50
  "react": "18.2.0",
51
51
  "react-dom": "18.2.0",
52
- "react-relay": "17.0.0",
53
- "relay-runtime": "17.0.0",
52
+ "react-relay": "18.2.0",
53
+ "relay-runtime": "18.2.0",
54
54
  "rescript": "11.1.1"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@rescript/react": ">=0.13.0",
58
- "react-relay": "17.0.0",
59
- "relay-runtime": "17.0.0",
58
+ "react-relay": "18.2.0",
59
+ "relay-runtime": "18.2.0",
60
60
  "rescript": "^11.0.0"
61
61
  },
62
62
  "dependencies": {
package/ppx-linux CHANGED
Binary file
package/ppx-macos-arm64 CHANGED
Binary file
package/ppx-macos-latest CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -10,8 +10,8 @@ var Caml_option = require("rescript/lib/js/caml_option.js");
10
10
  var ReactRelay = require("react-relay");
11
11
  var RelayRuntime = require("relay-runtime");
12
12
  var Caml_exceptions = require("rescript/lib/js/caml_exceptions.js");
13
- var LiveResolverStore = require("relay-runtime/lib/store/experimental-live-resolvers/LiveResolverStore");
14
- var LiveResolverStore$1 = require("relay-runtime/lib/store/experimental-live-resolvers/LiveResolverStore").default;
13
+ var LiveResolverStore = require("relay-runtime/lib/store/live-resolvers/LiveResolverStore").default;
14
+ var LiveResolverStore$1 = require("relay-runtime/lib/store/live-resolvers/LiveResolverStore");
15
15
 
16
16
  var SuspenseSentinel = {};
17
17
 
@@ -209,14 +209,14 @@ function make(source, gcReleaseBufferSize, queryCacheExpirationTime) {
209
209
  }
210
210
 
211
211
  function makeLiveStore(source, gcReleaseBufferSize, queryCacheExpirationTime) {
212
- return new LiveResolverStore$1(source, {
212
+ return new LiveResolverStore(source, {
213
213
  gcReleaseBufferSize: gcReleaseBufferSize,
214
214
  queryCacheExpirationTime: queryCacheExpirationTime
215
215
  });
216
216
  }
217
217
 
218
218
  function _makeLiveStoreCjs(source, gcReleaseBufferSize, queryCacheExpirationTime) {
219
- return new LiveResolverStore(source, {
219
+ return new LiveResolverStore$1(source, {
220
220
  gcReleaseBufferSize: gcReleaseBufferSize,
221
221
  queryCacheExpirationTime: queryCacheExpirationTime
222
222
  });
@@ -643,9 +643,9 @@ module Store = {
643
643
 
644
644
  @module @new
645
645
  external makeLiveStoreCjs: (RecordSource.t, storeConfig) => t =
646
- "relay-runtime/lib/store/experimental-live-resolvers/LiveResolverStore"
646
+ "relay-runtime/lib/store/live-resolvers/LiveResolverStore"
647
647
 
648
- @module("relay-runtime/lib/store/experimental-live-resolvers/LiveResolverStore") @new
648
+ @module("relay-runtime/lib/store/live-resolvers/LiveResolverStore") @new
649
649
  external makeLiveStore: (RecordSource.t, storeConfig) => t = "default"
650
650
 
651
651
  @module("relay-runtime") @new
@@ -686,8 +686,19 @@ module Store = {
686
686
  module RelayFieldLogger = {
687
687
  @tag("kind")
688
688
  type arg =
689
- | @as("missing_field.log") MissingFieldLog({owner: string, fieldPath: string})
690
- | @as("missing_field.throw") MissingFieldThrow({owner: string, fieldPath: string})
689
+ | @as("missing_required_field.log") MissingRequiredFieldLog({owner: string, fieldPath: string})
690
+ | @as("missing_required_field.throw")
691
+ MissingRequiredFieldThrow({
692
+ owner: string,
693
+ fieldPath: string,
694
+ })
695
+ | @as("missing_expected_data.log") MissingExpectedData({owner: string, fieldPath: string})
696
+ | @as("missing_expected_data.throw")
697
+ MissingExpectedDataThrow({
698
+ owner: string,
699
+ fieldPath: string,
700
+ handled: bool,
701
+ })
691
702
  | @as("relay_resolver.error")
692
703
  RelayResolverError({
693
704
  owner: string,
@@ -744,8 +744,19 @@ module Disposable: {
744
744
  module RelayFieldLogger: {
745
745
  @tag("kind")
746
746
  type arg =
747
- | @as("missing_field.log") MissingFieldLog({owner: string, fieldPath: string})
748
- | @as("missing_field.throw") MissingFieldThrow({owner: string, fieldPath: string})
747
+ | @as("missing_required_field.log") MissingRequiredFieldLog({owner: string, fieldPath: string})
748
+ | @as("missing_required_field.throw")
749
+ MissingRequiredFieldThrow({
750
+ owner: string,
751
+ fieldPath: string,
752
+ })
753
+ | @as("missing_expected_data.log") MissingExpectedData({owner: string, fieldPath: string})
754
+ | @as("missing_expected_data.throw")
755
+ MissingExpectedDataThrow({
756
+ owner: string,
757
+ fieldPath: string,
758
+ handled: bool,
759
+ })
749
760
  | @as("relay_resolver.error")
750
761
  RelayResolverError({
751
762
  owner: string,
@@ -5,6 +5,7 @@ var React = require("react");
5
5
  var Caml_option = require("rescript/lib/js/caml_option.js");
6
6
  var ReactRelay = require("react-relay");
7
7
  var RescriptRelay_Internal = require("./RescriptRelay_Internal.bs.js");
8
+ var Experimental = require("relay-runtime/experimental");
8
9
  var ResolverFragments = require("relay-runtime/lib/store/ResolverFragments");
9
10
  var UseBlockingPaginationFragment = require("react-relay/lib/relay-hooks/legacy/useBlockingPaginationFragment").default;
10
11
 
@@ -112,6 +113,11 @@ function useRefetchableFragment(node, convertFragment, convertRefetchVariables,
112
113
  ];
113
114
  }
114
115
 
116
+ async function waitForFragmentData(environment, node, convertFragment, fRef) {
117
+ var fragmentData = await Experimental.waitForFragmentData(environment, node, fRef);
118
+ return convertFragment(fragmentData);
119
+ }
120
+
115
121
  exports.useFragment = useFragment;
116
122
  exports.useFragmentOpt = useFragmentOpt;
117
123
  exports.readInlineData = readInlineData;
@@ -119,4 +125,5 @@ exports.read = read;
119
125
  exports.usePaginationFragment = usePaginationFragment;
120
126
  exports.useBlockingPaginationFragment = useBlockingPaginationFragment;
121
127
  exports.useRefetchableFragment = useRefetchableFragment;
128
+ exports.waitForFragmentData = waitForFragmentData;
122
129
  /* react Not a pure module */
@@ -241,3 +241,20 @@ let useRefetchableFragment = (
241
241
  ),
242
242
  )
243
243
  }
244
+
245
+ @module("relay-runtime/experimental")
246
+ external waitForFragmentData_: (
247
+ Environment.t,
248
+ fragmentNode<'node>,
249
+ 'fragmentRef,
250
+ ) => promise<'fragment> = "waitForFragmentData"
251
+
252
+ let waitForFragmentData = async (
253
+ ~environment,
254
+ ~node,
255
+ ~convertFragment: 'fragment => 'fragment,
256
+ ~fRef,
257
+ ) => {
258
+ let fragmentData = await waitForFragmentData_(environment, node, fRef)
259
+ convertFragment(fragmentData)
260
+ }
@@ -83,3 +83,10 @@ let useRefetchableFragment: (
83
83
  ~onComplete: option<Js.Exn.t> => unit=?,
84
84
  ) => Disposable.t,
85
85
  )
86
+
87
+ let waitForFragmentData: (
88
+ ~environment: Environment.t,
89
+ ~node: fragmentNode<'a>,
90
+ ~convertFragment: 'fragment => 'fragment,
91
+ ~fRef: 'b,
92
+ ) => promise<'fragment>