Bot releases are hidden (Show)
This release adds support for several major version upgrades of dependencies, including:
[email protected]
.@rescript/react
. reason-react
is no longer supported moving forward.[email protected]
.This release also includes a name change. This package will now be published under the @urql
scope as @urql/rescript
. To install it, run:
yarn add @urql/rescript
reason-urql
is now available as @urql/rescript
. PR by @parkerziegler here.@urql/rescript
is now compatible with [email protected]
, [email protected]
, and @rescript/react
. You must upgrade to @rescript/react
from reason-react
to use v4.0.0. PR by @parkerziegler here.pollInterval
API was removed from all hooks and Client methods, in accordance with the upstream deprecation of this API in [email protected]
. PR by @parkerziegler here. More information on this deprecation can be found in the urql
CHANGELOG.https://github.com/FormidableLabs/reason-urql/compare/v3.4.0...v4.0.0
Published by parkerziegler almost 4 years ago
This release adds bindings for two additional ecosystem exchanges:
@urql/exchange-persisted-fetch
and @urql/exchange-refocus
were added. Consumers of reason-urql
will need to install @urql/exchange-persisted-fetch
to call Client.Exchanges.persistedFetchExchange
and @urql/exchange-refocus
to call Client.Exchanges.refocusExchange
. PR by @parkerziegler here.https://github.com/FormidableLabs/reason-urql/compare/v3.3.0...v3.4.0
Published by parkerziegler almost 4 years ago
This release adds bindings for two additional ecosystem exchanges:
@urql/exchange-retry
and @urql/exchange-request-policy
were added. Consumers of reason-urql
will need to install @urql/exchange-retry
to call Client.Exchanges.retryExchange
and @urql/exchange-request-policy
to call Client.Exchanges.requestPolicyExchange
. PRs by @parkerziegler here and here.https://github.com/FormidableLabs/reason-urql/compare/v3.2.0...v3.3.0
Published by parkerziegler almost 4 years ago
This release adds a thin binding for @urql/exchange-multipart-fetch
.
@urql/exchange-multipart-fetch
was added. Consumers of reason-urql
will need to install @urql/exchange-multipart-fetch
to call Client.Exchanges.multipartFetchExchange
. PR by @parkerziegler here. Fixes #169.https://github.com/FormidableLabs/reason-urql/compare/v3.1.0...v3.2.0
Published by parkerziegler almost 4 years ago
This release migrates our internal syntax from Reason to ReScript. It also revises our binding of CombinedError
to be compatible with ReScript, which doesn't support binding JS classes to OCaml classes as BuckleScript once did. The experience for end users should be no different.
CombinedError
is now a record rather than an OCaml class being bound to a JS class. This change was made to both increase simplicity and to prepare for the BuckleScript to ReScript migration. PR by @parkerziegler here.https://github.com/FormidableLabs/reason-urql/compare/v3.0.0...v3.1.0
Published by parkerziegler almost 4 years ago
This release migrates us to using @reasonml-community/graphql-ppx
as our GraphQL PPX preprocessor of choice in lieu of @baransu/graphql_ppx_re
. It also converts urql
to a peerDependency
of the library rather than bundling urql
as a direct dependency. Finally, this release includes support for BuckleScript / ReScript > 8.0.0.
urql
, along with its own peerDependencies
, should be installed alongside reason-urql
, which no longer bundles urql
as a direct dependency. See updated installation instructions in the README. PR by @parkerziegler here.
Users should install @reasonml-community/graphql-ppx
as a peerDependency
of reason-urql
.
Users depending on bs-platform>=8.0.0
will need to specify a resolution for wonka
v5 using yarn resolutions. See updated installation instructions in the README.
Client.execute*
methods underwent four major API changes:
~request
labelled argument. Instead, the GraphQL operation is passed using ~query
for Client.executeQuery
, ~mutation
for Client.executeMutation
, and ~subscription
for Client.executeSubscription
. This applies to Client.query
, Client.mutation
, Client.subscription
, and Client.readQuery
as well.Client.execute*
methods. This means you pass your entire GraphQL query module
as a function argument, like so:open ReasonUrql;
module GetAllDogs = [%graphql {|
query getAllDogs {
dogs {
name
breed
likes
}
}
|}];
/* Pass GetAllDogs as a first-class module to Client.executeQuery. */
Client.executeQuery(~query=(module GetAllDogs), ())
Client.execute*
methods, if they are required. PR by @parkerziegler here. We interface with @reasonml-community/graphql-ppx
to typecheck your variables
based on the signature of your GraphQL operation. If your query, mutation, or subscription requires variables, pass them as a record in the last position, like so:open ReasonUrql;
module GetDog = [%graphql {|
query getDog($key: ID!) {
dog(key: $key) {
name
breed
likes
}
}
|}];
/* Pass GetDog as a first-class module to Client.executeQuery,
with required variables as a record in the final position. */
Client.executeQuery(~query=(module GetDog), {key: "12345"})
response
variant for Client.execute*
methods was renamed to operationResponse
and should be referenced from the Types
module rather than the Client
module.The hooks APIs underwent three major API changes:
~request
labelled argument. Instead, the GraphQL operation is passed using ~query
for useQuery
, ~mutation
for useMutation
, and ~subscription
for useSubscription
.module
as a function argument, like so:open ReasonUrql;
module GetAllDogs = [%graphql {|
query getAllDogs {
dogs {
name
breed
likes
}
}
|}];
[@react.component]
let make = () => {
/* Pass GetAllDogs as a first-class module to useQuery. */
let (Hooks.{response}, _) = Hooks.useQuery(~query=(module GetAllDogs), ());
/* Return the JSX for your component. */
}
@reasonml-community/graphql-ppx
to typecheck your variables
based on the signature of your GraphQL operation. If your query, mutation, or subscription requires variables, pass them as a record in the last position, like so:module GetDog = [%graphql {|
query getDog($key: ID!) {
dog(key: $key) {
name
breed
likes
}
}
|}];
[@react.component]
let make = () => {
/* Pass GetDog as a first-class module to useQuery,
with required variables as a record in the final position. */
let (Hooks.{response}, _) = Hooks.useQuery(~query=(module GetDog), {key: "12345"});
/* Return the JSX for your component. */
}
useDynamicMutation
hook was removed. useMutation
now consolidates the former use case for this hook and brings our APIs more inline with how urql
works.https://github.com/FormidableLabs/reason-urql/compare/v2.1.0...v3.0.0
Published by parkerziegler almost 4 years ago
This release is the first release candidate for v3.0.0, which will use @reasonml-community/graphql-ppx
as our PPX preprocessor for GraphQL operations. Breaking changes will be listed in the release notes for the first stable release of v3.0.0.
https://github.com/FormidableLabs/reason-urql/compare/v2.1.0...v3.0.0-rc.0
Published by parkerziegler about 4 years ago
This release brings our urql
dependency up to v1.10.0, at parity with the current state of urql
🙌. There are no code changes involved from the previous RC release.
https://github.com/FormidableLabs/reason-urql/compare/v2.1.0-rc.0...v2.1.0
Published by parkerziegler about 4 years ago
This release fixes some important bugs identified in the v2.0.0 release.
null
on the data
field in the GraphQL response. This was a regression from v1.7.0. PR by @parkerziegler and @gaku-sei here.[@bs.deriving abstract]
to internally create Partial<OperationContext>
objects. PR by @parkerziegler here.https://github.com/FormidableLabs/reason-urql/compare/v2.0.0...v2.1.0-rc0
Published by parkerziegler about 4 years ago
This release includes full support for BuckleScript 7 and widely reorganizes reason-urql
to be more modular and easier to contribute to. Most of the public API has stayed the same, with some exceptions (documented below).
Users who upgrade to v2 should be on BuckleScript 7, as this library relies heavily on direct record to object compilation.
Client.execute*
methods that accepted a partial operation context argument now accept each key of the operationContext
record type as an optional function argument. For example, you can now write code like this:open ReasonUrql;
/* Define query to execute. */
let subscription = Client.executeQuery(~query, ~requestPolicy=`CacheFirst, ~pollInterval=200, ());
reason-urql
will handle compiling each argument and passing it along to urql
properly.
.rei
) were added for all modules
.stale
flag is now returned on all results returned by reason-urql
hooks, which indicates that the result returned by the hook is stale and that another request is being sent in the background. This is particularly useful with the `CacheAndNetwork request policy.response
variant now has 5 constructors – Fetching
, Data(d)
, PartialData(d, e)
, Error(e)
, and Empty
. You can read more about each of these here.UrqlTypes
module is now just Types
.Exchanges
module is now a sub-module of the Client
module. Once ReasonUrql
is brought into scope it can be refrenced as Client.Exchanges
.ssrExchange
now accepts ssrExchangeParams
as its first labeled argument, not ssrExchangeOpts
. ssrExchangeParams
is also a record type while ssrExchangeOpts
was a [@bs.deriving abstract]
. This brings it more in line with urql
's implementation.serializedResult
is now a record type rather than a [@bs.deriving abstract]
.type t =
exchangeInput =>
(. Wonka.Types.sourceT(UrqlClientTypes.operation)) =>
Wonka.Types.sourceT(UrqlClientTypes.operationResult);
graphQLError
is now a record type rather than a [@bs.deriving abstract]
and has its own module GraphQLError
.Query
, Mutation
, Subscription
, and SubscriptionWithHandler
were removed. Just use the hooks APIs!Client
methods for executeRequestOperation
, reexecuteOperation
, createRequestOperation
, and dispatchOperation
were removed. These are no longer in urql
's public facing API.https://github.com/FormidableLabs/reason-urql/compare/v1.7.0...v2.0.0
Published by parkerziegler over 4 years ago
This release migrates our dependency on urql
to v1.5.1. It also migrates our devDependency
on bs-platform
(the BuckleScript compiler), to v7.2.2. While we don't expect this to affect end users still on BuckleScript v6, there may be small bugfixes and optimizations coming in the near future to support this migration.
Promise
-based methods query
and mutation
on the Client. This allows users to interact with Client operation results as Js.Promise.t
rather than Wonka.sourceT
. PR by @parkerziegler here.useClient
hook. PR by @parkerziegler here.devDependency
on bs-platform
to v7.2.2 and in-repo compilation target to es6
. PR by @parkerziegler here.peerDependency
on bs-fetch
.https://github.com/FormidableLabs/reason-urql/compare/v1.6.0...v1.7.0
Published by parkerziegler over 4 years ago
This release migrates our dependency on urql
to v1.4.0. This adds support for setting a default requestPolicy
on the Client, in addition to setting up polling for your GraphQL queries using the pollInterval
argument to useQuery
and the Query
component.
requestPolicy
on the Client. PR by @JoviDeCroock here.pollInterval
argument to useQuery
hook and Query
component. PR by @JoviDeCroock here.https://github.com/FormidableLabs/reason-urql/compare/v1.5.0...v1.6.0
Published by parkerziegler almost 5 years ago
This release migrates our dependency on urql
to v1.3.0. As such, we now have support for GraphQL extensions, custom fetch
implementations, and adjustable operation contexts for queries and mutations.
fetch
implementation to clientOptions
. Pr by @parkerziegler here.context
argument to executeQuery
and executeMutation
, in addition to an optional initial context
prop / argument for the Query
component and useQuery
hook. PRs by @parkerziegler here and here.reason-urql
API. PR by @parkerziegler here.This release fixes a small bug with requestPolicy
in useQuery
. We weren't properly converting the polymorphic variants passed by a user to their JS string representation, which led to improper request policies being used by the urql
Client.
requestPolicy
to the matching JS string representation. PR by @baransu here.https://github.com/FormidableLabs/reason-urql/compare/v1.4.0...v1.4.1
Published by parkerziegler almost 5 years ago
This release adds support for a useDynamicMutation
hook, which allows users to pass variables to the executeMutation
function returned by the hook at execution time, as opposed to at render time as useMutation
does.
useDyanmicMutation
hook to support applying variables when calling executeMutation
. PR by @Schmavery and @sgrove here.https://github.com/FormidableLabs/reason-urql/compare/v1.3.0...v1.4.0
Published by parkerziegler almost 5 years ago
This release migrates us to [email protected]
and ensures reason-urql
is compatible for codebases using latest bs-platform
.
graphql_ppx_re
with reason-urql
. PR by @huy-nguyen here.pause
argument to Query
component for [email protected]
. PR by @gugahoa here.[email protected]
in source. Fix compiler warnings. Rename partialOperationContextFn
to executeQuery
. This is a breaking change.
https://github.com/FormidableLabs/reason-urql/compare/v1.2.0...v1.3.0
This release upgrades our urql
dependency to 1.2.0 and picks up a handful of small bugfixes introduced in that release.
operationContext
object now has a meta
property on it, containing fields for source
, cacheOutcome
, and networkLatency
. These fields are likely to be deprecated in the next minor release and moved to bs-urql-devtools-exchange
.urql
dependency upgraded to v1.2.0!bs-platform
dependency upgraded to v5.2.1! PR by @parkerziegler here.https://github.com/FormidableLabs/reason-urql/compare/v1.1.0...v1.2.0
Published by parkerziegler about 5 years ago
This release adds experimental support for server-side rendering with the addition of bindings for the ssrExchange
.
ssrExchange
and the suspense
option on the Client.make
function. PR by @parkerziegler here.urql
dependency upgraded to v1.1.3!Client
module. PR by @robinweser here.bsconfig.json
and package.json
files from the examples
directory are no longer published to npm
.https://github.com/FormidableLabs/reason-urql/compare/v1.0.2...v1.1.0
This release makes a small change around the API for CombinedError
. Specifically, the module type t
for CombinedError
now refers to the record exposed by the module rather than the Js.t
/ OCaml class binding urql
's native CombinedError
class. Better documentation for CombinedError
was also added.
CombinedError.t
now references the record exposed by the CombinedError
module containing fields for message
, networkError
, graphQLErrors
, and message
. PR by @Schmavery and @parkerziegler here.graphQLErrors
field on CombinedError.t
. Previously this was bound as graphqlErrors
, which would always result in None
being returned as urql
has no graphqlErrors
field. PR by @Schmavery here.https://github.com/FormidableLabs/reason-urql/compare/v1.0.1...v1.0.2
This release removes bs-fetch
as a dependency such that it doesn't conflict with a user's local copy of bs-fetch
. Since we only use bs-fetch
for type checking fetchOptions
, it can safely be included as a devDependency
. This release also adds a message
field on the combinedError
record to provide users access to the raw error string from urql
.
bs-fetch
. bs-fetch
is now a devDependency
for reason-urql
and can also be installed as a peerDependency
if you want to use a different version in your app. PR by @parkerziegler and @gugahoa here.message
field on CombinedError.combinedError
. This represents the raw string message
returned by the urql
client for your requests. PR by @Schmavery here.https://github.com/FormidableLabs/reason-urql/compare/v1.0.0...v1.0.1