@prpc/react
Advanced tools
+1
-1
@@ -1,2 +0,2 @@ | ||
| "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _reactquery = require('@tanstack/react-query');var _core = require('@prpc/core'); _createStarExport(_core);function S(...e){let{key:r,queryFn:o}=_core.getParams.call(void 0, !0,...e);return n=>_reactquery.useMutation.call(void 0, {mutationKey:_core.genQueryKey.call(void 0, r,void 0,!0),mutationFn:d=>_core.tryAndWrap.call(void 0, o,d),...n||{}})}function v(...e){let{key:r,queryFn:o}=_core.getParams.call(void 0, !1,...e),n=(t,a)=>t.prefetchQuery({queryKey:_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, a)),queryFn:()=>_core.tryAndWrap.call(void 0, o,a)}),d=async(t,a,i)=>(await t.prefetchQuery({queryKey:_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, a)),queryFn:()=>_core.tryAndWrap.call(void 0, i!=null?i:o,a)}),{prpcState:_reactquery.dehydrate.call(void 0, t)}),s=(t,a)=>{var c;let i=_reactquery.useQueryClient.call(void 0, );return typeof window=="undefined"&&(a==null?void 0:a.enabled)!==!1&&!i.getQueryCache().find(_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, t)))&&n(i,t),_reactquery.useQuery.call(void 0, {queryKey:_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, t)),queryFn:()=>_core.tryAndWrap.call(void 0, o,t),...((c=i.getQueryCache().find(_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, t))))==null?void 0:c.state.status)==="error"?{retryOnMount:!1,...a}:a})};return new Proxy(s,{get:(t,a)=>a==="prefetch"?n:a==="fullyDehydrate"?d:a==="callRaw"?o:t})}var _jsxruntime = require('react/jsx-runtime');var z=({children:e,queryClient:r})=>_jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider,{client:r,children:e}),l= exports.QueryProvider =z,p= exports.Hydrate =e=>_jsxruntime.jsx.call(void 0, _reactquery.Hydrate,{...e});function H(e,r){let o=d=>{var t;let s=(t=d==null?void 0:d.pageProps)==null?void 0:t.prpcState;return _jsxruntime.jsx.call(void 0, l,{queryClient:e,children:_jsxruntime.jsx.call(void 0, p,{state:s,children:_jsxruntime.jsx.call(void 0, r,{...d})})})},n=r.displayName||r.name||"Component";return o.displayName=`innerWithPRPC(${n})`,o}function K(e){let r=e.headers["x-forwarded-proto"]||"http",o=e.headers["x-forwarded-host"]||e.headers.host,n=new URL(e.url,`${r}://${o}`);return new Request(n,e)}var _=e=>new (0, _reactquery.QueryClient)(e);async function V(e){let r=n=>typeof n=="object"&&typeof n.payload=="string"?n:{payload:n?typeof n=="string"?n:JSON.stringify(n):""},o=async n=>{let d=await e.queryFn.callRaw(r(n),{headers:new Headers(e.ctx.req.headers),method:e.ctx.req.method,url:e.ctx.req.url});return d instanceof Response&&e.ctx.res&&(d.headers.forEach((s,t)=>{t!=="content-type"&&e.ctx.res.setHeader(t,s)}),e.ctx.res.statusCode=d.status,d=await d.json()),d};return e.queryClient?await e.queryFn.fullyDehydrate(e.queryClient,e.payload,o):await o(e.payload)}exports.Hydrate = p; exports.QueryProvider = l; exports.createPrpcQueryClient = _; exports.handle$ = V; exports.mutation$ = S; exports.nextApiRequestToNodeRequest = K; exports.query$ = v; exports.withPRPC = H; | ||
| "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _reactquery = require('@tanstack/react-query');var _core = require('@prpc/core'); _createStarExport(_core);function S(...e){let{key:r,queryFn:a}=_core.getParams.call(void 0, !0,...e);return n=>_reactquery.useMutation.call(void 0, {mutationKey:_core.genQueryKey.call(void 0, r,void 0,!0),mutationFn:d=>_core.tryAndWrap.call(void 0, a,d),...n||{}})}function T(...e){let{key:r,queryFn:a}=_core.getParams.call(void 0, !1,...e),n=(t,o)=>t.prefetchQuery({queryKey:_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, o)),queryFn:()=>_core.tryAndWrap.call(void 0, a,o)}),d=async(t,o,i)=>(await t.prefetchQuery({queryKey:_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, o)),queryFn:()=>_core.tryAndWrap.call(void 0, i!=null?i:a,o)}),{prpcState:_reactquery.dehydrate.call(void 0, t)}),s=(t,o)=>{var m;let i=_reactquery.useQueryClient.call(void 0, );return typeof window=="undefined"&&(o==null?void 0:o.enabled)!==!1&&!i.getQueryCache().find(_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, t)))&&n(i,t),_reactquery.useQuery.call(void 0, {queryKey:_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, t)),queryFn:()=>_core.tryAndWrap.call(void 0, a,t),...((m=i.getQueryCache().find(_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, t))))==null?void 0:m.state.status)==="error"?{retryOnMount:!1,...o}:o})};return new Proxy(s,{get:(t,o)=>o==="prefetch"?n:o==="fullyDehydrate"?d:o==="callRaw"?a:t})}var _jsxruntime = require('react/jsx-runtime');var M=({children:e,queryClient:r})=>_jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider,{client:r,children:e}),p= exports.QueryProvider =M,c= exports.Hydrate =e=>_jsxruntime.jsx.call(void 0, _reactquery.Hydrate,{...e});function k(e,r){let a=d=>{var t;let s=(t=d==null?void 0:d.pageProps)==null?void 0:t.prpcState;return _jsxruntime.jsx.call(void 0, p,{queryClient:e,children:_jsxruntime.jsx.call(void 0, c,{state:s,children:_jsxruntime.jsx.call(void 0, r,{...d})})})},n=r.displayName||r.name||"Component";return a.displayName=`innerWithPRPC(${n})`,a}function W(e){let r=e.headers["x-forwarded-proto"]||"http",a=e.headers["x-forwarded-host"]||e.headers.host,n=new URL(e.url,`${r}://${a}`);return new Request(n,e)}var _=e=>new (0, _reactquery.QueryClient)(e);async function V(e){let r=n=>typeof n=="object"&&typeof n.payload=="string"?n:{payload:n?typeof n=="string"?n:JSON.stringify(n):""},a=async n=>{let d=await e.queryFn.callRaw(r(n),{headers:new Headers(e.ctx.req.headers),method:e.ctx.req.method,url:e.ctx.req.url});return d instanceof Response&&e.ctx.res&&(d.headers.forEach((s,t)=>{t!=="content-type"&&e.ctx.res.setHeader(t,s)}),e.ctx.res.statusCode=d.status,d=await d.json()),d};return e.queryClient?await e.queryFn.fullyDehydrate(e.queryClient,e.payload,a):await a(e.payload)}exports.Hydrate = c; exports.QueryProvider = p; exports.createPrpcQueryClient = _; exports.handle$ = V; exports.mutation$ = S; exports.nextApiRequestToNodeRequest = W; exports.query$ = T; exports.withPRPC = k; | ||
| //# sourceMappingURL=index.cjs.map |
+1
-1
@@ -1,2 +0,2 @@ | ||
| "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _reactquery = require('@tanstack/react-query');var _core = require('@prpc/core'); _createStarExport(_core);function S(...e){let{key:r,queryFn:o}=_core.getParams.call(void 0, !0,...e);return n=>_reactquery.useMutation.call(void 0, {mutationKey:_core.genQueryKey.call(void 0, r,void 0,!0),mutationFn:d=>_core.tryAndWrap.call(void 0, o,d),...n||{}})}function v(...e){let{key:r,queryFn:o}=_core.getParams.call(void 0, !1,...e),n=(t,a)=>t.prefetchQuery({queryKey:_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, a)),queryFn:()=>_core.tryAndWrap.call(void 0, o,a)}),d=async(t,a,i)=>(await t.prefetchQuery({queryKey:_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, a)),queryFn:()=>_core.tryAndWrap.call(void 0, i!=null?i:o,a)}),{prpcState:_reactquery.dehydrate.call(void 0, t)}),s=(t,a)=>{var c;let i=_reactquery.useQueryClient.call(void 0, );return typeof window=="undefined"&&(a==null?void 0:a.enabled)!==!1&&!i.getQueryCache().find(_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, t)))&&n(i,t),_reactquery.useQuery.call(void 0, {queryKey:_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, t)),queryFn:()=>_core.tryAndWrap.call(void 0, o,t),...((c=i.getQueryCache().find(_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, t))))==null?void 0:c.state.status)==="error"?{retryOnMount:!1,...a}:a})};return new Proxy(s,{get:(t,a)=>a==="prefetch"?n:a==="fullyDehydrate"?d:a==="callRaw"?o:t})}var _jsxruntime = require('react/jsx-runtime');var z=({children:e,queryClient:r})=>_jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider,{client:r,children:e}),l= exports.QueryProvider =z,p= exports.Hydrate =e=>_jsxruntime.jsx.call(void 0, _reactquery.Hydrate,{...e});function H(e,r){let o=d=>{var t;let s=(t=d==null?void 0:d.pageProps)==null?void 0:t.prpcState;return _jsxruntime.jsx.call(void 0, l,{queryClient:e,children:_jsxruntime.jsx.call(void 0, p,{state:s,children:_jsxruntime.jsx.call(void 0, r,{...d})})})},n=r.displayName||r.name||"Component";return o.displayName=`innerWithPRPC(${n})`,o}function K(e){let r=e.headers["x-forwarded-proto"]||"http",o=e.headers["x-forwarded-host"]||e.headers.host,n=new URL(e.url,`${r}://${o}`);return new Request(n,e)}var _=e=>new (0, _reactquery.QueryClient)(e);async function V(e){let r=n=>typeof n=="object"&&typeof n.payload=="string"?n:{payload:n?typeof n=="string"?n:JSON.stringify(n):""},o=async n=>{let d=await e.queryFn.callRaw(r(n),{headers:new Headers(e.ctx.req.headers),method:e.ctx.req.method,url:e.ctx.req.url});return d instanceof Response&&e.ctx.res&&(d.headers.forEach((s,t)=>{t!=="content-type"&&e.ctx.res.setHeader(t,s)}),e.ctx.res.statusCode=d.status,d=await d.json()),d};return e.queryClient?await e.queryFn.fullyDehydrate(e.queryClient,e.payload,o):await o(e.payload)}exports.Hydrate = p; exports.QueryProvider = l; exports.createPrpcQueryClient = _; exports.handle$ = V; exports.mutation$ = S; exports.nextApiRequestToNodeRequest = K; exports.query$ = v; exports.withPRPC = H; | ||
| "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); }var _reactquery = require('@tanstack/react-query');var _core = require('@prpc/core'); _createStarExport(_core);function S(...e){let{key:r,queryFn:a}=_core.getParams.call(void 0, !0,...e);return n=>_reactquery.useMutation.call(void 0, {mutationKey:_core.genQueryKey.call(void 0, r,void 0,!0),mutationFn:d=>_core.tryAndWrap.call(void 0, a,d),...n||{}})}function T(...e){let{key:r,queryFn:a}=_core.getParams.call(void 0, !1,...e),n=(t,o)=>t.prefetchQuery({queryKey:_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, o)),queryFn:()=>_core.tryAndWrap.call(void 0, a,o)}),d=async(t,o,i)=>(await t.prefetchQuery({queryKey:_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, o)),queryFn:()=>_core.tryAndWrap.call(void 0, i!=null?i:a,o)}),{prpcState:_reactquery.dehydrate.call(void 0, t)}),s=(t,o)=>{var m;let i=_reactquery.useQueryClient.call(void 0, );return typeof window=="undefined"&&(o==null?void 0:o.enabled)!==!1&&!i.getQueryCache().find(_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, t)))&&n(i,t),_reactquery.useQuery.call(void 0, {queryKey:_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, t)),queryFn:()=>_core.tryAndWrap.call(void 0, a,t),...((m=i.getQueryCache().find(_core.genQueryKey.call(void 0, r,_core.unwrapValue.call(void 0, t))))==null?void 0:m.state.status)==="error"?{retryOnMount:!1,...o}:o})};return new Proxy(s,{get:(t,o)=>o==="prefetch"?n:o==="fullyDehydrate"?d:o==="callRaw"?a:t})}var _jsxruntime = require('react/jsx-runtime');var M=({children:e,queryClient:r})=>_jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider,{client:r,children:e}),p= exports.QueryProvider =M,c= exports.Hydrate =e=>_jsxruntime.jsx.call(void 0, _reactquery.Hydrate,{...e});function k(e,r){let a=d=>{var t;let s=(t=d==null?void 0:d.pageProps)==null?void 0:t.prpcState;return _jsxruntime.jsx.call(void 0, p,{queryClient:e,children:_jsxruntime.jsx.call(void 0, c,{state:s,children:_jsxruntime.jsx.call(void 0, r,{...d})})})},n=r.displayName||r.name||"Component";return a.displayName=`innerWithPRPC(${n})`,a}function W(e){let r=e.headers["x-forwarded-proto"]||"http",a=e.headers["x-forwarded-host"]||e.headers.host,n=new URL(e.url,`${r}://${a}`);return new Request(n,e)}var _=e=>new (0, _reactquery.QueryClient)(e);async function V(e){let r=n=>typeof n=="object"&&typeof n.payload=="string"?n:{payload:n?typeof n=="string"?n:JSON.stringify(n):""},a=async n=>{let d=await e.queryFn.callRaw(r(n),{headers:new Headers(e.ctx.req.headers),method:e.ctx.req.method,url:e.ctx.req.url});return d instanceof Response&&e.ctx.res&&(d.headers.forEach((s,t)=>{t!=="content-type"&&e.ctx.res.setHeader(t,s)}),e.ctx.res.statusCode=d.status,d=await d.json()),d};return e.queryClient?await e.queryFn.fullyDehydrate(e.queryClient,e.payload,a):await a(e.payload)}exports.Hydrate = c; exports.QueryProvider = p; exports.createPrpcQueryClient = _; exports.handle$ = V; exports.mutation$ = S; exports.nextApiRequestToNodeRequest = W; exports.query$ = T; exports.withPRPC = k; | ||
| //# sourceMappingURL=index.cjs.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/index.tsx","../src/mutation.ts","../src/query.ts","../src/QueryProvider.tsx","../src/withPRPC.tsx"],"names":["QueryClient","useMutation","genQueryKey","tryAndWrap","getParams","mutation$","args","key","queryFn","mutationOpts","input","useQuery","useQueryClient","dehydrate","unwrapValue","query$","prefetch","queryClient","fullyDehydrate","fn","queryOpts","_a","target","prop","QueryClientProvider","ReactQueryHydrate","jsx","QueryProvider","children","QueryProvider_default","Hydrate","props","withPRPC","AppOrPage","innerWithPRPC","hydratedState","displayName","nextApiRequestToNodeRequest","req","protocol","host","actualUrl","createPrpcQueryClient","cfg","handle$","getInput","payload","newFn","res","v","k"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { AsParam, InferReturnType } from '@prpc/core'\nimport { QueryClient, type QueryClientConfig } from '@tanstack/react-query'\nimport type { query$ } from './query'\n\nexport * from './mutation'\nexport * from './query'\nexport * from '@prpc/core'\nexport { default as QueryProvider, Hydrate } from './QueryProvider'\nexport * from './withPRPC'\n\nexport function nextApiRequestToNodeRequest(req: any) {\n const protocol = req.headers['x-forwarded-proto'] || 'http'\n const host = req.headers['x-forwarded-host'] || req.headers.host\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n const actualUrl = new URL(req.url as string, `${protocol}://${host}`)\n return new Request(actualUrl, req as unknown as Request)\n}\n\nexport const createPrpcQueryClient = (cfg?: QueryClientConfig) =>\n new QueryClient(cfg)\n\nexport async function handle$<\n Fn extends ReturnType<typeof query$>,\n QClient extends QueryClient | undefined = undefined\n>(input: {\n ctx: { req: any; res: any }\n queryFn: Fn\n payload: AsParam<Fn>\n queryClient?: QClient\n}): Promise<\n QClient extends QueryClient\n ? InferReturnType<Fn['fullyDehydrate']>\n : InferReturnType<Fn['callRaw']>\n> {\n const getInput = (payload: any) => {\n if (typeof payload === 'object' && typeof payload.payload === 'string') {\n return payload\n }\n return {\n payload: payload\n ? typeof payload === 'string'\n ? payload\n : JSON.stringify(payload)\n : '',\n }\n }\n const newFn = async (payload: any) => {\n let res = await input.queryFn.callRaw(\n getInput(payload),\n // @ts-expect-error all good\n {\n headers: new Headers(input.ctx.req.headers),\n method: input.ctx.req.method,\n url: input.ctx.req.url,\n }\n )\n if (res instanceof Response && input.ctx.res) {\n res.headers.forEach((v, k) => {\n if (k === 'content-type') return\n input.ctx.res.setHeader(k, v)\n })\n input.ctx.res.statusCode = res.status\n res = await res.json()\n }\n return res\n }\n if (input.queryClient) {\n return (await input.queryFn.fullyDehydrate(\n input.queryClient,\n input.payload,\n newFn\n )) as any\n }\n return await newFn(input.payload)\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n useMutation,\n type UseMutationResult,\n type UseMutationOptions,\n} from '@tanstack/react-query'\nimport type zod from 'zod'\nimport {\n type IMiddleware,\n type InferReturnType,\n type ExpectedFn,\n type AsParam,\n type PRPCClientError,\n type ObjectParams,\n genQueryKey,\n tryAndWrap,\n getParams,\n} from '@prpc/core'\n\nexport function mutation$<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >,\n ZObj extends zod.ZodSchema | void | undefined = void | undefined\n>(\n params: ObjectParams<ZObj, Mw, Fn, true>\n): (\n mutationOpts?: UseMutationOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n) => UseMutationResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n>\n\nexport function mutation$<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<undefined, Mw>\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n>(\n queryFn: Fn,\n key: string,\n ..._middlewares: Mw\n): (\n mutationOpts?: UseMutationOptions<\n InferReturnType<Fn>,\n PRPCClientError<any>,\n AsParam<Fn, false>\n >\n) => UseMutationResult<\n InferReturnType<Fn>,\n PRPCClientError<any>,\n AsParam<Fn, false>\n>\n\nexport function mutation$<\n ZObj extends zod.ZodSchema | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends zod.ZodSchema ? zod.infer<ZObj> : undefined,\n Mw\n >\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n>(\n queryFn: Fn,\n key: string,\n _schema?: ZObj,\n ..._middlewares: Mw\n): (\n mutationOpts?: UseMutationOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n) => UseMutationResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n>\n\nexport function mutation$<\n ZObj extends zod.ZodSchema | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends zod.ZodSchema ? zod.infer<ZObj> : undefined,\n Mw\n >\n>(...args: any[]) {\n const { key, queryFn } = getParams(true, ...args)\n return (\n mutationOpts?: UseMutationOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n ) => {\n return useMutation({\n mutationKey: genQueryKey(key, undefined, true),\n mutationFn: (input: AsParam<Fn, false>) => tryAndWrap(queryFn, input),\n ...((mutationOpts || {}) as any),\n }) as UseMutationResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n type QueryClient,\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n useQueryClient,\n dehydrate,\n type DehydratedState,\n} from '@tanstack/react-query'\nimport type zod from 'zod'\nimport {\n type InferReturnType,\n type ExpectedFn,\n type AsParam,\n type IMiddleware,\n type ObjectParams,\n type PRPCClientError,\n type WithVoid,\n genQueryKey,\n tryAndWrap,\n unwrapValue,\n getParams,\n} from '@prpc/core'\n\nexport function query$<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >,\n ZObj extends zod.ZodSchema | void | undefined = void | undefined\n>(\n params: ObjectParams<ZObj, Mw, Fn>\n): {\n (\n input: WithVoid<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined\n >,\n queryOpts?: UseQueryOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n ): UseQueryResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n prefetch: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>\n ) => Promise<InferReturnType<Fn>>\n fullyDehydrate: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>,\n fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n ) => Promise<{ prpcState: DehydratedState }>\n callRaw: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n}\n\nexport function query$<\n ZObj extends zod.ZodSchema | void | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<undefined, Mw>\n>(\n queryFn: Fn,\n key: string,\n ..._middlewares: Mw\n): {\n (\n input: WithVoid<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined\n >,\n queryOpts?: UseQueryOptions<InferReturnType<Fn>, PRPCClientError<any>>\n ): UseQueryResult<InferReturnType<Fn>, PRPCClientError<any>>\n prefetch: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>\n ) => Promise<InferReturnType<Fn>>\n fullyDehydrate: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>,\n fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n ) => Promise<{ prpcState: DehydratedState }>\n callRaw: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n}\n\nexport function query$<\n ZObj extends zod.ZodSchema | void | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void, Mw>\n>(\n queryFn: Fn,\n key: string,\n _schema?: ZObj,\n ..._middlewares: Mw\n): {\n (\n input: WithVoid<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined\n >,\n queryOpts?: UseQueryOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n ): UseQueryResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n prefetch: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>\n ) => Promise<InferReturnType<Fn>>\n fullyDehydrate: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>,\n fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n ) => Promise<{ prpcState: DehydratedState }>\n callRaw: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n}\n\nexport function query$<\n ZObj extends zod.ZodSchema | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends zod.ZodSchema ? zod.infer<ZObj> : undefined,\n Mw\n >\n>(...args: any[]) {\n const { key, queryFn } = getParams(false, ...args)\n\n const prefetch = (queryClient: QueryClient, input: AsParam<Fn, false>) => {\n return queryClient.prefetchQuery({\n queryKey: genQueryKey(key, unwrapValue(input)),\n queryFn: () => tryAndWrap(queryFn, input),\n })\n }\n\n const fullyDehydrate = async (\n queryClient: QueryClient,\n input: AsParam<Fn, false>,\n fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n ) => {\n await queryClient.prefetchQuery({\n queryKey: genQueryKey(key, unwrapValue(input)),\n queryFn: () => tryAndWrap(fn ?? (queryFn as any), input),\n })\n return { prpcState: dehydrate(queryClient) }\n }\n\n const fn = (\n input: AsParam<Fn, false>,\n queryOpts?: UseQueryOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n ) => {\n const queryClient = useQueryClient()\n if (\n typeof window === 'undefined' &&\n queryOpts?.enabled !== false &&\n !queryClient.getQueryCache().find(genQueryKey(key, unwrapValue(input)))\n ) {\n void prefetch(queryClient, input)\n }\n return useQuery({\n queryKey: genQueryKey(key, unwrapValue(input)),\n queryFn: () => tryAndWrap(queryFn, input),\n ...(queryClient.getQueryCache().find(genQueryKey(key, unwrapValue(input)))\n ?.state.status === 'error'\n ? {\n retryOnMount: false,\n ...queryOpts,\n }\n : queryOpts),\n }) as UseQueryResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n }\n\n return new Proxy(fn, {\n get: (target, prop) => {\n if (prop === 'prefetch') {\n return prefetch\n } else if (prop === 'fullyDehydrate') {\n return fullyDehydrate\n } else if (prop === 'callRaw') {\n return queryFn\n }\n return target\n },\n })\n}\n","/* eslint-disable solid/no-destructure */\nimport {\n QueryClientProvider,\n type QueryClient,\n type HydrateProps,\n Hydrate as ReactQueryHydrate,\n} from '@tanstack/react-query'\n\nconst QueryProvider: React.FC<{\n children: React.ReactNode\n queryClient: QueryClient\n}> = ({ children, queryClient }) => {\n return (\n <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>\n )\n}\n\nexport default QueryProvider\n\nexport const Hydrate: React.FC<HydrateProps> = (props) => {\n return <ReactQueryHydrate {...props} />\n}\n","/* eslint-disable solid/reactivity */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DehydratedState, QueryClient } from '@tanstack/react-query'\nimport type { ComponentType } from 'react'\nimport QueryProvider, { Hydrate } from './QueryProvider'\n\ntype NextComponentType<\n Context,\n InitialProps = unknown,\n Props = unknown\n> = ComponentType<Props> & {\n /**\n * Used for initial page load data population. Data returned from `getInitialProps` is serialized when server rendered.\n * Make sure to return plain `Object` without using `Date`, `Map`, `Set`.\n * @param context Context of `page`\n */\n getInitialProps?(context: Context): InitialProps | Promise<InitialProps>\n}\n\nexport function withPRPC(\n queryClient: QueryClient,\n AppOrPage: NextComponentType<any, any, any>\n) {\n const innerWithPRPC = (props: any) => {\n const hydratedState: DehydratedState | undefined =\n props?.pageProps?.prpcState\n return (\n <QueryProvider queryClient={queryClient}>\n <Hydrate state={hydratedState}>\n <AppOrPage {...props} />\n </Hydrate>\n </QueryProvider>\n )\n }\n const displayName = AppOrPage.displayName || AppOrPage.name || 'Component'\n innerWithPRPC.displayName = `innerWithPRPC(${displayName})`\n return innerWithPRPC\n}\n"]} | ||
| {"version":3,"sources":["../src/index.tsx","../src/mutation.ts","../src/query.ts","../src/QueryProvider.tsx","../src/withPRPC.tsx"],"names":["QueryClient","useMutation","genQueryKey","tryAndWrap","getParams","mutation$","args","key","queryFn","mutationOpts","input","useQuery","useQueryClient","dehydrate","unwrapValue","query$","prefetch","queryClient","fullyDehydrate","fn","queryOpts","_a","target","prop","QueryClientProvider","ReactQueryHydrate","jsx","QueryProvider","children","QueryProvider_default","Hydrate","props","withPRPC","AppOrPage","innerWithPRPC","hydratedState","displayName","nextApiRequestToNodeRequest","req","protocol","host","actualUrl","createPrpcQueryClient","cfg","handle$","getInput","payload","newFn","res","v","k"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { AsParam, InferReturnType } from '@prpc/core'\nimport { QueryClient, type QueryClientConfig } from '@tanstack/react-query'\nimport type { query$ } from './query'\n\nexport * from './mutation'\nexport * from './query'\nexport * from '@prpc/core'\nexport { default as QueryProvider, Hydrate } from './QueryProvider'\nexport * from './withPRPC'\n\nexport function nextApiRequestToNodeRequest(req: any) {\n const protocol = req.headers['x-forwarded-proto'] || 'http'\n const host = req.headers['x-forwarded-host'] || req.headers.host\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n const actualUrl = new URL(req.url as string, `${protocol}://${host}`)\n return new Request(actualUrl, req as unknown as Request)\n}\n\nexport const createPrpcQueryClient = (cfg?: QueryClientConfig) =>\n new QueryClient(cfg)\n\nexport async function handle$<\n Fn extends ReturnType<typeof query$>,\n QClient extends QueryClient | undefined = undefined\n>(input: {\n ctx: { req: any; res: any }\n queryFn: Fn\n payload: AsParam<Fn>\n queryClient?: QClient\n}): Promise<\n QClient extends QueryClient\n ? InferReturnType<Fn['fullyDehydrate']>\n : InferReturnType<Fn['callRaw']>\n> {\n const getInput = (payload: any) => {\n if (typeof payload === 'object' && typeof payload.payload === 'string') {\n return payload\n }\n return {\n payload: payload\n ? typeof payload === 'string'\n ? payload\n : JSON.stringify(payload)\n : '',\n }\n }\n const newFn = async (payload: any) => {\n let res = await input.queryFn.callRaw(\n getInput(payload),\n // @ts-expect-error all good\n {\n headers: new Headers(input.ctx.req.headers),\n method: input.ctx.req.method,\n url: input.ctx.req.url,\n }\n )\n if (res instanceof Response && input.ctx.res) {\n res.headers.forEach((v, k) => {\n if (k === 'content-type') return\n input.ctx.res.setHeader(k, v)\n })\n input.ctx.res.statusCode = res.status\n res = await res.json()\n }\n return res\n }\n if (input.queryClient) {\n return (await input.queryFn.fullyDehydrate(\n input.queryClient,\n input.payload,\n newFn\n )) as any\n }\n return await newFn(input.payload)\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n useMutation,\n type UseMutationResult,\n type UseMutationOptions,\n} from '@tanstack/react-query'\nimport type zod from 'zod'\nimport {\n type IMiddleware,\n type InferReturnType,\n type ExpectedFn,\n type AsParam,\n type PRPCClientError,\n type ObjectParams,\n genQueryKey,\n tryAndWrap,\n getParams,\n} from '@prpc/core'\n\nexport type ExpectedMutationReturn<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >,\n ZObj extends zod.ZodSchema | void | undefined = void | undefined\n> = (\n mutationOpts?: UseMutationOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n) => UseMutationResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n>\nexport function mutation$<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >,\n ZObj extends zod.ZodSchema | void | undefined = void | undefined\n>(\n params: ObjectParams<ZObj, Mw, Fn, true>\n): ExpectedMutationReturn<Mw, Fn, ZObj>\n\nexport function mutation$<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<void | undefined, Mw>\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n>(queryFn: Fn, key: string, ..._middlewares: Mw): ExpectedMutationReturn<Mw, Fn>\n\nexport function mutation$<\n ZObj extends zod.ZodSchema | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n>(\n queryFn: Fn,\n key: string,\n _schema?: ZObj,\n ..._middlewares: Mw\n): ExpectedMutationReturn<Mw, Fn, ZObj>\n\nexport function mutation$<\n ZObj extends zod.ZodSchema | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends zod.ZodSchema ? zod.infer<ZObj> : undefined,\n Mw\n >\n>(...args: any[]) {\n const { key, queryFn } = getParams(true, ...args)\n return (\n mutationOpts?: UseMutationOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n ) => {\n return useMutation({\n mutationKey: genQueryKey(key, undefined, true),\n mutationFn: (input: AsParam<Fn, false>) => tryAndWrap(queryFn, input),\n ...((mutationOpts || {}) as any),\n }) as UseMutationResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n type QueryClient,\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n useQueryClient,\n dehydrate,\n type DehydratedState,\n} from '@tanstack/react-query'\nimport type zod from 'zod'\nimport {\n type InferReturnType,\n type ExpectedFn,\n type AsParam,\n type IMiddleware,\n type ObjectParams,\n type PRPCClientError,\n type WithVoid,\n genQueryKey,\n tryAndWrap,\n unwrapValue,\n getParams,\n} from '@prpc/core'\n\nexport type ExpectedQueryReturn<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >,\n ZObj extends zod.ZodSchema | void | undefined = void | undefined\n> = {\n (\n input: WithVoid<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined\n >,\n queryOpts?: UseQueryOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n ): UseQueryResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n prefetch: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>\n ) => Promise<InferReturnType<Fn>>\n fullyDehydrate: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>,\n fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n ) => Promise<{ prpcState: DehydratedState }>\n callRaw: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n}\nexport function query$<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >,\n ZObj extends zod.ZodSchema | void | undefined = void | undefined\n>(params: ObjectParams<ZObj, Mw, Fn>): ExpectedQueryReturn<Mw, Fn, ZObj>\n\nexport function query$<\n ZObj extends zod.ZodSchema | void | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<undefined, Mw>\n>(\n queryFn: Fn,\n key: string,\n ..._middlewares: Mw\n): ExpectedQueryReturn<Mw, Fn, ZObj>\n\nexport function query$<\n ZObj extends zod.ZodSchema | void | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >\n>(\n queryFn: Fn,\n key: string,\n _schema?: ZObj,\n ..._middlewares: Mw\n): ExpectedQueryReturn<Mw, Fn, ZObj>\n\nexport function query$<\n ZObj extends zod.ZodSchema | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends zod.ZodSchema ? zod.infer<ZObj> : undefined,\n Mw\n >\n>(...args: any[]) {\n const { key, queryFn } = getParams(false, ...args)\n\n const prefetch = (queryClient: QueryClient, input: AsParam<Fn, false>) => {\n return queryClient.prefetchQuery({\n queryKey: genQueryKey(key, unwrapValue(input)),\n queryFn: () => tryAndWrap(queryFn, input),\n })\n }\n\n const fullyDehydrate = async (\n queryClient: QueryClient,\n input: AsParam<Fn, false>,\n fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n ) => {\n await queryClient.prefetchQuery({\n queryKey: genQueryKey(key, unwrapValue(input)),\n queryFn: () => tryAndWrap(fn ?? (queryFn as any), input),\n })\n return { prpcState: dehydrate(queryClient) }\n }\n\n const fn = (\n input: AsParam<Fn, false>,\n queryOpts?: UseQueryOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n ) => {\n const queryClient = useQueryClient()\n if (\n typeof window === 'undefined' &&\n queryOpts?.enabled !== false &&\n !queryClient.getQueryCache().find(genQueryKey(key, unwrapValue(input)))\n ) {\n void prefetch(queryClient, input)\n }\n return useQuery({\n queryKey: genQueryKey(key, unwrapValue(input)),\n queryFn: () => tryAndWrap(queryFn, input),\n ...(queryClient.getQueryCache().find(genQueryKey(key, unwrapValue(input)))\n ?.state.status === 'error'\n ? {\n retryOnMount: false,\n ...queryOpts,\n }\n : queryOpts),\n }) as UseQueryResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n }\n\n return new Proxy(fn, {\n get: (target, prop) => {\n if (prop === 'prefetch') {\n return prefetch\n } else if (prop === 'fullyDehydrate') {\n return fullyDehydrate\n } else if (prop === 'callRaw') {\n return queryFn\n }\n return target\n },\n })\n}\n","/* eslint-disable solid/no-destructure */\nimport {\n QueryClientProvider,\n type QueryClient,\n type HydrateProps,\n Hydrate as ReactQueryHydrate,\n} from '@tanstack/react-query'\n\nconst QueryProvider: React.FC<{\n children: React.ReactNode\n queryClient: QueryClient\n}> = ({ children, queryClient }) => {\n return (\n <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>\n )\n}\n\nexport default QueryProvider\n\nexport const Hydrate: React.FC<HydrateProps> = (props) => {\n return <ReactQueryHydrate {...props} />\n}\n","/* eslint-disable solid/reactivity */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DehydratedState, QueryClient } from '@tanstack/react-query'\nimport type { ComponentType } from 'react'\nimport QueryProvider, { Hydrate } from './QueryProvider'\n\ntype NextComponentType<\n Context,\n InitialProps = unknown,\n Props = unknown\n> = ComponentType<Props> & {\n /**\n * Used for initial page load data population. Data returned from `getInitialProps` is serialized when server rendered.\n * Make sure to return plain `Object` without using `Date`, `Map`, `Set`.\n * @param context Context of `page`\n */\n getInitialProps?(context: Context): InitialProps | Promise<InitialProps>\n}\n\nexport function withPRPC(\n queryClient: QueryClient,\n AppOrPage: NextComponentType<any, any, any>\n) {\n const innerWithPRPC = (props: any) => {\n const hydratedState: DehydratedState | undefined =\n props?.pageProps?.prpcState\n return (\n <QueryProvider queryClient={queryClient}>\n <Hydrate state={hydratedState}>\n <AppOrPage {...props} />\n </Hydrate>\n </QueryProvider>\n )\n }\n const displayName = AppOrPage.displayName || AppOrPage.name || 'Component'\n innerWithPRPC.displayName = `innerWithPRPC(${displayName})`\n return innerWithPRPC\n}\n"]} |
+10
-22
@@ -1,2 +0,2 @@ | ||
| import { IMiddleware, ExpectedFn, ObjectParams, WithVoid, InferReturnType, PRPCClientError, AsParam } from '@prpc/core'; | ||
| import { IMiddleware, ExpectedFn, WithVoid, InferReturnType, PRPCClientError, AsParam, ObjectParams } from '@prpc/core'; | ||
| export * from '@prpc/core'; | ||
@@ -7,3 +7,3 @@ import { UseQueryOptions, UseQueryResult, QueryClient, DehydratedState, UseMutationOptions, UseMutationResult, HydrateProps, QueryClientConfig } from '@tanstack/react-query'; | ||
| declare function query$<Mw extends IMiddleware[], Fn extends ExpectedFn<ZObj extends void | undefined ? void | undefined : ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void | undefined, Mw>, ZObj extends zod.ZodSchema | void | undefined = void | undefined>(params: ObjectParams<ZObj, Mw, Fn>): { | ||
| type ExpectedQueryReturn<Mw extends IMiddleware[], Fn extends ExpectedFn<ZObj extends void | undefined ? void | undefined : ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void | undefined, Mw>, ZObj extends zod.ZodSchema | void | undefined = void | undefined> = { | ||
| (input: WithVoid<ZObj extends void | undefined ? void | undefined : ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void | undefined>, queryOpts?: UseQueryOptions<InferReturnType<Fn>, PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>>): UseQueryResult<InferReturnType<Fn>, PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>>; | ||
@@ -16,22 +16,10 @@ prefetch: (queryClient: QueryClient, input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>; | ||
| }; | ||
| declare function query$<ZObj extends zod.ZodSchema | void | undefined, Mw extends IMiddleware[], Fn extends ExpectedFn<undefined, Mw>>(queryFn: Fn, key: string, ..._middlewares: Mw): { | ||
| (input: WithVoid<ZObj extends void | undefined ? void | undefined : ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void | undefined>, queryOpts?: UseQueryOptions<InferReturnType<Fn>, PRPCClientError<any>>): UseQueryResult<InferReturnType<Fn>, PRPCClientError<any>>; | ||
| prefetch: (queryClient: QueryClient, input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>; | ||
| fullyDehydrate: (queryClient: QueryClient, input: AsParam<Fn, false>, fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>) => Promise<{ | ||
| prpcState: DehydratedState; | ||
| }>; | ||
| callRaw: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>; | ||
| }; | ||
| declare function query$<ZObj extends zod.ZodSchema | void | undefined, Mw extends IMiddleware[], Fn extends ExpectedFn<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void, Mw>>(queryFn: Fn, key: string, _schema?: ZObj, ..._middlewares: Mw): { | ||
| (input: WithVoid<ZObj extends void | undefined ? void | undefined : ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void | undefined>, queryOpts?: UseQueryOptions<InferReturnType<Fn>, PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>>): UseQueryResult<InferReturnType<Fn>, PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>>; | ||
| prefetch: (queryClient: QueryClient, input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>; | ||
| fullyDehydrate: (queryClient: QueryClient, input: AsParam<Fn, false>, fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>) => Promise<{ | ||
| prpcState: DehydratedState; | ||
| }>; | ||
| callRaw: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>; | ||
| }; | ||
| declare function query$<Mw extends IMiddleware[], Fn extends ExpectedFn<ZObj extends void | undefined ? void | undefined : ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void | undefined, Mw>, ZObj extends zod.ZodSchema | void | undefined = void | undefined>(params: ObjectParams<ZObj, Mw, Fn>): ExpectedQueryReturn<Mw, Fn, ZObj>; | ||
| declare function query$<ZObj extends zod.ZodSchema | void | undefined, Mw extends IMiddleware[], Fn extends ExpectedFn<undefined, Mw>>(queryFn: Fn, key: string, ..._middlewares: Mw): ExpectedQueryReturn<Mw, Fn, ZObj>; | ||
| declare function query$<ZObj extends zod.ZodSchema | void | undefined, Mw extends IMiddleware[], Fn extends ExpectedFn<ZObj extends void | undefined ? void | undefined : ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void | undefined, Mw>>(queryFn: Fn, key: string, _schema?: ZObj, ..._middlewares: Mw): ExpectedQueryReturn<Mw, Fn, ZObj>; | ||
| declare function mutation$<Mw extends IMiddleware[], Fn extends ExpectedFn<ZObj extends void | undefined ? void | undefined : ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void | undefined, Mw>, ZObj extends zod.ZodSchema | void | undefined = void | undefined>(params: ObjectParams<ZObj, Mw, Fn, true>): (mutationOpts?: UseMutationOptions<InferReturnType<Fn>, PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>, AsParam<Fn, false>>) => UseMutationResult<InferReturnType<Fn>, PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>, AsParam<Fn, false>>; | ||
| declare function mutation$<Mw extends IMiddleware[], Fn extends ExpectedFn<undefined, Mw>>(queryFn: Fn, key: string, ..._middlewares: Mw): (mutationOpts?: UseMutationOptions<InferReturnType<Fn>, PRPCClientError<any>, AsParam<Fn, false>>) => UseMutationResult<InferReturnType<Fn>, PRPCClientError<any>, AsParam<Fn, false>>; | ||
| declare function mutation$<ZObj extends zod.ZodSchema | undefined, Mw extends IMiddleware[], Fn extends ExpectedFn<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : undefined, Mw>>(queryFn: Fn, key: string, _schema?: ZObj, ..._middlewares: Mw): (mutationOpts?: UseMutationOptions<InferReturnType<Fn>, PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>, AsParam<Fn, false>>) => UseMutationResult<InferReturnType<Fn>, PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>, AsParam<Fn, false>>; | ||
| type ExpectedMutationReturn<Mw extends IMiddleware[], Fn extends ExpectedFn<ZObj extends void | undefined ? void | undefined : ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void | undefined, Mw>, ZObj extends zod.ZodSchema | void | undefined = void | undefined> = (mutationOpts?: UseMutationOptions<InferReturnType<Fn>, PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>, AsParam<Fn, false>>) => UseMutationResult<InferReturnType<Fn>, PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>, AsParam<Fn, false>>; | ||
| declare function mutation$<Mw extends IMiddleware[], Fn extends ExpectedFn<ZObj extends void | undefined ? void | undefined : ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void | undefined, Mw>, ZObj extends zod.ZodSchema | void | undefined = void | undefined>(params: ObjectParams<ZObj, Mw, Fn, true>): ExpectedMutationReturn<Mw, Fn, ZObj>; | ||
| declare function mutation$<Mw extends IMiddleware[], Fn extends ExpectedFn<void | undefined, Mw>>(queryFn: Fn, key: string, ..._middlewares: Mw): ExpectedMutationReturn<Mw, Fn>; | ||
| declare function mutation$<ZObj extends zod.ZodSchema | undefined, Mw extends IMiddleware[], Fn extends ExpectedFn<ZObj extends void | undefined ? void | undefined : ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void | undefined, Mw>>(queryFn: Fn, key: string, _schema?: ZObj, ..._middlewares: Mw): ExpectedMutationReturn<Mw, Fn, ZObj>; | ||
@@ -70,2 +58,2 @@ declare const QueryProvider: React.FC<{ | ||
| export { Hydrate, QueryProvider, createPrpcQueryClient, handle$, mutation$, nextApiRequestToNodeRequest, query$, withPRPC }; | ||
| export { ExpectedMutationReturn, ExpectedQueryReturn, Hydrate, QueryProvider, createPrpcQueryClient, handle$, mutation$, nextApiRequestToNodeRequest, query$, withPRPC }; |
+1
-1
@@ -1,2 +0,2 @@ | ||
| import{QueryClient as Q}from"@tanstack/react-query";import{useMutation as F}from"@tanstack/react-query";import{genQueryKey as x,tryAndWrap as C,getParams as Z}from"@prpc/core";function S(...e){let{key:r,queryFn:o}=Z(!0,...e);return n=>F({mutationKey:x(r,void 0,!0),mutationFn:d=>C(o,d),...n||{}})}import{useQuery as R,useQueryClient as h,dehydrate as O}from"@tanstack/react-query";import{genQueryKey as u,tryAndWrap as f,unwrapValue as y,getParams as b}from"@prpc/core";function v(...e){let{key:r,queryFn:o}=b(!1,...e),n=(t,a)=>t.prefetchQuery({queryKey:u(r,y(a)),queryFn:()=>f(o,a)}),d=async(t,a,i)=>(await t.prefetchQuery({queryKey:u(r,y(a)),queryFn:()=>f(i!=null?i:o,a)}),{prpcState:O(t)}),s=(t,a)=>{var c;let i=h();return typeof window=="undefined"&&(a==null?void 0:a.enabled)!==!1&&!i.getQueryCache().find(u(r,y(t)))&&n(i,t),R({queryKey:u(r,y(t)),queryFn:()=>f(o,t),...((c=i.getQueryCache().find(u(r,y(t))))==null?void 0:c.state.status)==="error"?{retryOnMount:!1,...a}:a})};return new Proxy(s,{get:(t,a)=>a==="prefetch"?n:a==="fullyDehydrate"?d:a==="callRaw"?o:t})}export*from"@prpc/core";import{QueryClientProvider as j,Hydrate as w}from"@tanstack/react-query";import{jsx as P}from"react/jsx-runtime";var z=({children:e,queryClient:r})=>P(j,{client:r,children:e}),l=z,p=e=>P(w,{...e});import{jsx as m}from"react/jsx-runtime";function H(e,r){let o=d=>{var t;let s=(t=d==null?void 0:d.pageProps)==null?void 0:t.prpcState;return m(l,{queryClient:e,children:m(p,{state:s,children:m(r,{...d})})})},n=r.displayName||r.name||"Component";return o.displayName=`innerWithPRPC(${n})`,o}function K(e){let r=e.headers["x-forwarded-proto"]||"http",o=e.headers["x-forwarded-host"]||e.headers.host,n=new URL(e.url,`${r}://${o}`);return new Request(n,e)}var _=e=>new Q(e);async function V(e){let r=n=>typeof n=="object"&&typeof n.payload=="string"?n:{payload:n?typeof n=="string"?n:JSON.stringify(n):""},o=async n=>{let d=await e.queryFn.callRaw(r(n),{headers:new Headers(e.ctx.req.headers),method:e.ctx.req.method,url:e.ctx.req.url});return d instanceof Response&&e.ctx.res&&(d.headers.forEach((s,t)=>{t!=="content-type"&&e.ctx.res.setHeader(t,s)}),e.ctx.res.statusCode=d.status,d=await d.json()),d};return e.queryClient?await e.queryFn.fullyDehydrate(e.queryClient,e.payload,o):await o(e.payload)}export{p as Hydrate,l as QueryProvider,_ as createPrpcQueryClient,V as handle$,S as mutation$,K as nextApiRequestToNodeRequest,v as query$,H as withPRPC}; | ||
| import{QueryClient as z}from"@tanstack/react-query";import{useMutation as Z}from"@tanstack/react-query";import{genQueryKey as F,tryAndWrap as w,getParams as P}from"@prpc/core";function S(...e){let{key:r,queryFn:a}=P(!0,...e);return n=>Z({mutationKey:F(r,void 0,!0),mutationFn:d=>w(a,d),...n||{}})}import{useQuery as h,useQueryClient as b,dehydrate as C}from"@tanstack/react-query";import{genQueryKey as u,tryAndWrap as f,unwrapValue as y,getParams as O}from"@prpc/core";function T(...e){let{key:r,queryFn:a}=O(!1,...e),n=(t,o)=>t.prefetchQuery({queryKey:u(r,y(o)),queryFn:()=>f(a,o)}),d=async(t,o,i)=>(await t.prefetchQuery({queryKey:u(r,y(o)),queryFn:()=>f(i!=null?i:a,o)}),{prpcState:C(t)}),s=(t,o)=>{var m;let i=b();return typeof window=="undefined"&&(o==null?void 0:o.enabled)!==!1&&!i.getQueryCache().find(u(r,y(t)))&&n(i,t),h({queryKey:u(r,y(t)),queryFn:()=>f(a,t),...((m=i.getQueryCache().find(u(r,y(t))))==null?void 0:m.state.status)==="error"?{retryOnMount:!1,...o}:o})};return new Proxy(s,{get:(t,o)=>o==="prefetch"?n:o==="fullyDehydrate"?d:o==="callRaw"?a:t})}export*from"@prpc/core";import{QueryClientProvider as j,Hydrate as R}from"@tanstack/react-query";import{jsx as x}from"react/jsx-runtime";var M=({children:e,queryClient:r})=>x(j,{client:r,children:e}),p=M,c=e=>x(R,{...e});import{jsx as l}from"react/jsx-runtime";function k(e,r){let a=d=>{var t;let s=(t=d==null?void 0:d.pageProps)==null?void 0:t.prpcState;return l(p,{queryClient:e,children:l(c,{state:s,children:l(r,{...d})})})},n=r.displayName||r.name||"Component";return a.displayName=`innerWithPRPC(${n})`,a}function W(e){let r=e.headers["x-forwarded-proto"]||"http",a=e.headers["x-forwarded-host"]||e.headers.host,n=new URL(e.url,`${r}://${a}`);return new Request(n,e)}var _=e=>new z(e);async function V(e){let r=n=>typeof n=="object"&&typeof n.payload=="string"?n:{payload:n?typeof n=="string"?n:JSON.stringify(n):""},a=async n=>{let d=await e.queryFn.callRaw(r(n),{headers:new Headers(e.ctx.req.headers),method:e.ctx.req.method,url:e.ctx.req.url});return d instanceof Response&&e.ctx.res&&(d.headers.forEach((s,t)=>{t!=="content-type"&&e.ctx.res.setHeader(t,s)}),e.ctx.res.statusCode=d.status,d=await d.json()),d};return e.queryClient?await e.queryFn.fullyDehydrate(e.queryClient,e.payload,a):await a(e.payload)}export{c as Hydrate,p as QueryProvider,_ as createPrpcQueryClient,V as handle$,S as mutation$,W as nextApiRequestToNodeRequest,T as query$,k as withPRPC}; | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/index.tsx","../src/mutation.ts","../src/query.ts","../src/QueryProvider.tsx","../src/withPRPC.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { AsParam, InferReturnType } from '@prpc/core'\nimport { QueryClient, type QueryClientConfig } from '@tanstack/react-query'\nimport type { query$ } from './query'\n\nexport * from './mutation'\nexport * from './query'\nexport * from '@prpc/core'\nexport { default as QueryProvider, Hydrate } from './QueryProvider'\nexport * from './withPRPC'\n\nexport function nextApiRequestToNodeRequest(req: any) {\n const protocol = req.headers['x-forwarded-proto'] || 'http'\n const host = req.headers['x-forwarded-host'] || req.headers.host\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n const actualUrl = new URL(req.url as string, `${protocol}://${host}`)\n return new Request(actualUrl, req as unknown as Request)\n}\n\nexport const createPrpcQueryClient = (cfg?: QueryClientConfig) =>\n new QueryClient(cfg)\n\nexport async function handle$<\n Fn extends ReturnType<typeof query$>,\n QClient extends QueryClient | undefined = undefined\n>(input: {\n ctx: { req: any; res: any }\n queryFn: Fn\n payload: AsParam<Fn>\n queryClient?: QClient\n}): Promise<\n QClient extends QueryClient\n ? InferReturnType<Fn['fullyDehydrate']>\n : InferReturnType<Fn['callRaw']>\n> {\n const getInput = (payload: any) => {\n if (typeof payload === 'object' && typeof payload.payload === 'string') {\n return payload\n }\n return {\n payload: payload\n ? typeof payload === 'string'\n ? payload\n : JSON.stringify(payload)\n : '',\n }\n }\n const newFn = async (payload: any) => {\n let res = await input.queryFn.callRaw(\n getInput(payload),\n // @ts-expect-error all good\n {\n headers: new Headers(input.ctx.req.headers),\n method: input.ctx.req.method,\n url: input.ctx.req.url,\n }\n )\n if (res instanceof Response && input.ctx.res) {\n res.headers.forEach((v, k) => {\n if (k === 'content-type') return\n input.ctx.res.setHeader(k, v)\n })\n input.ctx.res.statusCode = res.status\n res = await res.json()\n }\n return res\n }\n if (input.queryClient) {\n return (await input.queryFn.fullyDehydrate(\n input.queryClient,\n input.payload,\n newFn\n )) as any\n }\n return await newFn(input.payload)\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n useMutation,\n type UseMutationResult,\n type UseMutationOptions,\n} from '@tanstack/react-query'\nimport type zod from 'zod'\nimport {\n type IMiddleware,\n type InferReturnType,\n type ExpectedFn,\n type AsParam,\n type PRPCClientError,\n type ObjectParams,\n genQueryKey,\n tryAndWrap,\n getParams,\n} from '@prpc/core'\n\nexport function mutation$<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >,\n ZObj extends zod.ZodSchema | void | undefined = void | undefined\n>(\n params: ObjectParams<ZObj, Mw, Fn, true>\n): (\n mutationOpts?: UseMutationOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n) => UseMutationResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n>\n\nexport function mutation$<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<undefined, Mw>\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n>(\n queryFn: Fn,\n key: string,\n ..._middlewares: Mw\n): (\n mutationOpts?: UseMutationOptions<\n InferReturnType<Fn>,\n PRPCClientError<any>,\n AsParam<Fn, false>\n >\n) => UseMutationResult<\n InferReturnType<Fn>,\n PRPCClientError<any>,\n AsParam<Fn, false>\n>\n\nexport function mutation$<\n ZObj extends zod.ZodSchema | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends zod.ZodSchema ? zod.infer<ZObj> : undefined,\n Mw\n >\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n>(\n queryFn: Fn,\n key: string,\n _schema?: ZObj,\n ..._middlewares: Mw\n): (\n mutationOpts?: UseMutationOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n) => UseMutationResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n>\n\nexport function mutation$<\n ZObj extends zod.ZodSchema | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends zod.ZodSchema ? zod.infer<ZObj> : undefined,\n Mw\n >\n>(...args: any[]) {\n const { key, queryFn } = getParams(true, ...args)\n return (\n mutationOpts?: UseMutationOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n ) => {\n return useMutation({\n mutationKey: genQueryKey(key, undefined, true),\n mutationFn: (input: AsParam<Fn, false>) => tryAndWrap(queryFn, input),\n ...((mutationOpts || {}) as any),\n }) as UseMutationResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n type QueryClient,\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n useQueryClient,\n dehydrate,\n type DehydratedState,\n} from '@tanstack/react-query'\nimport type zod from 'zod'\nimport {\n type InferReturnType,\n type ExpectedFn,\n type AsParam,\n type IMiddleware,\n type ObjectParams,\n type PRPCClientError,\n type WithVoid,\n genQueryKey,\n tryAndWrap,\n unwrapValue,\n getParams,\n} from '@prpc/core'\n\nexport function query$<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >,\n ZObj extends zod.ZodSchema | void | undefined = void | undefined\n>(\n params: ObjectParams<ZObj, Mw, Fn>\n): {\n (\n input: WithVoid<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined\n >,\n queryOpts?: UseQueryOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n ): UseQueryResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n prefetch: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>\n ) => Promise<InferReturnType<Fn>>\n fullyDehydrate: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>,\n fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n ) => Promise<{ prpcState: DehydratedState }>\n callRaw: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n}\n\nexport function query$<\n ZObj extends zod.ZodSchema | void | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<undefined, Mw>\n>(\n queryFn: Fn,\n key: string,\n ..._middlewares: Mw\n): {\n (\n input: WithVoid<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined\n >,\n queryOpts?: UseQueryOptions<InferReturnType<Fn>, PRPCClientError<any>>\n ): UseQueryResult<InferReturnType<Fn>, PRPCClientError<any>>\n prefetch: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>\n ) => Promise<InferReturnType<Fn>>\n fullyDehydrate: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>,\n fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n ) => Promise<{ prpcState: DehydratedState }>\n callRaw: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n}\n\nexport function query$<\n ZObj extends zod.ZodSchema | void | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : void, Mw>\n>(\n queryFn: Fn,\n key: string,\n _schema?: ZObj,\n ..._middlewares: Mw\n): {\n (\n input: WithVoid<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined\n >,\n queryOpts?: UseQueryOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n ): UseQueryResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n prefetch: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>\n ) => Promise<InferReturnType<Fn>>\n fullyDehydrate: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>,\n fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n ) => Promise<{ prpcState: DehydratedState }>\n callRaw: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n}\n\nexport function query$<\n ZObj extends zod.ZodSchema | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends zod.ZodSchema ? zod.infer<ZObj> : undefined,\n Mw\n >\n>(...args: any[]) {\n const { key, queryFn } = getParams(false, ...args)\n\n const prefetch = (queryClient: QueryClient, input: AsParam<Fn, false>) => {\n return queryClient.prefetchQuery({\n queryKey: genQueryKey(key, unwrapValue(input)),\n queryFn: () => tryAndWrap(queryFn, input),\n })\n }\n\n const fullyDehydrate = async (\n queryClient: QueryClient,\n input: AsParam<Fn, false>,\n fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n ) => {\n await queryClient.prefetchQuery({\n queryKey: genQueryKey(key, unwrapValue(input)),\n queryFn: () => tryAndWrap(fn ?? (queryFn as any), input),\n })\n return { prpcState: dehydrate(queryClient) }\n }\n\n const fn = (\n input: AsParam<Fn, false>,\n queryOpts?: UseQueryOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n ) => {\n const queryClient = useQueryClient()\n if (\n typeof window === 'undefined' &&\n queryOpts?.enabled !== false &&\n !queryClient.getQueryCache().find(genQueryKey(key, unwrapValue(input)))\n ) {\n void prefetch(queryClient, input)\n }\n return useQuery({\n queryKey: genQueryKey(key, unwrapValue(input)),\n queryFn: () => tryAndWrap(queryFn, input),\n ...(queryClient.getQueryCache().find(genQueryKey(key, unwrapValue(input)))\n ?.state.status === 'error'\n ? {\n retryOnMount: false,\n ...queryOpts,\n }\n : queryOpts),\n }) as UseQueryResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n }\n\n return new Proxy(fn, {\n get: (target, prop) => {\n if (prop === 'prefetch') {\n return prefetch\n } else if (prop === 'fullyDehydrate') {\n return fullyDehydrate\n } else if (prop === 'callRaw') {\n return queryFn\n }\n return target\n },\n })\n}\n","/* eslint-disable solid/no-destructure */\nimport {\n QueryClientProvider,\n type QueryClient,\n type HydrateProps,\n Hydrate as ReactQueryHydrate,\n} from '@tanstack/react-query'\n\nconst QueryProvider: React.FC<{\n children: React.ReactNode\n queryClient: QueryClient\n}> = ({ children, queryClient }) => {\n return (\n <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>\n )\n}\n\nexport default QueryProvider\n\nexport const Hydrate: React.FC<HydrateProps> = (props) => {\n return <ReactQueryHydrate {...props} />\n}\n","/* eslint-disable solid/reactivity */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DehydratedState, QueryClient } from '@tanstack/react-query'\nimport type { ComponentType } from 'react'\nimport QueryProvider, { Hydrate } from './QueryProvider'\n\ntype NextComponentType<\n Context,\n InitialProps = unknown,\n Props = unknown\n> = ComponentType<Props> & {\n /**\n * Used for initial page load data population. Data returned from `getInitialProps` is serialized when server rendered.\n * Make sure to return plain `Object` without using `Date`, `Map`, `Set`.\n * @param context Context of `page`\n */\n getInitialProps?(context: Context): InitialProps | Promise<InitialProps>\n}\n\nexport function withPRPC(\n queryClient: QueryClient,\n AppOrPage: NextComponentType<any, any, any>\n) {\n const innerWithPRPC = (props: any) => {\n const hydratedState: DehydratedState | undefined =\n props?.pageProps?.prpcState\n return (\n <QueryProvider queryClient={queryClient}>\n <Hydrate state={hydratedState}>\n <AppOrPage {...props} />\n </Hydrate>\n </QueryProvider>\n )\n }\n const displayName = AppOrPage.displayName || AppOrPage.name || 'Component'\n innerWithPRPC.displayName = `innerWithPRPC(${displayName})`\n return innerWithPRPC\n}\n"],"mappings":"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","names":["QueryClient","useMutation","genQueryKey","tryAndWrap","getParams","mutation$","args","key","queryFn","mutationOpts","input","useQuery","useQueryClient","dehydrate","genQueryKey","tryAndWrap","unwrapValue","getParams","query$","args","key","queryFn","prefetch","queryClient","input","fullyDehydrate","fn","queryOpts","_a","target","prop","QueryClientProvider","ReactQueryHydrate","jsx","QueryProvider","children","queryClient","QueryProvider_default","Hydrate","props","jsx","withPRPC","queryClient","AppOrPage","innerWithPRPC","props","_a","hydratedState","QueryProvider_default","Hydrate","displayName","nextApiRequestToNodeRequest","req","protocol","host","actualUrl","createPrpcQueryClient","cfg","QueryClient","handle$","input","getInput","payload","newFn","res","v","k"]} | ||
| {"version":3,"sources":["../src/index.tsx","../src/mutation.ts","../src/query.ts","../src/QueryProvider.tsx","../src/withPRPC.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { AsParam, InferReturnType } from '@prpc/core'\nimport { QueryClient, type QueryClientConfig } from '@tanstack/react-query'\nimport type { query$ } from './query'\n\nexport * from './mutation'\nexport * from './query'\nexport * from '@prpc/core'\nexport { default as QueryProvider, Hydrate } from './QueryProvider'\nexport * from './withPRPC'\n\nexport function nextApiRequestToNodeRequest(req: any) {\n const protocol = req.headers['x-forwarded-proto'] || 'http'\n const host = req.headers['x-forwarded-host'] || req.headers.host\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n const actualUrl = new URL(req.url as string, `${protocol}://${host}`)\n return new Request(actualUrl, req as unknown as Request)\n}\n\nexport const createPrpcQueryClient = (cfg?: QueryClientConfig) =>\n new QueryClient(cfg)\n\nexport async function handle$<\n Fn extends ReturnType<typeof query$>,\n QClient extends QueryClient | undefined = undefined\n>(input: {\n ctx: { req: any; res: any }\n queryFn: Fn\n payload: AsParam<Fn>\n queryClient?: QClient\n}): Promise<\n QClient extends QueryClient\n ? InferReturnType<Fn['fullyDehydrate']>\n : InferReturnType<Fn['callRaw']>\n> {\n const getInput = (payload: any) => {\n if (typeof payload === 'object' && typeof payload.payload === 'string') {\n return payload\n }\n return {\n payload: payload\n ? typeof payload === 'string'\n ? payload\n : JSON.stringify(payload)\n : '',\n }\n }\n const newFn = async (payload: any) => {\n let res = await input.queryFn.callRaw(\n getInput(payload),\n // @ts-expect-error all good\n {\n headers: new Headers(input.ctx.req.headers),\n method: input.ctx.req.method,\n url: input.ctx.req.url,\n }\n )\n if (res instanceof Response && input.ctx.res) {\n res.headers.forEach((v, k) => {\n if (k === 'content-type') return\n input.ctx.res.setHeader(k, v)\n })\n input.ctx.res.statusCode = res.status\n res = await res.json()\n }\n return res\n }\n if (input.queryClient) {\n return (await input.queryFn.fullyDehydrate(\n input.queryClient,\n input.payload,\n newFn\n )) as any\n }\n return await newFn(input.payload)\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n useMutation,\n type UseMutationResult,\n type UseMutationOptions,\n} from '@tanstack/react-query'\nimport type zod from 'zod'\nimport {\n type IMiddleware,\n type InferReturnType,\n type ExpectedFn,\n type AsParam,\n type PRPCClientError,\n type ObjectParams,\n genQueryKey,\n tryAndWrap,\n getParams,\n} from '@prpc/core'\n\nexport type ExpectedMutationReturn<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >,\n ZObj extends zod.ZodSchema | void | undefined = void | undefined\n> = (\n mutationOpts?: UseMutationOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n) => UseMutationResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n>\nexport function mutation$<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >,\n ZObj extends zod.ZodSchema | void | undefined = void | undefined\n>(\n params: ObjectParams<ZObj, Mw, Fn, true>\n): ExpectedMutationReturn<Mw, Fn, ZObj>\n\nexport function mutation$<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<void | undefined, Mw>\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n>(queryFn: Fn, key: string, ..._middlewares: Mw): ExpectedMutationReturn<Mw, Fn>\n\nexport function mutation$<\n ZObj extends zod.ZodSchema | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n>(\n queryFn: Fn,\n key: string,\n _schema?: ZObj,\n ..._middlewares: Mw\n): ExpectedMutationReturn<Mw, Fn, ZObj>\n\nexport function mutation$<\n ZObj extends zod.ZodSchema | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends zod.ZodSchema ? zod.infer<ZObj> : undefined,\n Mw\n >\n>(...args: any[]) {\n const { key, queryFn } = getParams(true, ...args)\n return (\n mutationOpts?: UseMutationOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n ) => {\n return useMutation({\n mutationKey: genQueryKey(key, undefined, true),\n mutationFn: (input: AsParam<Fn, false>) => tryAndWrap(queryFn, input),\n ...((mutationOpts || {}) as any),\n }) as UseMutationResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>,\n AsParam<Fn, false>\n >\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n type QueryClient,\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n useQueryClient,\n dehydrate,\n type DehydratedState,\n} from '@tanstack/react-query'\nimport type zod from 'zod'\nimport {\n type InferReturnType,\n type ExpectedFn,\n type AsParam,\n type IMiddleware,\n type ObjectParams,\n type PRPCClientError,\n type WithVoid,\n genQueryKey,\n tryAndWrap,\n unwrapValue,\n getParams,\n} from '@prpc/core'\n\nexport type ExpectedQueryReturn<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >,\n ZObj extends zod.ZodSchema | void | undefined = void | undefined\n> = {\n (\n input: WithVoid<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined\n >,\n queryOpts?: UseQueryOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n ): UseQueryResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n prefetch: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>\n ) => Promise<InferReturnType<Fn>>\n fullyDehydrate: (\n queryClient: QueryClient,\n input: AsParam<Fn, false>,\n fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n ) => Promise<{ prpcState: DehydratedState }>\n callRaw: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n}\nexport function query$<\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >,\n ZObj extends zod.ZodSchema | void | undefined = void | undefined\n>(params: ObjectParams<ZObj, Mw, Fn>): ExpectedQueryReturn<Mw, Fn, ZObj>\n\nexport function query$<\n ZObj extends zod.ZodSchema | void | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<undefined, Mw>\n>(\n queryFn: Fn,\n key: string,\n ..._middlewares: Mw\n): ExpectedQueryReturn<Mw, Fn, ZObj>\n\nexport function query$<\n ZObj extends zod.ZodSchema | void | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends void | undefined\n ? void | undefined\n : ZObj extends zod.ZodSchema\n ? zod.infer<ZObj>\n : void | undefined,\n Mw\n >\n>(\n queryFn: Fn,\n key: string,\n _schema?: ZObj,\n ..._middlewares: Mw\n): ExpectedQueryReturn<Mw, Fn, ZObj>\n\nexport function query$<\n ZObj extends zod.ZodSchema | undefined,\n Mw extends IMiddleware[],\n Fn extends ExpectedFn<\n ZObj extends zod.ZodSchema ? zod.infer<ZObj> : undefined,\n Mw\n >\n>(...args: any[]) {\n const { key, queryFn } = getParams(false, ...args)\n\n const prefetch = (queryClient: QueryClient, input: AsParam<Fn, false>) => {\n return queryClient.prefetchQuery({\n queryKey: genQueryKey(key, unwrapValue(input)),\n queryFn: () => tryAndWrap(queryFn, input),\n })\n }\n\n const fullyDehydrate = async (\n queryClient: QueryClient,\n input: AsParam<Fn, false>,\n fn?: (input: AsParam<Fn, false>) => Promise<InferReturnType<Fn>>\n ) => {\n await queryClient.prefetchQuery({\n queryKey: genQueryKey(key, unwrapValue(input)),\n queryFn: () => tryAndWrap(fn ?? (queryFn as any), input),\n })\n return { prpcState: dehydrate(queryClient) }\n }\n\n const fn = (\n input: AsParam<Fn, false>,\n queryOpts?: UseQueryOptions<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n ) => {\n const queryClient = useQueryClient()\n if (\n typeof window === 'undefined' &&\n queryOpts?.enabled !== false &&\n !queryClient.getQueryCache().find(genQueryKey(key, unwrapValue(input)))\n ) {\n void prefetch(queryClient, input)\n }\n return useQuery({\n queryKey: genQueryKey(key, unwrapValue(input)),\n queryFn: () => tryAndWrap(queryFn, input),\n ...(queryClient.getQueryCache().find(genQueryKey(key, unwrapValue(input)))\n ?.state.status === 'error'\n ? {\n retryOnMount: false,\n ...queryOpts,\n }\n : queryOpts),\n }) as UseQueryResult<\n InferReturnType<Fn>,\n PRPCClientError<ZObj extends zod.ZodSchema ? zod.infer<ZObj> : any>\n >\n }\n\n return new Proxy(fn, {\n get: (target, prop) => {\n if (prop === 'prefetch') {\n return prefetch\n } else if (prop === 'fullyDehydrate') {\n return fullyDehydrate\n } else if (prop === 'callRaw') {\n return queryFn\n }\n return target\n },\n })\n}\n","/* eslint-disable solid/no-destructure */\nimport {\n QueryClientProvider,\n type QueryClient,\n type HydrateProps,\n Hydrate as ReactQueryHydrate,\n} from '@tanstack/react-query'\n\nconst QueryProvider: React.FC<{\n children: React.ReactNode\n queryClient: QueryClient\n}> = ({ children, queryClient }) => {\n return (\n <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>\n )\n}\n\nexport default QueryProvider\n\nexport const Hydrate: React.FC<HydrateProps> = (props) => {\n return <ReactQueryHydrate {...props} />\n}\n","/* eslint-disable solid/reactivity */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DehydratedState, QueryClient } from '@tanstack/react-query'\nimport type { ComponentType } from 'react'\nimport QueryProvider, { Hydrate } from './QueryProvider'\n\ntype NextComponentType<\n Context,\n InitialProps = unknown,\n Props = unknown\n> = ComponentType<Props> & {\n /**\n * Used for initial page load data population. Data returned from `getInitialProps` is serialized when server rendered.\n * Make sure to return plain `Object` without using `Date`, `Map`, `Set`.\n * @param context Context of `page`\n */\n getInitialProps?(context: Context): InitialProps | Promise<InitialProps>\n}\n\nexport function withPRPC(\n queryClient: QueryClient,\n AppOrPage: NextComponentType<any, any, any>\n) {\n const innerWithPRPC = (props: any) => {\n const hydratedState: DehydratedState | undefined =\n props?.pageProps?.prpcState\n return (\n <QueryProvider queryClient={queryClient}>\n <Hydrate state={hydratedState}>\n <AppOrPage {...props} />\n </Hydrate>\n </QueryProvider>\n )\n }\n const displayName = AppOrPage.displayName || AppOrPage.name || 'Component'\n innerWithPRPC.displayName = `innerWithPRPC(${displayName})`\n return innerWithPRPC\n}\n"],"mappings":"AAEA,OAAS,eAAAA,MAA2C,wBCDpD,OACE,eAAAC,MAGK,wBAEP,OAOE,eAAAC,EACA,cAAAC,EACA,aAAAC,MACK,aAgEA,SAASC,KAOXC,EAAa,CAChB,GAAM,CAAE,IAAAC,EAAK,QAAAC,CAAQ,EAAIJ,EAAU,GAAM,GAAGE,CAAI,EAChD,OACEG,GAMOR,EAAY,CACjB,YAAaC,EAAYK,EAAK,OAAW,EAAI,EAC7C,WAAaG,GAA8BP,EAAWK,EAASE,CAAK,EACpE,GAAKD,GAAgB,CAAC,CACxB,CAAC,CAML,CC1GA,OAEE,YAAAE,EAGA,kBAAAC,EACA,aAAAC,MAEK,wBAEP,OAQE,eAAAC,EACA,cAAAC,EACA,eAAAC,EACA,aAAAC,MACK,aAkFA,SAASC,KAOXC,EAAa,CAChB,GAAM,CAAE,IAAAC,EAAK,QAAAC,CAAQ,EAAIJ,EAAU,GAAO,GAAGE,CAAI,EAE3CG,EAAW,CAACC,EAA0BC,IACnCD,EAAY,cAAc,CAC/B,SAAUT,EAAYM,EAAKJ,EAAYQ,CAAK,CAAC,EAC7C,QAAS,IAAMT,EAAWM,EAASG,CAAK,CAC1C,CAAC,EAGGC,EAAiB,MACrBF,EACAC,EACAE,KAEA,MAAMH,EAAY,cAAc,CAC9B,SAAUT,EAAYM,EAAKJ,EAAYQ,CAAK,CAAC,EAC7C,QAAS,IAAMT,EAAWW,GAAA,KAAAA,EAAOL,EAAiBG,CAAK,CACzD,CAAC,EACM,CAAE,UAAWX,EAAUU,CAAW,CAAE,GAGvCG,EAAK,CACTF,EACAG,IAIG,CA5IP,IAAAC,EA6II,IAAML,EAAcX,EAAe,EACnC,OACE,OAAO,QAAW,cAClBe,GAAA,YAAAA,EAAW,WAAY,IACvB,CAACJ,EAAY,cAAc,EAAE,KAAKT,EAAYM,EAAKJ,EAAYQ,CAAK,CAAC,CAAC,GAEjEF,EAASC,EAAaC,CAAK,EAE3Bb,EAAS,CACd,SAAUG,EAAYM,EAAKJ,EAAYQ,CAAK,CAAC,EAC7C,QAAS,IAAMT,EAAWM,EAASG,CAAK,EACxC,KAAII,EAAAL,EAAY,cAAc,EAAE,KAAKT,EAAYM,EAAKJ,EAAYQ,CAAK,CAAC,CAAC,IAArE,YAAAI,EACA,MAAM,UAAW,QACjB,CACE,aAAc,GACd,GAAGD,CACL,EACAA,CACN,CAAC,CAIH,EAEA,OAAO,IAAI,MAAMD,EAAI,CACnB,IAAK,CAACG,EAAQC,IACRA,IAAS,WACJR,EACEQ,IAAS,iBACXL,EACEK,IAAS,UACXT,EAEFQ,CAEX,CAAC,CACH,CF1KA,WAAc,aGNd,OACE,uBAAAE,EAGA,WAAWC,MACN,wBAOH,cAAAC,MAAA,oBALJ,IAAMC,EAGD,CAAC,CAAE,SAAAC,EAAU,YAAAC,CAAY,IAE1BH,EAACF,EAAA,CAAoB,OAAQK,EAAc,SAAAD,EAAS,EAIjDE,EAAQH,EAEFI,EAAmCC,GACvCN,EAACD,EAAA,CAAmB,GAAGO,EAAO,ECS7B,cAAAC,MAAA,oBAVH,SAASC,EACdC,EACAC,EACA,CACA,IAAMC,EAAiBC,GAAe,CAvBxC,IAAAC,EAwBI,IAAMC,GACJD,EAAAD,GAAA,YAAAA,EAAO,YAAP,YAAAC,EAAkB,UACpB,OACEN,EAACQ,EAAA,CAAc,YAAaN,EAC1B,SAAAF,EAACS,EAAA,CAAQ,MAAOF,EACd,SAAAP,EAACG,EAAA,CAAW,GAAGE,EAAO,EACxB,EACF,CAEJ,EACMK,EAAcP,EAAU,aAAeA,EAAU,MAAQ,YAC/D,OAAAC,EAAc,YAAc,iBAAiBM,KACtCN,CACT,CJ1BO,SAASO,EAA4BC,EAAU,CACpD,IAAMC,EAAWD,EAAI,QAAQ,mBAAmB,GAAK,OAC/CE,EAAOF,EAAI,QAAQ,kBAAkB,GAAKA,EAAI,QAAQ,KAEtDG,EAAY,IAAI,IAAIH,EAAI,IAAe,GAAGC,OAAcC,GAAM,EACpE,OAAO,IAAI,QAAQC,EAAWH,CAAyB,CACzD,CAEO,IAAMI,EAAyBC,GACpC,IAAIC,EAAYD,CAAG,EAErB,eAAsBE,EAGpBC,EASA,CACA,IAAMC,EAAYC,GACZ,OAAOA,GAAY,UAAY,OAAOA,EAAQ,SAAY,SACrDA,EAEF,CACL,QAASA,EACL,OAAOA,GAAY,SACjBA,EACA,KAAK,UAAUA,CAAO,EACxB,EACN,EAEIC,EAAQ,MAAOD,GAAiB,CACpC,IAAIE,EAAM,MAAMJ,EAAM,QAAQ,QAC5BC,EAASC,CAAO,EAEhB,CACE,QAAS,IAAI,QAAQF,EAAM,IAAI,IAAI,OAAO,EAC1C,OAAQA,EAAM,IAAI,IAAI,OACtB,IAAKA,EAAM,IAAI,IAAI,GACrB,CACF,EACA,OAAII,aAAe,UAAYJ,EAAM,IAAI,MACvCI,EAAI,QAAQ,QAAQ,CAACC,EAAGC,IAAM,CACxBA,IAAM,gBACVN,EAAM,IAAI,IAAI,UAAUM,EAAGD,CAAC,CAC9B,CAAC,EACDL,EAAM,IAAI,IAAI,WAAaI,EAAI,OAC/BA,EAAM,MAAMA,EAAI,KAAK,GAEhBA,CACT,EACA,OAAIJ,EAAM,YACA,MAAMA,EAAM,QAAQ,eAC1BA,EAAM,YACNA,EAAM,QACNG,CACF,EAEK,MAAMA,EAAMH,EAAM,OAAO,CAClC","names":["QueryClient","useMutation","genQueryKey","tryAndWrap","getParams","mutation$","args","key","queryFn","mutationOpts","input","useQuery","useQueryClient","dehydrate","genQueryKey","tryAndWrap","unwrapValue","getParams","query$","args","key","queryFn","prefetch","queryClient","input","fullyDehydrate","fn","queryOpts","_a","target","prop","QueryClientProvider","ReactQueryHydrate","jsx","QueryProvider","children","queryClient","QueryProvider_default","Hydrate","props","jsx","withPRPC","queryClient","AppOrPage","innerWithPRPC","props","_a","hydratedState","QueryProvider_default","Hydrate","displayName","nextApiRequestToNodeRequest","req","protocol","host","actualUrl","createPrpcQueryClient","cfg","QueryClient","handle$","input","getInput","payload","newFn","res","v","k"]} |
+1
-1
| { | ||
| "name": "@prpc/react", | ||
| "description": "Package for easily creating server rpc functions in NextJS/Bling with goodies baked in", | ||
| "version": "0.2.31", | ||
| "version": "0.2.32", | ||
| "type": "module", | ||
@@ -6,0 +6,0 @@ "exports": { |
48874
-5.95%91
-11.65%