@stryke/trpc-next 0.5.48 → 0.5.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/_virtual/rolldown_runtime.cjs +29 -1
  3. package/dist/action-handler.cjs +20 -1
  4. package/dist/action-handler.mjs +18 -1
  5. package/dist/action-handler.mjs.map +1 -1
  6. package/dist/client.cjs +39 -1
  7. package/dist/client.mjs +37 -1
  8. package/dist/client.mjs.map +1 -1
  9. package/dist/env/src/ci-checks.cjs +13 -1
  10. package/dist/env/src/ci-checks.mjs +12 -1
  11. package/dist/env/src/ci-checks.mjs.map +1 -1
  12. package/dist/env/src/environment-checks.cjs +87 -1
  13. package/dist/env/src/environment-checks.mjs +87 -1
  14. package/dist/env/src/environment-checks.mjs.map +1 -1
  15. package/dist/index.cjs +30 -1
  16. package/dist/index.mjs +8 -1
  17. package/dist/path/src/is-type.cjs +28 -1
  18. package/dist/path/src/is-type.mjs +28 -1
  19. package/dist/path/src/is-type.mjs.map +1 -1
  20. package/dist/path/src/join-paths.cjs +106 -1
  21. package/dist/path/src/join-paths.mjs +106 -1
  22. package/dist/path/src/join-paths.mjs.map +1 -1
  23. package/dist/path/src/regex.cjs +12 -1
  24. package/dist/path/src/regex.mjs +8 -1
  25. package/dist/path/src/regex.mjs.map +1 -1
  26. package/dist/path/src/slash.cjs +15 -1
  27. package/dist/path/src/slash.mjs +14 -1
  28. package/dist/path/src/slash.mjs.map +1 -1
  29. package/dist/server.cjs +46 -1
  30. package/dist/server.mjs +33 -1
  31. package/dist/server.mjs.map +1 -1
  32. package/dist/shared.cjs +43 -1
  33. package/dist/shared.mjs +38 -1
  34. package/dist/shared.mjs.map +1 -1
  35. package/dist/shield/constructors.cjs +86 -1
  36. package/dist/shield/constructors.mjs +79 -1
  37. package/dist/shield/constructors.mjs.map +1 -1
  38. package/dist/shield/generator.cjs +28 -1
  39. package/dist/shield/generator.mjs +27 -1
  40. package/dist/shield/generator.mjs.map +1 -1
  41. package/dist/shield/index.cjs +12 -1
  42. package/dist/shield/index.mjs +4 -1
  43. package/dist/shield/rules.cjs +200 -1
  44. package/dist/shield/rules.mjs +191 -1
  45. package/dist/shield/rules.mjs.map +1 -1
  46. package/dist/shield/shield.cjs +31 -1
  47. package/dist/shield/shield.mjs +31 -1
  48. package/dist/shield/shield.mjs.map +1 -1
  49. package/dist/shield/utils.cjs +56 -1
  50. package/dist/shield/utils.mjs +51 -1
  51. package/dist/shield/utils.mjs.map +1 -1
  52. package/dist/shield/validation.cjs +59 -1
  53. package/dist/shield/validation.mjs +58 -1
  54. package/dist/shield/validation.mjs.map +1 -1
  55. package/dist/tanstack-query/client.cjs +42 -1
  56. package/dist/tanstack-query/client.mjs +41 -1
  57. package/dist/tanstack-query/client.mjs.map +1 -1
  58. package/dist/tanstack-query/server.cjs +54 -1
  59. package/dist/tanstack-query/server.mjs +51 -1
  60. package/dist/tanstack-query/server.mjs.map +1 -1
  61. package/package.json +2 -2
