{"version":3,"file":"utils.mjs","sources":["../../src/utils.ts"],"sourcesContent":["import * as TanstackReactQuery from '@tanstack/react-query'\nimport type { Query, QueryClient, QueryKey } from '@tanstack/react-query'\n\nimport type { Middleware } from './types'\n\nexport const ReactQuery = TanstackReactQuery\n\nexport const isV5 = !!ReactQuery.useSuspenseQuery\n\nexport const suspenseOptions = {\n  enabled: true,\n  suspense: true,\n  keepPreviousData: undefined,\n  useErrorBoundary: (_error: unknown, query: Query) =>\n    query.state.data === undefined,\n}\n\nexport const withMiddleware = (\n  hook: any,\n  defaultOptions: any,\n  type: 'queries' | 'mutations'\n) => {\n  return function useMiddleware(\n    options?: { client?: QueryClient; use?: Middleware[] },\n    queryClient?: QueryClient\n  ) {\n    const [uses, opts]: [Middleware[], any] = [\n      ReactQuery.useQueryClient(\n        // @ts-ignore Compatible with ReactQuery v4\n        isV5 ? queryClient : options\n      ).getDefaultOptions()[type],\n      defaultOptions,\n      options,\n    ].reduce(\n      ([u1, o1], { use: u2 = [], ...o2 } = {}) => [\n        [...u1, ...u2],\n        { ...o1, ...o2 },\n      ],\n      [[]]\n    )\n\n    return uses.reduceRight((next, use) => use(next), hook)(opts, queryClient)\n  }\n}\n\nexport const getKey = (queryKey: QueryKey, variables?: any): QueryKey => {\n  return variables === undefined ? queryKey : [...queryKey, variables]\n}\n"],"names":["ReactQuery","TanstackReactQuery","isV5","useSuspenseQuery","suspenseOptions","enabled","suspense","keepPreviousData","undefined","useErrorBoundary","_error","query","state","data","withMiddleware","hook","defaultOptions","type","useMiddleware","options","queryClient","uses","opts","useQueryClient","getDefaultOptions","reduce","u1","o1","use","u2","o2","reduceRight","next","getKey","queryKey","variables"],"mappings":";;AAKO,MAAMA,UAAU,GAAGC,mBAAnB;MAEMC,IAAI,GAAG,CAAC,CAACF,UAAU,CAACG,iBAA1B;AAEA,MAAMC,eAAe,GAAG;AAC7BC,EAAAA,OAAO,EAAE,IADoB;AAE7BC,EAAAA,QAAQ,EAAE,IAFmB;AAG7BC,EAAAA,gBAAgB,EAAEC,SAHW;EAI7BC,gBAAgB,EAAE,CAACC,MAAD,EAAkBC,KAAlB,KAChBA,KAAK,CAACC,KAAN,CAAYC,IAAZ,KAAqBL,SAAAA;AALM,EAAxB;AAQA,MAAMM,cAAc,GAAG,CAC5BC,IAD4B,EAE5BC,cAF4B,EAG5BC,IAH4B,KAIzB;AACH,EAAA,OAAO,SAASC,aAAT,CACLC,OADK,EAELC,WAFK,EAGL;IACA,MAAM,CAACC,IAAD,EAAOC,IAAP,IAAoC,CACxCtB,UAAU,CAACuB,cAAX;IAEErB,IAAI,GAAGkB,WAAH,GAAiBD,OAFvB,EAGEK,iBAHF,EAAA,CAGsBP,IAHtB,CADwC,EAKxCD,cALwC,EAMxCG,OANwC,CAAA,CAOxCM,MAPwC,CAQxC,CAAC,CAACC,EAAD,EAAKC,EAAL,CAAD,EAAW;MAAEC,GAAG,EAAEC,EAAE,GAAG,EAAZ;MAAgB,GAAGC,EAAAA;AAAnB,KAAA,GAA0B,EAArC,KAA4C,CAC1C,CAAC,GAAGJ,EAAJ,EAAQ,GAAGG,EAAX,CAD0C,EAE1C,EAAE,GAAGF,EAAL;MAAS,GAAGG,EAAAA;AAAZ,KAF0C,CARJ,EAYxC,CAAC,EAAD,CAZwC,CAA1C,CAAA;AAeA,IAAA,OAAOT,IAAI,CAACU,WAAL,CAAiB,CAACC,IAAD,EAAOJ,GAAP,KAAeA,GAAG,CAACI,IAAD,CAAnC,EAA2CjB,IAA3C,EAAiDO,IAAjD,EAAuDF,WAAvD,CAAP,CAAA;GAnBF,CAAA;AAqBD,EA1BM;MA4BMa,MAAM,GAAG,CAACC,QAAD,EAAqBC,SAArB,KAAmD;EACvE,OAAOA,SAAS,KAAK3B,SAAd,GAA0B0B,QAA1B,GAAqC,CAAC,GAAGA,QAAJ,EAAcC,SAAd,CAA5C,CAAA;AACD;;;;"}