Skip to content

Commit 2a6cb0f

Browse files
authored
Relay 18.2 (#542)
* up packages, and pull latest compiler * bind waitForFragmentData * 3.1.0 * add experimental non React mode to the PPX * fix inclusion * changelog * up docs
1 parent fd9f8d9 commit 2a6cb0f

31 files changed

+668
-181
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# master
22

3+
# 3.1.0
4+
5+
This brings the Relay version to `18.2.0`.
6+
7+
If you have enabled the feature flags in `relay.config.js` for aliased fragments or Relay resolvers you'll need to remove them from the config file as they are now on by default, and not removing them will cause the compiler to fail with a non super helpful error message.
8+
9+
- **Upgrade versions**: `react-relay` and `relay-runtime` to `18.2.0`.
10+
- Add support for `Fragment.waitForFragmentData`, a new API in Relay 18.2 that lets you wait for fragment data outside of React.
11+
- 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"]]`.
12+
313
# 3.0.1
414

515
- 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.

packages/relay

Submodule relay updated 2882 files
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
require("@testing-library/jest-dom/extend-expect");
2+
const queryMock = require("./queryMock");
3+
4+
const { test_nonReact } = require("./Test_nonReact.bs");
5+
6+
describe("Fragment", () => {
7+
test("waitForFragmentData works", async () => {
8+
queryMock.mockQuery({
9+
name: "TestNonReactQuery",
10+
data: {
11+
loggedInUser: {
12+
id: "user-1",
13+
firstName: "First",
14+
onlineStatus: "Online",
15+
},
16+
},
17+
});
18+
19+
const res = await test_nonReact();
20+
expect(res.waitForFragmentData).toEqual({
21+
firstName: "First",
22+
onlineStatus: "Online",
23+
});
24+
});
25+
});
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
module Query = %relay(`
2+
query TestNonReactQuery {
3+
loggedInUser {
4+
firstName
5+
...TestNonReact_user
6+
}
7+
}
8+
`)
9+
10+
module Fragment = %relay(`
11+
fragment TestNonReact_user on User {
12+
firstName
13+
onlineStatus
14+
}
15+
`)
16+
17+
@live
18+
let test_nonReact = async () => {
19+
let network = RescriptRelay.Network.makePromiseBased(~fetchFunction=RelayEnv.fetchQuery)
20+
21+
let environment = RescriptRelay.Environment.make(
22+
~network,
23+
~store=RescriptRelay.Store.make(~source=RescriptRelay.RecordSource.make()),
24+
)
25+
26+
let query = await Query.fetchPromised(~environment, ~variables=())
27+
let fragmentData = await Fragment.waitForFragmentData(
28+
~environment,
29+
query.loggedInUser.fragmentRefs,
30+
)
31+
32+
{
33+
"waitForFragmentData": fragmentData,
34+
}
35+
}

packages/rescript-relay/__tests__/Test_requiredFieldLogger.res

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module Logger = {
1313

1414
let getLoggedArg = () => loggedArg.contents
1515

16-
let expectedArg: RescriptRelay.RelayFieldLogger.arg = MissingFieldLog({
16+
let expectedArg: RescriptRelay.RelayFieldLogger.arg = MissingRequiredFieldLog({
1717
owner: "TestRequiredFieldLoggerQuery",
1818
fieldPath: "loggedInUser.firstName",
1919
})

packages/rescript-relay/__tests__/__generated__/TestAliasedFragmentsQuery_graphql.res

Lines changed: 24 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/rescript-relay/__tests__/__generated__/TestCodesplitQuery_graphql.res

Lines changed: 48 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/rescript-relay/__tests__/__generated__/TestFragmentRequiredPlural_user_graphql.res

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/rescript-relay/__tests__/__generated__/TestFragmentRequired_user_graphql.res

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)