Mirror: The highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow.

Fix(core): Type definition for `GraphQLRequestParams` (#3807)

Signed-off-by: Julien Hauseux <julien.hauseux@gmail.com>

Changed files
+15 -10
.changeset
packages
core
src
+5
.changeset/shaggy-taxis-grab.md
···
+
---
+
'@urql/core': minor
+
---
+
+
Fix type definition for `GraphQLRequestParams` to make `variables` field optional if and only if **all** fields are optional or nullish
+10 -10
packages/core/src/types.ts
···
variables?: Variables;
}
: Variables extends {
-
[P in keyof Variables]: Exclude<Variables[P], null | void>;
+
[P in keyof Variables]: undefined extends Variables[P]
+
? unknown
+
: null extends Variables[P]
+
? unknown
+
: void extends Variables[P]
+
? unknown
+
: never;
}
-
? Variables extends {
-
[P in keyof Variables]: never;
+
? {
+
variables?: Variables;
}
-
? {
-
variables?: Variables;
-
}
-
: {
-
variables: Variables;
-
}
: {
-
variables?: Variables;
+
variables: Variables;
}))
| {
query: DocumentInput<Data, Variables>;