{"version":3,"file":"client.mjs","names":[],"sources":["../src/client.ts"],"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 { loggerLink } from \"@trpc/client\";\nimport type { UseTRPCActionResult } from \"@trpc/next/app-dir/client\";\nimport {\n  experimental_createActionHook,\n  experimental_createTRPCNextAppDirClient,\n  experimental_serverActionLink\n} from \"@trpc/next/app-dir/client\";\nimport { experimental_nextHttpLink } from \"@trpc/next/app-dir/links/nextHttp\";\nimport type {\n  ActionHandlerDef,\n  TRPCActionHandler\n} from \"@trpc/next/app-dir/server\";\nimport type { AnyTRPCRouter } from \"@trpc/server\";\nimport { getTRPCServerUrl, transformer } from \"./shared\";\n\n/**\n * Creates a tRPC client for the Next.js app directory.\n *\n * @param baseUrl - The base URL for the tRPC server. This is typically the URL of the Next.js app.\n * @returns A tRPC client that can be used to make requests to the server.\n */\nexport function createTRPCClient<TRouter extends AnyTRPCRouter>(\n  baseUrl: string\n) {\n  return experimental_createTRPCNextAppDirClient<TRouter>({\n    config() {\n      return {\n        links: [\n          loggerLink({\n            enabled: _op => true\n          }),\n          experimental_nextHttpLink({\n            transformer,\n            batch: true,\n            url: getTRPCServerUrl(baseUrl),\n            headers() {\n              return {\n                \"x-trpc-source\": \"client\"\n              };\n            }\n          } as TRouter[\"_def\"][\"_config\"][\"$types\"])\n        ]\n      };\n    }\n  });\n}\n\n/**\n * Creates a tRPC action hook for the Next.js app directory.\n *\n * @returns A function that can be used to create a tRPC action hook.\n */\nexport function createUseAction<TRouter extends AnyTRPCRouter>() {\n  return experimental_createActionHook<TRouter>({\n    links: [\n      loggerLink(),\n      experimental_serverActionLink({\n        transformer\n      } as TRouter[\"_def\"][\"_config\"][\"$types\"])\n    ]\n  } as TRouter[\"_def\"][\"_config\"][\"$types\"]) as <TDef extends ActionHandlerDef>(\n    handler: TRPCActionHandler<TDef>,\n    useActionOpts?: any\n  ) => UseTRPCActionResult<TDef>;\n}\n"],"mappings":";;;;;;;;;;;;;;AAyCA,SAAgB,iBACd,SACA;CACA,OAAO,wCAAiD,EACtD,SAAS;EACP,OAAO,EACL,OAAO,CACL,WAAW,EACT,UAAS,QAAO,KAClB,CAAC,GACD,0BAA0B;GACxB;GACA,OAAO;GACP,KAAK,iBAAiB,OAAO;GAC7B,UAAU;IACR,OAAO,EACL,iBAAiB,SACnB;GACF;EACF,CAAyC,CAC3C,EACF;CACF,EACF,CAAC;AACH;;;;;;AAOA,SAAgB,kBAAiD;CAC/D,OAAO,8BAAuC,EAC5C,OAAO,CACL,WAAW,GACX,8BAA8B,EAC5B,YACF,CAAyC,CAC3C,EACF,CAAyC;AAI3C"}