@trpc/next
Version:
1 lines • 2.85 kB
Source Map (JSON)
{"version":3,"file":"nextHttp.mjs","names":["opts:\n | NextLinkSingleOptions<TRouter['_def']['_config']['$types']>\n | NextLinkBatchOptions<TRouter['_def']['_config']['$types']>","_fetch: NonNullable<HTTPLinkOptions<AnyRootTypes>['fetch']>"],"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,0BACdA,MAGmB;AACnB,QAAO,CAAC,YAAY;AAClB,SAAO,CAAC,QAAQ;;GACd,MAAM,EAAE,MAAM,OAAO,SAAS,GAAG,IAAI;GACrC,MAAM,WAAW,iBAAiB,MAAM,MAAM;GAG9C,MAAM,2BACG,QAAQ,kBAAkB,YACjC,QAAQ,kBAAkB,QACtB,QAAQ;GAGd,MAAM,qBAAa,iFAAqB,KAAK,iDAAc;GAE3D,MAAMC,SAA8D,CAClE,KACA,cACG;AACH,WAAO,MAAM,6EACR,kBAEH,MAAM;KACJ;KACA,MAAM,CAAC,QAAS;IACjB,KACD;GACH;GACD,MAAM,OAAO,KAAK,QACd,sFACM,aACJ,OAAO,UACP,GACF,iFACM,aACJ,OAAO,UACP;AAEN,UAAO,KAAK,QAAQ,CAAC,IAAI;EAC1B;CACF;AACF"}