{"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"}