@@ -1 +1,42 @@
1
- "use client";const e=require(`../_virtual/rolldown_runtime.cjs`),t=require(`../shared.cjs`),n=require(`../env/src/environment-checks.cjs`);let r=require(`@trpc/client`),i=require(`@tanstack/react-query`),a=require(`@trpc/tanstack-react-query`),o=require(`react`),s=require(`react/jsx-runtime`);function c(e,c){let{TRPCProvider:l,useTRPC:u}=(0,a.createTRPCContext)();return{useTRPCTanstackQuery:u,TRPCTanstackQueryProvider:a=>{let{children:u}=a,[d]=(0,o.useState)(()=>(0,r.createTRPCClient)({links:[(0,r.loggerLink)({enabled:e=>n.isDevelopment||e.direction===`down`&&e.result instanceof Error}),(0,r.httpBatchStreamLink)({transformer:t.transformer,url:t.getTRPCServerUrl(e),headers:{"x-trpc-source":`react-query`}})]}));return(0,s.jsx)(l,{trpcClient:d,queryClient:c,children:(0,s.jsx)(i.QueryClientProvider,{client:c,children:u})})}}}exports.createTRPCTanstackQueryClient=c;
1
+ "use client";
2
+
3
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
4
+ const require_shared = require('../shared.cjs');
5
+ const require_environment_checks = require('../env/src/environment-checks.cjs');
6
+ let __trpc_client = require("@trpc/client");
7
+ let __tanstack_react_query = require("@tanstack/react-query");
8
+ let __trpc_tanstack_react_query = require("@trpc/tanstack-react-query");
9
+ let react = require("react");
10
+ let react_jsx_runtime = require("react/jsx-runtime");
11
+
12
+ //#region src/tanstack-query/client.tsx
13
+ /**
14
+ * Create a TRPC Tanstack Query client.
15
+ *
16
+ * @returns The TRPC Tanstack Query client
17
+ */
18
+ function createTRPCTanstackQueryClient(baseUrl, queryClient) {
19
+ const { TRPCProvider, useTRPC } = (0, __trpc_tanstack_react_query.createTRPCContext)();
20
+ return {
21
+ useTRPCTanstackQuery: useTRPC,
22
+ TRPCTanstackQueryProvider: (props) => {
23
+ const { children } = props;
24
+ const [trpcClient] = (0, react.useState)(() => (0, __trpc_client.createTRPCClient)({ links: [(0, __trpc_client.loggerLink)({ enabled: (op) => require_environment_checks.isDevelopment || op.direction === "down" && op.result instanceof Error }), (0, __trpc_client.httpBatchStreamLink)({
25
+ transformer: require_shared.transformer,
26
+ url: require_shared.getTRPCServerUrl(baseUrl),
27
+ headers: { "x-trpc-source": "react-query" }
28
+ })] }));
29
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TRPCProvider, {
30
+ trpcClient,
31
+ queryClient,
32
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__tanstack_react_query.QueryClientProvider, {
33
+ client: queryClient,
34
+ children
35
+ })
36
+ });
37
+ }
38
+ };
39
+ }
40
+
41
+ //#endregion
42
+ exports.createTRPCTanstackQueryClient = createTRPCTanstackQueryClient;
@@ -1,2 +1,42 @@
1
- "use client";import{getTRPCServerUrl as e,transformer as t}from"../shared.mjs";import{isDevelopment as n}from"../env/src/environment-checks.mjs";import{createTRPCClient as r,httpBatchStreamLink as i,loggerLink as a}from"@trpc/client";import{QueryClientProvider as o}from"@tanstack/react-query";import{createTRPCContext as s}from"@trpc/tanstack-react-query";import{useState as c}from"react";import{jsx as l}from"react/jsx-runtime";function u(u,d){let{TRPCProvider:f,useTRPC:p}=s();return{useTRPCTanstackQuery:p,TRPCTanstackQueryProvider:s=>{let{children:p}=s,[m]=c(()=>r({links:[a({enabled:e=>n||e.direction===`down`&&e.result instanceof Error}),i({transformer:t,url:e(u),headers:{"x-trpc-source":`react-query`}})]}));return l(f,{trpcClient:m,queryClient:d,children:l(o,{client:d,children:p})})}}}export{u as createTRPCTanstackQueryClient};
1
+ "use client";
2
+
3
+ import { getTRPCServerUrl, transformer } from "../shared.mjs";
4
+ import { isDevelopment } from "../env/src/environment-checks.mjs";
5
+ import { createTRPCClient, httpBatchStreamLink, loggerLink } from "@trpc/client";
6
+ import { QueryClientProvider } from "@tanstack/react-query";
7
+ import { createTRPCContext } from "@trpc/tanstack-react-query";
8
+ import { useState } from "react";
9
+ import { jsx } from "react/jsx-runtime";
10
+
11
+ //#region src/tanstack-query/client.tsx
12
+ /**
13
+ * Create a TRPC Tanstack Query client.
14
+ *
15
+ * @returns The TRPC Tanstack Query client
16
+ */
17
+ function createTRPCTanstackQueryClient(baseUrl, queryClient) {
18
+ const { TRPCProvider, useTRPC } = createTRPCContext();
19
+ return {
20
+ useTRPCTanstackQuery: useTRPC,
21
+ TRPCTanstackQueryProvider: (props) => {
22
+ const { children } = props;
23
+ const [trpcClient] = useState(() => createTRPCClient({ links: [loggerLink({ enabled: (op) => isDevelopment || op.direction === "down" && op.result instanceof Error }), httpBatchStreamLink({
24
+ transformer,
25
+ url: getTRPCServerUrl(baseUrl),
26
+ headers: { "x-trpc-source": "react-query" }
27
+ })] }));
28
+ return /* @__PURE__ */ jsx(TRPCProvider, {
29
+ trpcClient,
30
+ queryClient,
31
+ children: /* @__PURE__ */ jsx(QueryClientProvider, {
32
+ client: queryClient,
33
+ children
34
+ })
35
+ });
36
+ }
37
+ };
38
+ }
39
+
40
+ //#endregion
41
+ export { createTRPCTanstackQueryClient };
2
42
  //# sourceMappingURL=client.mjs.map
