{"version":3,"file":"client.mjs","names":[],"sources":["../../src/tanstack-query/client.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n                       🗲 Storm Software - Stryke\n\n This code was released as part of the Stryke project. Stryke\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/stryke.\n\n Website:                  https://stormsoftware.com\n Repository:               https://github.com/storm-software/stryke\n Documentation:            https://docs.stormsoftware.com/projects/stryke\n Contact:                  https://stormsoftware.com/contact\n\n SPDX-License-Identifier:  Apache-2.0\n\n ------------------------------------------------------------------- */\n\n\"use client\";\n\nimport { isDevelopment } from \"@stryke/env\";\nimport type { StormURLInterface } from \"@stryke/url\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport { QueryClientProvider } from \"@tanstack/react-query\";\nimport {\n  createTRPCClient,\n  httpBatchStreamLink,\n  loggerLink\n} from \"@trpc/client\";\nimport type { AnyTRPCRouter } from \"@trpc/server\";\nimport { createTRPCContext } from \"@trpc/tanstack-react-query\";\nimport { useState } from \"react\";\nimport { getTRPCServerUrl, transformer } from \"../shared\";\n\n/**\n * Create a TRPC Tanstack Query client.\n *\n * @returns The TRPC Tanstack Query client\n */\nexport function createTRPCTanstackQueryClient<TRouter extends AnyTRPCRouter>(\n  baseUrl: string | StormURLInterface,\n  queryClient: QueryClient\n) {\n  const { TRPCProvider, useTRPC } = createTRPCContext<TRouter>();\n\n  return {\n    useTRPCTanstackQuery: useTRPC,\n    TRPCTanstackQueryProvider: (props: { children: React.ReactNode }) => {\n      const { children } = props;\n\n      const [trpcClient] = useState(() =>\n        createTRPCClient<TRouter>({\n          links: [\n            loggerLink({\n              enabled: op =>\n                isDevelopment ||\n                (op.direction === \"down\" && op.result instanceof Error)\n            }),\n            httpBatchStreamLink<TRouter>({\n              transformer,\n              url: getTRPCServerUrl(baseUrl),\n              headers: { \"x-trpc-source\": \"react-query\" }\n            } as TRouter[\"_def\"][\"_config\"][\"$types\"])\n          ]\n        })\n      );\n\n      return (\n        <TRPCProvider trpcClient={trpcClient} queryClient={queryClient}>\n          <QueryClientProvider client={queryClient}>\n            {children}\n          </QueryClientProvider>\n        </TRPCProvider>\n      );\n    }\n  };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAuCA,SAAgB,8BACd,SACA,aACA;CACA,MAAM,EAAE,cAAc,YAAY,kBAA2B;CAE7D,OAAO;EACL,sBAAsB;EACtB,4BAA4B,UAAyC;GACnE,MAAM,EAAE,aAAa;GAErB,MAAM,CAAC,cAAc,eACnB,iBAA0B,EACxB,OAAO,CACL,WAAW,EACT,UAAS,OACP,iBACC,GAAG,cAAc,UAAU,GAAG,kBAAkB,MACrD,CAAC,GACD,oBAA6B;IAC3B;IACA,KAAK,iBAAiB,OAAO;IAC7B,SAAS,EAAE,iBAAiB,cAAc;GAC5C,CAAyC,CAC3C,EACF,CAAC,CACH;GAEA,OACE,oBAAC,cAAD;IAA0B;IAAyB;cACjD,oBAAC,qBAAD;KAAqB,QAAQ;KAC1B;IACkB;GACT;EAElB;CACF;AACF"}