@trpc/next
Version:
1 lines • 2.83 kB
Source Map (JSON)
{"version":3,"file":"nextHttp.mjs","names":[],"sources":["../../../src/app-dir/links/nextHttp.ts"],"sourcesContent":["import type {\n HTTPBatchLinkOptions,\n HTTPLinkOptions,\n TRPCLink,\n} from '@trpc/client';\nimport { httpBatchLink, httpLink } from '@trpc/client';\nimport type {\n AnyRootTypes,\n AnyRouter,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { generateCacheTag } from '../shared';\n\ninterface NextLinkBaseOptions {\n revalidate?: number | false;\n batch?: boolean;\n}\n\ntype NextLinkSingleOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions &\n Omit<HTTPLinkOptions<TRoot>, 'fetch'> & {\n batch?: false;\n };\n\ntype NextLinkBatchOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions &\n Omit<HTTPBatchLinkOptions<TRoot>, 'fetch'> & {\n batch: true;\n };\n\n// ts-prune-ignore-next\nexport function experimental_nextHttpLink<TRouter extends AnyRouter>(\n opts:\n | NextLinkSingleOptions<TRouter['_def']['_config']['$types']>\n | NextLinkBatchOptions<TRouter['_def']['_config']['$types']>,\n): TRPCLink<TRouter> {\n return (runtime) => {\n return (ctx) => {\n const { path, input, context } = ctx.op;\n const cacheTag = generateCacheTag(path, input);\n\n // Let per-request revalidate override global revalidate\n const requestRevalidate =\n typeof context['revalidate'] === 'number' ||\n context['revalidate'] === false\n ? context['revalidate']\n : undefined;\n\n const revalidate = requestRevalidate ?? opts.revalidate ?? false;\n\n const _fetch: NonNullable<HTTPLinkOptions<AnyRootTypes>['fetch']> = (\n url,\n fetchOpts,\n ) => {\n return fetch(url, {\n ...fetchOpts,\n // cache: 'no-cache',\n next: {\n revalidate,\n tags: [cacheTag],\n },\n });\n };\n const link = opts.batch\n ? httpBatchLink({\n ...(opts as any),\n fetch: _fetch,\n })\n : httpLink({\n ...(opts as any),\n fetch: _fetch,\n });\n\n return link(runtime)(ctx);\n };\n };\n}\n"],"mappings":";;;;AA4BA,SAAgB,0BACd,MAGmB;CACnB,QAAQ,YAAY;EAClB,QAAQ,QAAQ;;GACd,MAAM,EAAE,MAAM,OAAO,YAAY,IAAI;GACrC,MAAM,WAAW,iBAAiB,MAAM,KAAK;GAG7C,MAAM,oBACJ,OAAO,QAAQ,kBAAkB,YACjC,QAAQ,kBAAkB,QACtB,QAAQ,gBACR,KAAA;GAEN,MAAM,cAAA,OAAa,sBAAA,QAAA,sBAAA,KAAA,IAAA,oBAAqB,KAAK,gBAAA,QAAA,SAAA,KAAA,IAAA,OAAc;GAE3D,MAAM,UACJ,KACA,cACG;IACH,OAAO,MAAM,KAAA,eAAA,eAAA,CAAA,GACR,SAAA,GAAA,CAAA,GAAA,EAEH,MAAM;KACJ;KACA,MAAM,CAAC,QAAQ;IACjB,EAAA,CACF,CAAC;GACH;GAWA,QAVa,KAAK,QACd,cAAA,eAAA,eAAA,CAAA,GACM,IAAA,GAAA,CAAA,GAAA,EACJ,OAAO,OAAA,CACT,CAAC,IACD,SAAA,eAAA,eAAA,CAAA,GACM,IAAA,GAAA,CAAA,GAAA,EACJ,OAAO,OAAA,CACT,CAAC,EAAA,CAEO,OAAO,CAAC,CAAC,GAAG;EAC1B;CACF;AACF"}