@@ -1 +1 @@
1
- {"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/environment-checks\";\nimport type { StormURLInterface } from \"@stryke/url/types\";\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":"8aAuCA,SAAgB,EACd,EACA,EACA,CACA,GAAM,CAAE,eAAc,WAAY,GAA4B,CAE9D,MAAO,CACL,qBAAsB,EACtB,0BAA4B,GAAyC,CACnE,GAAM,CAAE,YAAa,EAEf,CAAC,GAAc,MACnB,EAA0B,CACxB,MAAO,CACL,EAAW,CACT,QAAS,GACP,GACC,EAAG,YAAc,QAAU,EAAG,kBAAkB,MACpD,CAAC,CACF,EAA6B,CAC3B,cACA,IAAK,EAAiB,EAAQ,CAC9B,QAAS,CAAE,gBAAiB,cAAe,CAC5C,CAAyC,CAC3C,CACF,CAAC,CACH,CAED,OACE,EAAC,EAAA,CAAyB,aAAyB,uBACjD,EAAC,EAAA,CAAoB,OAAQ,EAC1B,YACmB,EACT,EAGpB"}
1
+ {"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/environment-checks\";\nimport type { StormURLInterface } from \"@stryke/url/types\";\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,mBAA4B;AAE9D,QAAO;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,OACpD,CAAC,EACF,oBAA6B;IAC3B;IACA,KAAK,iBAAiB,QAAQ;IAC9B,SAAS,EAAE,iBAAiB,eAAe;IAC5C,CAAyC,CAC3C,EACF,CAAC,CACH;AAED,UACE,oBAAC;IAAyB;IAAyB;cACjD,oBAAC;KAAoB,QAAQ;KAC1B;MACmB;KACT;;EAGpB"}
@@ -1 +1,54 @@
1
- const e=require(`../_virtual/rolldown_runtime.cjs`),t=require(`../shared.cjs`);let n=require(`defu`);n=e.__toESM(n);let r=require(`@tanstack/react-query`),i=require(`@trpc/tanstack-react-query`),a=require(`react`);a=e.__toESM(a);let o=require(`react/jsx-runtime`);require(`server-only`);function s(e,s,c=()=>({}),l={}){let u=(0,a.cache)(async()=>{let t=await Promise.resolve(c()),r=new Headers(await e());return r.set(`x-trpc-source`,`rsc`),(0,n.default)({headers:Object.fromEntries(r)},t)}),d=(0,a.cache)(()=>t.createQueryClient(l));return{trpc:(0,i.createTRPCOptionsProxy)({router:s,queryClient:d,ctx:u}),HydrateClient:e=>(0,o.jsx)(r.HydrationBoundary,{state:(0,r.dehydrate)(d()),children:e.children}),prefetch:e=>{let t=d();e.queryKey[1]?.type===`infinite`?t.prefetchInfiniteQuery(e):t.prefetchQuery(e)}}}exports.createTRPCTanstackQueryServer=s;
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_shared = require('../shared.cjs');
3
+ let defu = require("defu");
4
+ defu = require_rolldown_runtime.__toESM(defu);
5
+ let __tanstack_react_query = require("@tanstack/react-query");
6
+ let __trpc_tanstack_react_query = require("@trpc/tanstack-react-query");
7
+ let react = require("react");
8
+ react = require_rolldown_runtime.__toESM(react);
9
+ let react_jsx_runtime = require("react/jsx-runtime");
10
+ require("server-only");
11
+
12
+ //#region src/tanstack-query/server.tsx
13
+ /**
14
+ * Create a TRPC Tanstack Query server.
15
+ *
16
+ * @param router - The TRPC router
17
+ * @param createContext - The context creator function
18
+ * @param queryClientConfig - The query client config
19
+ * @returns The TRPC Tanstack Query server
20
+ */
21
+ function createTRPCTanstackQueryServer(headers, router, createContext = () => ({}), queryClientConfig = {}) {
22
+ const _createContext = (0, react.cache)(async () => {
23
+ const context = await Promise.resolve(createContext());
24
+ const _headers = new Headers(await headers());
25
+ _headers.set("x-trpc-source", "rsc");
26
+ return (0, defu.default)({ headers: Object.fromEntries(_headers) }, context);
27
+ });
28
+ /**
29
+ * Create a stable getter for the query client that
30
+ * will return the same client during the same request.
31
+ */
32
+ const getQueryClient = (0, react.cache)(() => require_shared.createQueryClient(queryClientConfig));
33
+ return {
34
+ trpc: (0, __trpc_tanstack_react_query.createTRPCOptionsProxy)({
35
+ router,
36
+ queryClient: getQueryClient,
37
+ ctx: _createContext
38
+ }),
39
+ HydrateClient: (props) => {
40
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__tanstack_react_query.HydrationBoundary, {
41
+ state: (0, __tanstack_react_query.dehydrate)(getQueryClient()),
42
+ children: props.children
43
+ });
44
+ },
45
+ prefetch: (queryOptions) => {
46
+ const queryClient = getQueryClient();
47
+ if (queryOptions.queryKey[1]?.type === "infinite") queryClient.prefetchInfiniteQuery(queryOptions);
48
+ else queryClient.prefetchQuery(queryOptions);
49
+ }
50
+ };
51
+ }
52
+
53
+ //#endregion
54
+ exports.createTRPCTanstackQueryServer = createTRPCTanstackQueryServer;
@@ -1,2 +1,52 @@
1
- import{createQueryClient as e}from"../shared.mjs";import t from"defu";import{HydrationBoundary as n,dehydrate as r}from"@tanstack/react-query";import{createTRPCOptionsProxy as i}from"@trpc/tanstack-react-query";import a,{cache as o}from"react";import{jsx as s}from"react/jsx-runtime";import"server-only";function c(a,c,l=()=>({}),u={}){let d=o(async()=>{let e=await Promise.resolve(l()),n=new Headers(await a());return n.set(`x-trpc-source`,`rsc`),t({headers:Object.fromEntries(n)},e)}),f=o(()=>e(u));return{trpc:i({router:c,queryClient:f,ctx:d}),HydrateClient:e=>s(n,{state:r(f()),children:e.children}),prefetch:e=>{let t=f();e.queryKey[1]?.type===`infinite`?t.prefetchInfiniteQuery(e):t.prefetchQuery(e)}}}export{c as createTRPCTanstackQueryServer};
1
+ import { createQueryClient } from "../shared.mjs";
2
+ import defu from "defu";
3
+ import { HydrationBoundary, dehydrate } from "@tanstack/react-query";
4
+ import { createTRPCOptionsProxy } from "@trpc/tanstack-react-query";
5
+ import React, { cache } from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ import "server-only";
8
+
9
+ //#region src/tanstack-query/server.tsx
10
+ /**
11
+ * Create a TRPC Tanstack Query server.
12
+ *
13
+ * @param router - The TRPC router
14
+ * @param createContext - The context creator function
15
+ * @param queryClientConfig - The query client config
16
+ * @returns The TRPC Tanstack Query server
17
+ */
18
+ function createTRPCTanstackQueryServer(headers, router, createContext = () => ({}), queryClientConfig = {}) {
19
+ const _createContext = cache(async () => {
20
+ const context = await Promise.resolve(createContext());
21
+ const _headers = new Headers(await headers());
22
+ _headers.set("x-trpc-source", "rsc");
23
+ return defu({ headers: Object.fromEntries(_headers) }, context);
24
+ });
25
+ /**
26
+ * Create a stable getter for the query client that
27
+ * will return the same client during the same request.
28
+ */
29
+ const getQueryClient = cache(() => createQueryClient(queryClientConfig));
30
+ return {
31
+ trpc: createTRPCOptionsProxy({
32
+ router,
33
+ queryClient: getQueryClient,
34
+ ctx: _createContext
35
+ }),
36
+ HydrateClient: (props) => {
37
+ return /* @__PURE__ */ jsx(HydrationBoundary, {
38
+ state: dehydrate(getQueryClient()),
39
+ children: props.children
40
+ });
41
+ },
42
+ prefetch: (queryOptions) => {
43
+ const queryClient = getQueryClient();
44
+ if (queryOptions.queryKey[1]?.type === "infinite") queryClient.prefetchInfiniteQuery(queryOptions);
45
+ else queryClient.prefetchQuery(queryOptions);
46
+ }
47
+ };
48
+ }
49
+
50
+ //#endregion
51
+ export { createTRPCTanstackQueryServer };
2
52
  //# sourceMappingURL=server.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.mjs","names":[],"sources":["../../src/tanstack-query/server.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\nimport type { MaybePromise } from \"@stryke/types\";\nimport type { QueryClientConfig } from \"@tanstack/react-query\";\nimport { dehydrate, HydrationBoundary } from \"@tanstack/react-query\";\nimport type { AnyTRPCRouter, inferRouterContext } from \"@trpc/server\";\nimport type { TRPCQueryOptions } from \"@trpc/tanstack-react-query\";\nimport { createTRPCOptionsProxy } from \"@trpc/tanstack-react-query\";\nimport defu from \"defu\";\nimport React, { cache } from \"react\";\nimport \"server-only\";\nimport { createQueryClient } from \"../shared\";\n\n/**\n * Create a TRPC Tanstack Query server.\n *\n * @param router - The TRPC router\n * @param createContext - The context creator function\n * @param queryClientConfig - The query client config\n * @returns The TRPC Tanstack Query server\n */\nexport function createTRPCTanstackQueryServer<\n TRouter extends AnyTRPCRouter,\n TContext extends inferRouterContext<TRouter> = inferRouterContext<TRouter>\n>(\n headers: () => Promise<Headers>,\n router: TRouter,\n createContext: () => MaybePromise<TContext> = () => ({}) as TContext,\n queryClientConfig: Partial<QueryClientConfig> = {}\n) {\n const _createContext = cache(async (): Promise<TContext> => {\n const context = await Promise.resolve(createContext());\n\n const _headers = new Headers(await headers());\n _headers.set(\"x-trpc-source\", \"rsc\");\n\n return defu(\n {\n headers: Object.fromEntries(_headers)\n },\n context\n ) as TContext;\n });\n\n /**\n * Create a stable getter for the query client that\n * will return the same client during the same request.\n */\n const getQueryClient = cache(() => createQueryClient(queryClientConfig));\n\n const trpc = createTRPCOptionsProxy({\n router,\n queryClient: getQueryClient,\n ctx: _createContext\n });\n\n return {\n trpc,\n HydrateClient: (props: { children: React.ReactNode }) => {\n const dehydratedState = dehydrate(getQueryClient());\n\n return (\n <HydrationBoundary state={dehydratedState}>\n {props.children}\n </HydrationBoundary>\n );\n },\n prefetch: <T extends ReturnType<TRPCQueryOptions<any>>>(\n queryOptions: T\n ) => {\n const queryClient = getQueryClient();\n if (queryOptions.queryKey[1]?.type === \"infinite\") {\n void queryClient.prefetchInfiniteQuery(queryOptions as any);\n } else {\n void queryClient.prefetchQuery(queryOptions);\n }\n }\n };\n}\n"],"mappings":"gTAqCA,SAAgB,EAId,EACA,EACA,OAAqD,EAAE,EACvD,EAAgD,EAAE,CAClD,CACA,IAAM,EAAiB,EAAM,SAA+B,CAC1D,IAAM,EAAU,MAAM,QAAQ,QAAQ,GAAe,CAAC,CAEhD,EAAW,IAAI,QAAQ,MAAM,GAAS,CAAC,CAG7C,OAFA,EAAS,IAAI,gBAAiB,MAAM,CAE7B,EACL,CACE,QAAS,OAAO,YAAY,EAAS,CACtC,CACD,EACD,EACD,CAMI,EAAiB,MAAY,EAAkB,EAAkB,CAAC,CAQxE,MAAO,CACL,KAPW,EAAuB,CAClC,SACA,YAAa,EACb,IAAK,EACN,CAAC,CAIA,cAAgB,GAIZ,EAAC,EAAA,CAAkB,MAHG,EAAU,GAAgB,CAAC,UAI9C,EAAM,UACW,CAGxB,SACE,GACG,CACH,IAAM,EAAc,GAAgB,CAChC,EAAa,SAAS,IAAI,OAAS,WAChC,EAAY,sBAAsB,EAAoB,CAEtD,EAAY,cAAc,EAAa,EAGjD"}
