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 +6 -0
- package/package.json +5 -5
- package/ppx-linux +0 -0
- package/ppx-macos-arm64 +0 -0
- package/ppx-macos-latest +0 -0
- package/ppx-windows-latest +0 -0
- package/relay-compiler-linux-musl/relay +0 -0
- package/relay-compiler-linux-x64/relay +0 -0
- package/relay-compiler-macos-arm64/relay +0 -0
- package/relay-compiler-macos-x64/relay +0 -0
- package/relay-compiler-win-x64/relay.exe +0 -0
- package/src/RescriptRelay.bs.js +4 -4
- package/src/RescriptRelay.res +15 -4
- package/src/RescriptRelay.resi +13 -2
- package/src/RescriptRelay_Fragment.bs.js +7 -0
- package/src/RescriptRelay_Fragment.res +17 -0
- package/src/RescriptRelay_Fragment.resi +7 -0
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
|
|
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": "
|
|
53
|
-
"relay-runtime": "
|
|
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": "
|
|
59
|
-
"relay-runtime": "
|
|
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
|
package/ppx-windows-latest
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/src/RescriptRelay.bs.js
CHANGED
|
@@ -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/
|
|
14
|
-
var LiveResolverStore$1 = require("relay-runtime/lib/store/
|
|
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
|
|
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
|
});
|
package/src/RescriptRelay.res
CHANGED
|
@@ -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/
|
|
646
|
+
"relay-runtime/lib/store/live-resolvers/LiveResolverStore"
|
|
647
647
|
|
|
648
|
-
@module("relay-runtime/lib/store/
|
|
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("
|
|
690
|
-
| @as("
|
|
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,
|
package/src/RescriptRelay.resi
CHANGED
|
@@ -744,8 +744,19 @@ module Disposable: {
|
|
|
744
744
|
module RelayFieldLogger: {
|
|
745
745
|
@tag("kind")
|
|
746
746
|
type arg =
|
|
747
|
-
| @as("
|
|
748
|
-
| @as("
|
|
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>
|