From 6d1df2f834e4812e4c60ff02b4237efb2ee45a60 Mon Sep 17 00:00:00 2001 From: daishi Date: Tue, 30 Aug 2022 12:22:32 +0900 Subject: [PATCH] breaking(types,urql): update @urql/core v6 --- package.json | 2 +- src/urql/atomWithMutation.ts | 7 ++++--- src/urql/atomWithQuery.ts | 17 +++++++++-------- src/urql/atomWithSubscription.ts | 13 +++++++------ tests/urql/atomWithMutation.test.tsx | 2 +- tests/urql/atomWithQuery.test.tsx | 5 +++++ tests/urql/atomWithSubscription.test.tsx | 4 ++++ yarn.lock | 15 +++++---------- 8 files changed, 36 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index a3c471651d..6a11bdb4f7 100644 --- a/package.json +++ b/package.json @@ -220,7 +220,7 @@ "@types/react-dom": "^18.0.6", "@typescript-eslint/eslint-plugin": "^5.35.1", "@typescript-eslint/parser": "^5.35.1", - "@urql/core": "2.6.1", + "@urql/core": "^3.0.2", "benny": "^3.7.1", "concurrently": "^7.3.0", "downlevel-dts": "^0.10.0", diff --git a/src/urql/atomWithMutation.ts b/src/urql/atomWithMutation.ts index 9f13c56a33..4f071135bd 100644 --- a/src/urql/atomWithMutation.ts +++ b/src/urql/atomWithMutation.ts @@ -1,4 +1,5 @@ import type { + AnyVariables, Client, OperationContext, OperationResult, @@ -8,13 +9,13 @@ import { atom } from 'jotai' import type { Getter } from 'jotai' import { clientAtom } from './clientAtom' -type MutationAction = { - variables?: Variables +type MutationAction = { + variables: Variables context?: Partial callback?: (result: OperationResult) => void } -export function atomWithMutation( +export function atomWithMutation( createQuery: (get: Getter) => TypedDocumentNode | string, getClient: (get: Getter) => Client = (get) => get(clientAtom) ) { diff --git a/src/urql/atomWithQuery.ts b/src/urql/atomWithQuery.ts index 79263be6d7..3a116ace4d 100644 --- a/src/urql/atomWithQuery.ts +++ b/src/urql/atomWithQuery.ts @@ -1,4 +1,5 @@ import type { + AnyVariables, Client, OperationContext, OperationResult, @@ -28,26 +29,26 @@ const isOperationResultWithData = ( ): result is OperationResultWithData => 'data' in result && !result.error -type QueryArgs = { +type QueryArgs = { query: TypedDocumentNode | string - variables?: Variables + variables: Variables requestPolicy?: RequestPolicy context?: Partial } -type QueryArgsWithPause = QueryArgs< +type QueryArgsWithPause = QueryArgs< Data, Variables > & { pause: boolean } -export function atomWithQuery( +export function atomWithQuery( createQueryArgs: (get: Getter) => QueryArgs, getClient?: (get: Getter) => Client ): WritableAtom, AtomWithQueryAction> -export function atomWithQuery( +export function atomWithQuery( createQueryArgs: (get: Getter) => QueryArgsWithPause, getClient?: (get: Getter) => Client ): WritableAtom< @@ -55,7 +56,7 @@ export function atomWithQuery( AtomWithQueryAction > -export function atomWithQuery( +export function atomWithQuery( createQueryArgs: (get: Getter) => QueryArgs, getClient: (get: Getter) => Client = (get) => get(clientAtom) ) { @@ -128,7 +129,7 @@ export function atomWithQuery( client.query(args.query, args.variables, { ...(args.requestPolicy && { requestPolicy: args.requestPolicy }), ...args.context, - }) as any, // FIXME can anyone fix typing without any? + }), subscribe(listener) ) set(subscriptionAtom, subscription) @@ -167,7 +168,7 @@ export function atomWithQuery( ...(args.requestPolicy && { requestPolicy: args.requestPolicy }), ...args.context, ...action.opts, - }) as any, // FIXME can anyone fix typing without any? + }), subscribe(listener) ) const oldSubscription = get(subscriptionAtom) diff --git a/src/urql/atomWithSubscription.ts b/src/urql/atomWithSubscription.ts index 379c6fb7a0..74c5decb08 100644 --- a/src/urql/atomWithSubscription.ts +++ b/src/urql/atomWithSubscription.ts @@ -1,4 +1,5 @@ import type { + AnyVariables, Client, OperationContext, OperationResult, @@ -21,32 +22,32 @@ const isOperationResultWithData = ( result: OperationResult ): result is OperationResultWithData => 'data' in result -type SubscriptionArgs = { +type SubscriptionArgs = { query: TypedDocumentNode | string - variables?: Variables + variables: Variables context?: Partial } type SubscriptionArgsWithPause< Data, - Variables extends object + Variables extends AnyVariables > = SubscriptionArgs & { pause: boolean } -export function atomWithSubscription( +export function atomWithSubscription( createSubscriptionArgs: (get: Getter) => SubscriptionArgs, getClient?: (get: Getter) => Client ): Atom> -export function atomWithSubscription( +export function atomWithSubscription( createSubscriptionArgs: ( get: Getter ) => SubscriptionArgsWithPause, getClient?: (get: Getter) => Client ): Atom | null> -export function atomWithSubscription( +export function atomWithSubscription( createSubscriptionArgs: (get: Getter) => SubscriptionArgs, getClient: (get: Getter) => Client = (get) => get(clientAtom) ) { diff --git a/tests/urql/atomWithMutation.test.tsx b/tests/urql/atomWithMutation.test.tsx index 20cc250eed..7734d1ab08 100644 --- a/tests/urql/atomWithMutation.test.tsx +++ b/tests/urql/atomWithMutation.test.tsx @@ -23,7 +23,7 @@ it('mutation basic test', async () => { () => clientMock ) const mutateAtom = atom(null, (_get, set) => { - set(countAtom, {}) + set(countAtom, { variables: {} }) }) const Counter = () => { diff --git a/tests/urql/atomWithQuery.test.tsx b/tests/urql/atomWithQuery.test.tsx index ba380baa26..f30409b6b7 100644 --- a/tests/urql/atomWithQuery.test.tsx +++ b/tests/urql/atomWithQuery.test.tsx @@ -32,6 +32,7 @@ it('query basic test', async () => { const countAtom = atomWithQuery<{ count: number }, Record>( () => ({ query: '{ count }', + variables: {}, }), () => generateContinuousClient() ) @@ -118,6 +119,7 @@ it('query change client at runtime', async () => { const idAtom = atomWithQuery<{ id: string }, Record>( () => ({ query: '{ id }', + variables: {}, }), (get) => get(clientAtom) ) @@ -169,6 +171,7 @@ it('pause test', async () => { const countAtom = atomWithQuery<{ count: number }, Record>( (get) => ({ query: '{ count }', + variables: {}, pause: !get(enabledAtom), }), () => generateContinuousClient() @@ -209,6 +212,7 @@ it('reexecute test', async () => { const countAtom = atomWithQuery<{ count: number }, Record>( () => ({ query: '{ count }', + variables: {}, }), () => generateContinuousClient() ) @@ -250,6 +254,7 @@ it('query null client suspense', async () => { const idAtom = atomWithQuery<{ id: string }, Record>( () => ({ query: '{ id }', + variables: {}, }), (get) => get(clientAtom) as Client ) diff --git a/tests/urql/atomWithSubscription.test.tsx b/tests/urql/atomWithSubscription.test.tsx index 7b7b9e9df8..8c25fe52c9 100644 --- a/tests/urql/atomWithSubscription.test.tsx +++ b/tests/urql/atomWithSubscription.test.tsx @@ -25,6 +25,7 @@ it('subscription basic test', async () => { query: 'subscription Test { count }' as unknown as TypedDocumentNode<{ count: number }>, + variables: {}, }), () => clientMock ) @@ -60,6 +61,7 @@ it('subscription change client at runtime', async () => { id: string count: number }>, + variables: {}, }), (get) => get(clientAtom) ) @@ -123,6 +125,7 @@ it('pause test', async () => { query: 'subscription Test { count }' as unknown as TypedDocumentNode<{ count: number }>, + variables: {}, pause: !get(enabledAtom), }), () => clientMock @@ -168,6 +171,7 @@ it('null client suspense', async () => { id: string count: number }>, + variables: {}, }), (get) => get(clientAtom) as Client ) diff --git a/yarn.lock b/yarn.lock index 1f0a1618bb..c2ca55972d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1864,13 +1864,13 @@ "@typescript-eslint/types" "5.35.1" eslint-visitor-keys "^3.3.0" -"@urql/core@2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@urql/core/-/core-2.6.1.tgz#c10ee972c5e81df6d7bf1e778ef1b5d30e2906e5" - integrity sha512-gYrEHy3tViJhwIhauK6MIf2Qp09QTsgNHZRd0n71rS+hF6gdwjspf1oKljl4m25+272cJF7fPjBUGmjaiEr7Kg== +"@urql/core@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@urql/core/-/core-3.0.2.tgz#91008bc112000dd42c5260142e4eed7901def6bd" + integrity sha512-TRpQOdt1Mtpt/EgPlFCx9Aqc3TbHtzH3yj8pJ9yjSUKT4slRyy+ofMQ8yx50oZzZjAOswF02zBRwnxsZANb35A== dependencies: "@graphql-typed-document-node/core" "^3.1.1" - wonka "^4.0.14" + wonka "^6.0.0" abab@^2.0.6: version "2.0.6" @@ -5520,11 +5520,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -wonka@^4.0.14: - version "4.0.15" - resolved "https://registry.yarnpkg.com/wonka/-/wonka-4.0.15.tgz#9aa42046efa424565ab8f8f451fcca955bf80b89" - integrity sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg== - wonka@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/wonka/-/wonka-6.0.0.tgz#38cd39a517fc3ff721ea3bf353642b353bf48860"