1
+ {"version":3,"file":"server.mjs","names":[],"sources":["../../src/tanstack-query/server.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\nimport type { MaybePromise } from \"@stryke/types\";\nimport type { QueryClientConfig } from \"@tanstack/react-query\";\nimport { dehydrate, HydrationBoundary } from \"@tanstack/react-query\";\nimport type { AnyTRPCRouter, inferRouterContext } from \"@trpc/server\";\nimport type { TRPCQueryOptions } from \"@trpc/tanstack-react-query\";\nimport { createTRPCOptionsProxy } from \"@trpc/tanstack-react-query\";\nimport defu from \"defu\";\nimport React, { cache } from \"react\";\nimport \"server-only\";\nimport { createQueryClient } from \"../shared\";\n\n/**\n * Create a TRPC Tanstack Query server.\n *\n * @param router - The TRPC router\n * @param createContext - The context creator function\n * @param queryClientConfig - The query client config\n * @returns The TRPC Tanstack Query server\n */\nexport function createTRPCTanstackQueryServer<\n TRouter extends AnyTRPCRouter,\n TContext extends inferRouterContext<TRouter> = inferRouterContext<TRouter>\n>(\n headers: () => Promise<Headers>,\n router: TRouter,\n createContext: () => MaybePromise<TContext> = () => ({}) as TContext,\n queryClientConfig: Partial<QueryClientConfig> = {}\n) {\n const _createContext = cache(async (): Promise<TContext> => {\n const context = await Promise.resolve(createContext());\n\n const _headers = new Headers(await headers());\n _headers.set(\"x-trpc-source\", \"rsc\");\n\n return defu(\n {\n headers: Object.fromEntries(_headers)\n },\n context\n ) as TContext;\n });\n\n /**\n * Create a stable getter for the query client that\n * will return the same client during the same request.\n */\n const getQueryClient = cache(() => createQueryClient(queryClientConfig));\n\n const trpc = createTRPCOptionsProxy({\n router,\n queryClient: getQueryClient,\n ctx: _createContext\n });\n\n return {\n trpc,\n HydrateClient: (props: { children: React.ReactNode }) => {\n const dehydratedState = dehydrate(getQueryClient());\n\n return (\n <HydrationBoundary state={dehydratedState}>\n {props.children}\n </HydrationBoundary>\n );\n },\n prefetch: <T extends ReturnType<TRPCQueryOptions<any>>>(\n queryOptions: T\n ) => {\n const queryClient = getQueryClient();\n if (queryOptions.queryKey[1]?.type === \"infinite\") {\n void queryClient.prefetchInfiniteQuery(queryOptions as any);\n } else {\n void queryClient.prefetchQuery(queryOptions);\n }\n }\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAqCA,SAAgB,8BAId,SACA,QACA,uBAAqD,EAAE,GACvD,oBAAgD,EAAE,EAClD;CACA,MAAM,iBAAiB,MAAM,YAA+B;EAC1D,MAAM,UAAU,MAAM,QAAQ,QAAQ,eAAe,CAAC;EAEtD,MAAM,WAAW,IAAI,QAAQ,MAAM,SAAS,CAAC;AAC7C,WAAS,IAAI,iBAAiB,MAAM;AAEpC,SAAO,KACL,EACE,SAAS,OAAO,YAAY,SAAS,EACtC,EACD,QACD;GACD;;;;;CAMF,MAAM,iBAAiB,YAAY,kBAAkB,kBAAkB,CAAC;AAQxE,QAAO;EACL,MAPW,uBAAuB;GAClC;GACA,aAAa;GACb,KAAK;GACN,CAAC;EAIA,gBAAgB,UAAyC;AAGvD,UACE,oBAAC;IAAkB,OAHG,UAAU,gBAAgB,CAAC;cAI9C,MAAM;KACW;;EAGxB,WACE,iBACG;GACH,MAAM,cAAc,gBAAgB;AACpC,OAAI,aAAa,SAAS,IAAI,SAAS,WACrC,CAAK,YAAY,sBAAsB,aAAoB;OAE3D,CAAK,YAAY,cAAc,aAAa;;EAGjD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stryke/trpc-next",
3
- "version": "0.5.48",
3
+ "version": "0.5.49",
4
4
  "type": "module",
5
5
  "description": "A package to help in using tRPC in modern NextJs applications.",
6
6
  "repository": {
@@ -101,5 +101,5 @@
101
101
  "tsdown": "^0.17.2"
102
102
  },
103
103
  "publishConfig": { "access": "public" },
104
- "gitHead": "d7628ea6fec405e8ba9926647a055820bbc4ee87"
104
+ "gitHead": "9c02f25b3bf83a1228a94fc2ef3fcd816dc0f707"
105
105
  }