@trpc/server 11.4.1 → 11.4.2-canary.1

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 (105) hide show
  1. package/dist/adapters/aws-lambda/index.cjs +49 -42
  2. package/dist/adapters/aws-lambda/index.mjs +47 -40
  3. package/dist/adapters/aws-lambda/index.mjs.map +1 -1
  4. package/dist/adapters/express.cjs +14 -15
  5. package/dist/adapters/express.mjs +14 -15
  6. package/dist/adapters/express.mjs.map +1 -1
  7. package/dist/adapters/fastify/index.cjs +27 -28
  8. package/dist/adapters/fastify/index.mjs +27 -28
  9. package/dist/adapters/fastify/index.mjs.map +1 -1
  10. package/dist/adapters/fetch/index.cjs +18 -19
  11. package/dist/adapters/fetch/index.mjs +18 -19
  12. package/dist/adapters/fetch/index.mjs.map +1 -1
  13. package/dist/adapters/next-app-dir.cjs +57 -53
  14. package/dist/adapters/next-app-dir.mjs +15 -11
  15. package/dist/adapters/next-app-dir.mjs.map +1 -1
  16. package/dist/adapters/next.cjs +14 -15
  17. package/dist/adapters/next.mjs +14 -15
  18. package/dist/adapters/next.mjs.map +1 -1
  19. package/dist/adapters/node-http/index.cjs +8 -8
  20. package/dist/adapters/node-http/index.mjs +8 -8
  21. package/dist/adapters/standalone.cjs +17 -17
  22. package/dist/adapters/standalone.mjs +16 -16
  23. package/dist/adapters/standalone.mjs.map +1 -1
  24. package/dist/adapters/ws.cjs +10 -10
  25. package/dist/adapters/ws.mjs +10 -10
  26. package/dist/getErrorShape-DKiEF6Zc.cjs +339 -0
  27. package/dist/getErrorShape-Uhlrl4Bk.mjs +263 -0
  28. package/dist/getErrorShape-Uhlrl4Bk.mjs.map +1 -0
  29. package/dist/http.cjs +5 -5
  30. package/dist/http.mjs +5 -5
  31. package/dist/index.cjs +4 -4
  32. package/dist/index.mjs +4 -4
  33. package/dist/{initTRPC-DjEpHmY2.cjs → initTRPC-IT4M4lu3.cjs} +83 -64
  34. package/dist/{initTRPC-COaJMShh.mjs → initTRPC-IT_6ZYJd.mjs} +84 -65
  35. package/dist/initTRPC-IT_6ZYJd.mjs.map +1 -0
  36. package/dist/{node-http-BUQnHuGI.mjs → node-http-Du8akt-R.mjs} +26 -23
  37. package/dist/{node-http-BUQnHuGI.mjs.map → node-http-Du8akt-R.mjs.map} +1 -1
  38. package/dist/{node-http-BPR68yI4.cjs → node-http-kIQEhZUH.cjs} +25 -22
  39. package/dist/observable/index.cjs +2 -2
  40. package/dist/observable/index.mjs +2 -2
  41. package/dist/{observable-BwdrSFZU.cjs → observable-B1Nk6r1H.cjs} +7 -4
  42. package/dist/{observable-C6qq2Ydk.cjs → observable-BVzLuBs6.cjs} +19 -7
  43. package/dist/{observable-CFXA_tyK.mjs → observable-CUiPknO-.mjs} +20 -8
  44. package/dist/{observable-CFXA_tyK.mjs.map → observable-CUiPknO-.mjs.map} +1 -1
  45. package/dist/{observable-B1orLHHI.mjs → observable-UMO3vUa_.mjs} +8 -5
  46. package/dist/{observable-B1orLHHI.mjs.map → observable-UMO3vUa_.mjs.map} +1 -1
  47. package/dist/{parseTRPCMessage-CNyYMSRB.mjs → parseTRPCMessage-ByIHyFRz.mjs} +2 -2
  48. package/dist/{parseTRPCMessage-CNyYMSRB.mjs.map → parseTRPCMessage-ByIHyFRz.mjs.map} +1 -1
  49. package/dist/{parseTRPCMessage-ByQWigsq.cjs → parseTRPCMessage-snNQop7N.cjs} +1 -1
  50. package/dist/{resolveResponse-B2CuaT_1.cjs → resolveResponse-CVGbakBm.cjs} +664 -405
  51. package/dist/{resolveResponse-DPbYgJDD.mjs → resolveResponse-CzlbRpCI.mjs} +660 -389
  52. package/dist/resolveResponse-CzlbRpCI.mjs.map +1 -0
  53. package/dist/rpc.cjs +2 -2
  54. package/dist/rpc.mjs +2 -2
  55. package/dist/shared.cjs +2 -2
  56. package/dist/shared.mjs +2 -2
  57. package/dist/{tracked-Dl9sBZxY.cjs → tracked-HoF8L_mq.cjs} +30 -42
  58. package/dist/{tracked-GEWPoL0C.mjs → tracked-gU3ttYjg.mjs} +31 -43
  59. package/dist/{tracked-GEWPoL0C.mjs.map → tracked-gU3ttYjg.mjs.map} +1 -1
  60. package/dist/unstable-core-do-not-import.cjs +7 -7
  61. package/dist/unstable-core-do-not-import.mjs +7 -7
  62. package/dist/{utils-BHZJcBRv.mjs → utils-DdbbrDku.mjs} +1 -1
  63. package/dist/{utils-BHZJcBRv.mjs.map → utils-DdbbrDku.mjs.map} +1 -1
  64. package/dist/{ws-C2nEUNk_.cjs → ws-BhrWsMpl.cjs} +37 -26
  65. package/dist/{ws-eIVIMTrw.mjs → ws-Bn5rkP_I.mjs} +37 -26
  66. package/dist/{ws-eIVIMTrw.mjs.map → ws-Bn5rkP_I.mjs.map} +1 -1
  67. package/package.json +2 -2
  68. package/adapters/aws-lambda/index.d.ts +0 -1
  69. package/adapters/aws-lambda/index.js +0 -1
  70. package/adapters/express/index.d.ts +0 -1
  71. package/adapters/express/index.js +0 -1
  72. package/adapters/fastify/index.d.ts +0 -1
  73. package/adapters/fastify/index.js +0 -1
  74. package/adapters/fetch/index.d.ts +0 -1
  75. package/adapters/fetch/index.js +0 -1
  76. package/adapters/next/index.d.ts +0 -1
  77. package/adapters/next/index.js +0 -1
  78. package/adapters/next-app-dir/index.d.ts +0 -1
  79. package/adapters/next-app-dir/index.js +0 -1
  80. package/adapters/node-http/content-type/form-data/index.d.ts +0 -1
  81. package/adapters/node-http/content-type/form-data/index.js +0 -1
  82. package/adapters/node-http/content-type/json/index.d.ts +0 -1
  83. package/adapters/node-http/content-type/json/index.js +0 -1
  84. package/adapters/node-http/index.d.ts +0 -1
  85. package/adapters/node-http/index.js +0 -1
  86. package/adapters/standalone/index.d.ts +0 -1
  87. package/adapters/standalone/index.js +0 -1
  88. package/adapters/ws/index.d.ts +0 -1
  89. package/adapters/ws/index.js +0 -1
  90. package/dist/getErrorShape-CsikfkAc.cjs +0 -201
  91. package/dist/getErrorShape-DyYil4aT.mjs +0 -149
  92. package/dist/getErrorShape-DyYil4aT.mjs.map +0 -1
  93. package/dist/initTRPC-COaJMShh.mjs.map +0 -1
  94. package/dist/resolveResponse-DPbYgJDD.mjs.map +0 -1
  95. package/http/index.d.ts +0 -1
  96. package/http/index.js +0 -1
  97. package/observable/index.d.ts +0 -1
  98. package/observable/index.js +0 -1
  99. package/rpc/index.d.ts +0 -1
  100. package/rpc/index.js +0 -1
  101. package/shared/index.d.ts +0 -1
  102. package/shared/index.js +0 -1
  103. package/unstable-core-do-not-import/index.d.ts +0 -1
  104. package/unstable-core-do-not-import/index.js +0 -1
  105. /package/dist/{utils-DVO6HZiR.cjs → utils-BhNVZA-c.cjs} +0 -0
@@ -1,67 +1,66 @@
1
- const require_resolveResponse = require('../../resolveResponse-B2CuaT_1.cjs');
2
- require('../../getErrorShape-CsikfkAc.cjs');
3
- require('../../tracked-Dl9sBZxY.cjs');
4
- require('../../utils-DVO6HZiR.cjs');
5
- require('../../parseTRPCMessage-ByQWigsq.cjs');
1
+ const require_getErrorShape = require('../../getErrorShape-DKiEF6Zc.cjs');
2
+ require('../../tracked-HoF8L_mq.cjs');
3
+ require('../../utils-BhNVZA-c.cjs');
4
+ require('../../parseTRPCMessage-snNQop7N.cjs');
5
+ const require_resolveResponse = require('../../resolveResponse-CVGbakBm.cjs');
6
6
  require('../../contentTypeParsers-iAFF_pJG.cjs');
7
7
  require('../../unstable-core-do-not-import-DFQys1IC.cjs');
8
- require('../../observable-BwdrSFZU.cjs');
9
- require('../../initTRPC-DjEpHmY2.cjs');
8
+ require('../../observable-B1Nk6r1H.cjs');
9
+ require('../../initTRPC-IT4M4lu3.cjs');
10
10
  require('../../http-DXy3XyhL.cjs');
11
- const require_node_http = require('../../node-http-BPR68yI4.cjs');
12
- require('../../observable-C6qq2Ydk.cjs');
13
- const require_ws = require('../../ws-C2nEUNk_.cjs');
11
+ const require_node_http = require('../../node-http-kIQEhZUH.cjs');
12
+ require('../../observable-BVzLuBs6.cjs');
13
+ const require_ws = require('../../ws-BhrWsMpl.cjs');
14
14
 
15
15
  //#region src/adapters/fastify/fastifyRequestHandler.ts
16
+ var import_objectSpread2$1 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
16
17
  async function fastifyRequestHandler(opts) {
17
18
  const createContext = async (innerOpts) => {
18
- return await opts.createContext?.({
19
- ...opts,
20
- ...innerOpts
21
- });
19
+ var _opts$createContext;
20
+ return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts), innerOpts)));
22
21
  };
23
22
  const incomingMessage = opts.req.raw;
24
23
  if ("body" in opts.req) incomingMessage.body = opts.req.body;
25
24
  const req = require_node_http.incomingMessageToRequest(incomingMessage, opts.res.raw, { maxBodySize: null });
26
- const res = await require_resolveResponse.resolveResponse({
27
- ...opts,
25
+ const res = await require_resolveResponse.resolveResponse((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts), {}, {
28
26
  req,
29
27
  error: null,
30
28
  createContext,
31
29
  onError(o) {
32
- opts?.onError?.({
33
- ...o,
34
- req: opts.req
35
- });
30
+ var _opts$onError;
31
+ opts === null || opts === void 0 || (_opts$onError = opts.onError) === null || _opts$onError === void 0 || _opts$onError.call(opts, (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, o), {}, { req: opts.req }));
36
32
  }
37
- });
33
+ }));
38
34
  await opts.res.send(res);
39
35
  }
40
36
 
41
37
  //#endregion
42
38
  //#region src/adapters/fastify/fastifyTRPCPlugin.ts
39
+ var import_objectSpread2 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
43
40
  function fastifyTRPCPlugin(fastify, opts, done) {
41
+ var _opts$prefix;
44
42
  fastify.removeContentTypeParser("application/json");
45
43
  fastify.addContentTypeParser("application/json", { parseAs: "string" }, function(_, body, _done) {
46
44
  _done(null, body);
47
45
  });
48
- let prefix = opts.prefix ?? "";
46
+ let prefix = (_opts$prefix = opts.prefix) !== null && _opts$prefix !== void 0 ? _opts$prefix : "";
49
47
  if (typeof fastifyTRPCPlugin.default !== "function") prefix = "";
50
48
  fastify.all(`${prefix}/:path`, async (req, res) => {
51
49
  const path = req.params.path;
52
- await fastifyRequestHandler({
53
- ...opts.trpcOptions,
50
+ await fastifyRequestHandler((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts.trpcOptions), {}, {
54
51
  req,
55
52
  res,
56
53
  path
57
- });
54
+ }));
58
55
  });
59
56
  if (opts.useWSS) {
57
+ var _prefix;
60
58
  const trpcOptions = opts.trpcOptions;
61
- const onConnection = require_ws.getWSConnectionHandler({ ...trpcOptions });
62
- fastify.get(prefix ?? "/", { websocket: true }, (socket, req) => {
59
+ const onConnection = require_ws.getWSConnectionHandler((0, import_objectSpread2.default)({}, trpcOptions));
60
+ fastify.get((_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : "/", { websocket: true }, (socket, req) => {
61
+ var _trpcOptions$keepAliv;
63
62
  onConnection(socket, req.raw);
64
- if (trpcOptions?.keepAlive?.enabled) {
63
+ if (trpcOptions === null || trpcOptions === void 0 || (_trpcOptions$keepAliv = trpcOptions.keepAlive) === null || _trpcOptions$keepAliv === void 0 ? void 0 : _trpcOptions$keepAliv.enabled) {
65
64
  const { pingMs, pongWaitMs } = trpcOptions.keepAlive;
66
65
  require_ws.handleKeepAlive(socket, pingMs, pongWaitMs);
67
66
  }
@@ -1,67 +1,66 @@
1
- import { resolveResponse } from "../../resolveResponse-DPbYgJDD.mjs";
2
- import "../../getErrorShape-DyYil4aT.mjs";
3
- import "../../tracked-GEWPoL0C.mjs";
4
- import "../../utils-BHZJcBRv.mjs";
5
- import "../../parseTRPCMessage-CNyYMSRB.mjs";
1
+ import { __toESM, require_objectSpread2 } from "../../getErrorShape-Uhlrl4Bk.mjs";
2
+ import "../../tracked-gU3ttYjg.mjs";
3
+ import "../../utils-DdbbrDku.mjs";
4
+ import "../../parseTRPCMessage-ByIHyFRz.mjs";
5
+ import { resolveResponse } from "../../resolveResponse-CzlbRpCI.mjs";
6
6
  import "../../contentTypeParsers-SN4WL9ze.mjs";
7
7
  import "../../unstable-core-do-not-import-D89CaGtL.mjs";
8
- import "../../observable-B1orLHHI.mjs";
9
- import "../../initTRPC-COaJMShh.mjs";
8
+ import "../../observable-UMO3vUa_.mjs";
9
+ import "../../initTRPC-IT_6ZYJd.mjs";
10
10
  import "../../http-CWyjOa1l.mjs";
11
- import { incomingMessageToRequest } from "../../node-http-BUQnHuGI.mjs";
12
- import "../../observable-CFXA_tyK.mjs";
13
- import { getWSConnectionHandler, handleKeepAlive } from "../../ws-eIVIMTrw.mjs";
11
+ import { incomingMessageToRequest } from "../../node-http-Du8akt-R.mjs";
12
+ import "../../observable-CUiPknO-.mjs";
13
+ import { getWSConnectionHandler, handleKeepAlive } from "../../ws-Bn5rkP_I.mjs";
14
14
 
15
15
  //#region src/adapters/fastify/fastifyRequestHandler.ts
16
+ var import_objectSpread2$1 = __toESM(require_objectSpread2(), 1);
16
17
  async function fastifyRequestHandler(opts) {
17
18
  const createContext = async (innerOpts) => {
18
- return await opts.createContext?.({
19
- ...opts,
20
- ...innerOpts
21
- });
19
+ var _opts$createContext;
20
+ return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts), innerOpts)));
22
21
  };
23
22
  const incomingMessage = opts.req.raw;
24
23
  if ("body" in opts.req) incomingMessage.body = opts.req.body;
25
24
  const req = incomingMessageToRequest(incomingMessage, opts.res.raw, { maxBodySize: null });
26
- const res = await resolveResponse({
27
- ...opts,
25
+ const res = await resolveResponse((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts), {}, {
28
26
  req,
29
27
  error: null,
30
28
  createContext,
31
29
  onError(o) {
32
- opts?.onError?.({
33
- ...o,
34
- req: opts.req
35
- });
30
+ var _opts$onError;
31
+ opts === null || opts === void 0 || (_opts$onError = opts.onError) === null || _opts$onError === void 0 || _opts$onError.call(opts, (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, o), {}, { req: opts.req }));
36
32
  }
37
- });
33
+ }));
38
34
  await opts.res.send(res);
39
35
  }
40
36
 
41
37
  //#endregion
42
38
  //#region src/adapters/fastify/fastifyTRPCPlugin.ts
39
+ var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
43
40
  function fastifyTRPCPlugin(fastify, opts, done) {
41
+ var _opts$prefix;
44
42
  fastify.removeContentTypeParser("application/json");
45
43
  fastify.addContentTypeParser("application/json", { parseAs: "string" }, function(_, body, _done) {
46
44
  _done(null, body);
47
45
  });
48
- let prefix = opts.prefix ?? "";
46
+ let prefix = (_opts$prefix = opts.prefix) !== null && _opts$prefix !== void 0 ? _opts$prefix : "";
49
47
  if (typeof fastifyTRPCPlugin.default !== "function") prefix = "";
50
48
  fastify.all(`${prefix}/:path`, async (req, res) => {
51
49
  const path = req.params.path;
52
- await fastifyRequestHandler({
53
- ...opts.trpcOptions,
50
+ await fastifyRequestHandler((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts.trpcOptions), {}, {
54
51
  req,
55
52
  res,
56
53
  path
57
- });
54
+ }));
58
55
  });
59
56
  if (opts.useWSS) {
57
+ var _prefix;
60
58
  const trpcOptions = opts.trpcOptions;
61
- const onConnection = getWSConnectionHandler({ ...trpcOptions });
62
- fastify.get(prefix ?? "/", { websocket: true }, (socket, req) => {
59
+ const onConnection = getWSConnectionHandler((0, import_objectSpread2.default)({}, trpcOptions));
60
+ fastify.get((_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : "/", { websocket: true }, (socket, req) => {
61
+ var _trpcOptions$keepAliv;
63
62
  onConnection(socket, req.raw);
64
- if (trpcOptions?.keepAlive?.enabled) {
63
+ if (trpcOptions === null || trpcOptions === void 0 || (_trpcOptions$keepAliv = trpcOptions.keepAlive) === null || _trpcOptions$keepAliv === void 0 ? void 0 : _trpcOptions$keepAliv.enabled) {
65
64
  const { pingMs, pongWaitMs } = trpcOptions.keepAlive;
66
65
  handleKeepAlive(socket, pingMs, pongWaitMs);
67
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["opts: FastifyRequestHandlerOptions<TRouter, TRequest, TResponse>","createContext: ResolveHTTPRequestOptionsContextFn<TRouter>","incomingMessage: NodeHTTPRequest","fastify: FastifyInstance","opts: FastifyTRPCPluginOptions<TRouter>","done: (err?: Error) => void"],"sources":["../../../src/adapters/fastify/fastifyRequestHandler.ts","../../../src/adapters/fastify/fastifyTRPCPlugin.ts"],"sourcesContent":["/**\n * If you're making an adapter for tRPC and looking at this file for reference, you should import types and functions from `@trpc/server` and `@trpc/server/http`\n *\n * @example\n * ```ts\n * import type { AnyTRPCRouter } from '@trpc/server'\n * import type { HTTPBaseHandlerOptions } from '@trpc/server/http'\n * ```\n */\nimport type { FastifyReply, FastifyRequest } from 'fastify';\n// @trpc/server\nimport type { AnyRouter } from '../../@trpc/server';\n// @trpc/server/http\nimport {\n resolveResponse,\n type HTTPBaseHandlerOptions,\n type ResolveHTTPRequestOptionsContextFn,\n} from '../../@trpc/server/http';\n// @trpc/server/node-http\nimport type { NodeHTTPRequest } from '../node-http';\nimport {\n incomingMessageToRequest,\n type NodeHTTPCreateContextOption,\n} from '../node-http';\n\nexport type FastifyHandlerOptions<\n TRouter extends AnyRouter,\n TRequest extends FastifyRequest,\n TResponse extends FastifyReply,\n> = HTTPBaseHandlerOptions<TRouter, TRequest> &\n NodeHTTPCreateContextOption<TRouter, TRequest, TResponse>;\n\ntype FastifyRequestHandlerOptions<\n TRouter extends AnyRouter,\n TRequest extends FastifyRequest,\n TResponse extends FastifyReply,\n> = FastifyHandlerOptions<TRouter, TRequest, TResponse> & {\n req: TRequest;\n res: TResponse;\n path: string;\n};\n\nexport async function fastifyRequestHandler<\n TRouter extends AnyRouter,\n TRequest extends FastifyRequest,\n TResponse extends FastifyReply,\n>(opts: FastifyRequestHandlerOptions<TRouter, TRequest, TResponse>) {\n const createContext: ResolveHTTPRequestOptionsContextFn<TRouter> = async (\n innerOpts,\n ) => {\n return await opts.createContext?.({\n ...opts,\n ...innerOpts,\n });\n };\n\n const incomingMessage: NodeHTTPRequest = opts.req.raw;\n\n // monkey-path body to the IncomingMessage\n if ('body' in opts.req) {\n incomingMessage.body = opts.req.body;\n }\n const req = incomingMessageToRequest(incomingMessage, opts.res.raw, {\n maxBodySize: null,\n });\n\n const res = await resolveResponse({\n ...opts,\n req,\n error: null,\n createContext,\n onError(o) {\n opts?.onError?.({\n ...o,\n req: opts.req,\n });\n },\n });\n\n await opts.res.send(res);\n}\n","/**\n * If you're making an adapter for tRPC and looking at this file for reference, you should import types and functions from `@trpc/server` and `@trpc/server/http`\n *\n * @example\n * ```ts\n * import type { AnyTRPCRouter } from '@trpc/server'\n * import type { HTTPBaseHandlerOptions } from '@trpc/server/http'\n * ```\n */\n/// <reference types=\"@fastify/websocket\" />\nimport type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';\n// @trpc/server\nimport type { AnyRouter } from '../../@trpc/server';\n// @trpc/server/http\nimport type { NodeHTTPCreateContextFnOptions } from '../node-http';\n// @trpc/server/ws\nimport {\n getWSConnectionHandler,\n handleKeepAlive,\n type WSSHandlerOptions,\n} from '../ws';\nimport type { FastifyHandlerOptions } from './fastifyRequestHandler';\nimport { fastifyRequestHandler } from './fastifyRequestHandler';\n\nexport interface FastifyTRPCPluginOptions<TRouter extends AnyRouter> {\n prefix?: string;\n useWSS?: boolean;\n trpcOptions: FastifyHandlerOptions<TRouter, FastifyRequest, FastifyReply>;\n}\n\nexport type CreateFastifyContextOptions = NodeHTTPCreateContextFnOptions<\n FastifyRequest,\n FastifyReply\n>;\n\nexport function fastifyTRPCPlugin<TRouter extends AnyRouter>(\n fastify: FastifyInstance,\n opts: FastifyTRPCPluginOptions<TRouter>,\n done: (err?: Error) => void,\n) {\n fastify.removeContentTypeParser('application/json');\n fastify.addContentTypeParser(\n 'application/json',\n { parseAs: 'string' },\n function (_, body, _done) {\n _done(null, body);\n },\n );\n\n let prefix = opts.prefix ?? '';\n\n // https://github.com/fastify/fastify-plugin/blob/fe079bef6557a83794bf437e14b9b9edb8a74104/plugin.js#L11\n // @ts-expect-error property 'default' does not exists on type ...\n if (typeof fastifyTRPCPlugin.default !== 'function') {\n prefix = ''; // handled by fastify internally\n }\n\n fastify.all(`${prefix}/:path`, async (req, res) => {\n const path = (req.params as any).path;\n await fastifyRequestHandler({ ...opts.trpcOptions, req, res, path });\n });\n\n if (opts.useWSS) {\n const trpcOptions =\n opts.trpcOptions as unknown as WSSHandlerOptions<TRouter>;\n\n const onConnection = getWSConnectionHandler<TRouter>({\n ...trpcOptions,\n });\n\n fastify.get(prefix ?? '/', { websocket: true }, (socket, req) => {\n onConnection(socket, req.raw);\n if (trpcOptions?.keepAlive?.enabled) {\n const { pingMs, pongWaitMs } = trpcOptions.keepAlive;\n handleKeepAlive(socket, pingMs, pongWaitMs);\n }\n });\n }\n\n done();\n}\n"],"mappings":";;;;;;;;;;;;;;;AA0CA,eAAsB,sBAIpBA,MAAkE;CAClE,MAAMC,gBAA6D,OACjE,cACG;AACH,SAAO,MAAM,KAAK,gBAAgB;GAChC,GAAG;GACH,GAAG;EACJ,EAAC;CACH;CAED,MAAMC,kBAAmC,KAAK,IAAI;AAGlD,KAAI,UAAU,KAAK,IACjB,iBAAgB,OAAO,KAAK,IAAI;CAElC,MAAM,MAAM,yBAAyB,iBAAiB,KAAK,IAAI,KAAK,EAClE,aAAa,KACd,EAAC;CAEF,MAAM,MAAM,MAAM,gBAAgB;EAChC,GAAG;EACH;EACA,OAAO;EACP;EACA,QAAQ,GAAG;AACT,SAAM,UAAU;IACd,GAAG;IACH,KAAK,KAAK;GACX,EAAC;EACH;CACF,EAAC;AAEF,OAAM,KAAK,IAAI,KAAK,IAAI;AACzB;;;;AC7CD,SAAgB,kBACdC,SACAC,MACAC,MACA;AACA,SAAQ,wBAAwB,mBAAmB;AACnD,SAAQ,qBACN,oBACA,EAAE,SAAS,SAAU,GACrB,SAAU,GAAG,MAAM,OAAO;AACxB,QAAM,MAAM,KAAK;CAClB,EACF;CAED,IAAI,SAAS,KAAK,UAAU;AAI5B,YAAW,kBAAkB,YAAY,WACvC,UAAS;AAGX,SAAQ,KAAK,EAAE,OAAO,SAAS,OAAO,KAAK,QAAQ;EACjD,MAAM,OAAQ,IAAI,OAAe;AACjC,QAAM,sBAAsB;GAAE,GAAG,KAAK;GAAa;GAAK;GAAK;EAAM,EAAC;CACrE,EAAC;AAEF,KAAI,KAAK,QAAQ;EACf,MAAM,cACJ,KAAK;EAEP,MAAM,eAAe,uBAAgC,EACnD,GAAG,YACJ,EAAC;AAEF,UAAQ,IAAI,UAAU,KAAK,EAAE,WAAW,KAAM,GAAE,CAAC,QAAQ,QAAQ;AAC/D,gBAAa,QAAQ,IAAI,IAAI;AAC7B,OAAI,aAAa,WAAW,SAAS;IACnC,MAAM,EAAE,QAAQ,YAAY,GAAG,YAAY;AAC3C,oBAAgB,QAAQ,QAAQ,WAAW;GAC5C;EACF,EAAC;CACH;AAED,OAAM;AACP"}
1
+ {"version":3,"file":"index.mjs","names":["opts: FastifyRequestHandlerOptions<TRouter, TRequest, TResponse>","createContext: ResolveHTTPRequestOptionsContextFn<TRouter>","incomingMessage: NodeHTTPRequest","fastify: FastifyInstance","opts: FastifyTRPCPluginOptions<TRouter>","done: (err?: Error) => void"],"sources":["../../../src/adapters/fastify/fastifyRequestHandler.ts","../../../src/adapters/fastify/fastifyTRPCPlugin.ts"],"sourcesContent":["/**\n * If you're making an adapter for tRPC and looking at this file for reference, you should import types and functions from `@trpc/server` and `@trpc/server/http`\n *\n * @example\n * ```ts\n * import type { AnyTRPCRouter } from '@trpc/server'\n * import type { HTTPBaseHandlerOptions } from '@trpc/server/http'\n * ```\n */\nimport type { FastifyReply, FastifyRequest } from 'fastify';\n// @trpc/server\nimport type { AnyRouter } from '../../@trpc/server';\n// @trpc/server/http\nimport {\n resolveResponse,\n type HTTPBaseHandlerOptions,\n type ResolveHTTPRequestOptionsContextFn,\n} from '../../@trpc/server/http';\n// @trpc/server/node-http\nimport type { NodeHTTPRequest } from '../node-http';\nimport {\n incomingMessageToRequest,\n type NodeHTTPCreateContextOption,\n} from '../node-http';\n\nexport type FastifyHandlerOptions<\n TRouter extends AnyRouter,\n TRequest extends FastifyRequest,\n TResponse extends FastifyReply,\n> = HTTPBaseHandlerOptions<TRouter, TRequest> &\n NodeHTTPCreateContextOption<TRouter, TRequest, TResponse>;\n\ntype FastifyRequestHandlerOptions<\n TRouter extends AnyRouter,\n TRequest extends FastifyRequest,\n TResponse extends FastifyReply,\n> = FastifyHandlerOptions<TRouter, TRequest, TResponse> & {\n req: TRequest;\n res: TResponse;\n path: string;\n};\n\nexport async function fastifyRequestHandler<\n TRouter extends AnyRouter,\n TRequest extends FastifyRequest,\n TResponse extends FastifyReply,\n>(opts: FastifyRequestHandlerOptions<TRouter, TRequest, TResponse>) {\n const createContext: ResolveHTTPRequestOptionsContextFn<TRouter> = async (\n innerOpts,\n ) => {\n return await opts.createContext?.({\n ...opts,\n ...innerOpts,\n });\n };\n\n const incomingMessage: NodeHTTPRequest = opts.req.raw;\n\n // monkey-path body to the IncomingMessage\n if ('body' in opts.req) {\n incomingMessage.body = opts.req.body;\n }\n const req = incomingMessageToRequest(incomingMessage, opts.res.raw, {\n maxBodySize: null,\n });\n\n const res = await resolveResponse({\n ...opts,\n req,\n error: null,\n createContext,\n onError(o) {\n opts?.onError?.({\n ...o,\n req: opts.req,\n });\n },\n });\n\n await opts.res.send(res);\n}\n","/**\n * If you're making an adapter for tRPC and looking at this file for reference, you should import types and functions from `@trpc/server` and `@trpc/server/http`\n *\n * @example\n * ```ts\n * import type { AnyTRPCRouter } from '@trpc/server'\n * import type { HTTPBaseHandlerOptions } from '@trpc/server/http'\n * ```\n */\n/// <reference types=\"@fastify/websocket\" />\nimport type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';\n// @trpc/server\nimport type { AnyRouter } from '../../@trpc/server';\n// @trpc/server/http\nimport type { NodeHTTPCreateContextFnOptions } from '../node-http';\n// @trpc/server/ws\nimport {\n getWSConnectionHandler,\n handleKeepAlive,\n type WSSHandlerOptions,\n} from '../ws';\nimport type { FastifyHandlerOptions } from './fastifyRequestHandler';\nimport { fastifyRequestHandler } from './fastifyRequestHandler';\n\nexport interface FastifyTRPCPluginOptions<TRouter extends AnyRouter> {\n prefix?: string;\n useWSS?: boolean;\n trpcOptions: FastifyHandlerOptions<TRouter, FastifyRequest, FastifyReply>;\n}\n\nexport type CreateFastifyContextOptions = NodeHTTPCreateContextFnOptions<\n FastifyRequest,\n FastifyReply\n>;\n\nexport function fastifyTRPCPlugin<TRouter extends AnyRouter>(\n fastify: FastifyInstance,\n opts: FastifyTRPCPluginOptions<TRouter>,\n done: (err?: Error) => void,\n) {\n fastify.removeContentTypeParser('application/json');\n fastify.addContentTypeParser(\n 'application/json',\n { parseAs: 'string' },\n function (_, body, _done) {\n _done(null, body);\n },\n );\n\n let prefix = opts.prefix ?? '';\n\n // https://github.com/fastify/fastify-plugin/blob/fe079bef6557a83794bf437e14b9b9edb8a74104/plugin.js#L11\n // @ts-expect-error property 'default' does not exists on type ...\n if (typeof fastifyTRPCPlugin.default !== 'function') {\n prefix = ''; // handled by fastify internally\n }\n\n fastify.all(`${prefix}/:path`, async (req, res) => {\n const path = (req.params as any).path;\n await fastifyRequestHandler({ ...opts.trpcOptions, req, res, path });\n });\n\n if (opts.useWSS) {\n const trpcOptions =\n opts.trpcOptions as unknown as WSSHandlerOptions<TRouter>;\n\n const onConnection = getWSConnectionHandler<TRouter>({\n ...trpcOptions,\n });\n\n fastify.get(prefix ?? '/', { websocket: true }, (socket, req) => {\n onConnection(socket, req.raw);\n if (trpcOptions?.keepAlive?.enabled) {\n const { pingMs, pongWaitMs } = trpcOptions.keepAlive;\n handleKeepAlive(socket, pingMs, pongWaitMs);\n }\n });\n }\n\n done();\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA0CA,eAAsB,sBAIpBA,MAAkE;CAClE,MAAMC,gBAA6D,OACjE,cACG;;AACH,SAAO,8BAAM,KAAK,qEAAL,2GACR,OACA,WACH;CACH;CAED,MAAMC,kBAAmC,KAAK,IAAI;AAGlD,KAAI,UAAU,KAAK,IACjB,iBAAgB,OAAO,KAAK,IAAI;CAElC,MAAM,MAAM,yBAAyB,iBAAiB,KAAK,IAAI,KAAK,EAClE,aAAa,KACd,EAAC;CAEF,MAAM,MAAM,MAAM,4FACb;EACH;EACA,OAAO;EACP;EACA,QAAQ,GAAG;;AACT,6DAAM,iDAAN,qGACK,UACH,KAAK,KAAK,OACV;EACH;IACD;AAEF,OAAM,KAAK,IAAI,KAAK,IAAI;AACzB;;;;;AC7CD,SAAgB,kBACdC,SACAC,MACAC,MACA;;AACA,SAAQ,wBAAwB,mBAAmB;AACnD,SAAQ,qBACN,oBACA,EAAE,SAAS,SAAU,GACrB,SAAU,GAAG,MAAM,OAAO;AACxB,QAAM,MAAM,KAAK;CAClB,EACF;CAED,IAAI,yBAAS,KAAK,6DAAU;AAI5B,YAAW,kBAAkB,YAAY,WACvC,UAAS;AAGX,SAAQ,KAAK,EAAE,OAAO,SAAS,OAAO,KAAK,QAAQ;EACjD,MAAM,OAAQ,IAAI,OAAe;AACjC,QAAM,8FAA2B,KAAK;GAAa;GAAK;GAAK;KAAO;CACrE,EAAC;AAEF,KAAI,KAAK,QAAQ;;EACf,MAAM,cACJ,KAAK;EAEP,MAAM,eAAe,6DAChB,aACH;AAEF,UAAQ,eAAI,mDAAU,KAAK,EAAE,WAAW,KAAM,GAAE,CAAC,QAAQ,QAAQ;;AAC/D,gBAAa,QAAQ,IAAI,IAAI;AAC7B,kFAAI,YAAa,yFAAW,SAAS;IACnC,MAAM,EAAE,QAAQ,YAAY,GAAG,YAAY;AAC3C,oBAAgB,QAAQ,QAAQ,WAAW;GAC5C;EACF,EAAC;CACH;AAED,OAAM;AACP"}
@@ -1,10 +1,11 @@
1
- const require_resolveResponse = require('../../resolveResponse-B2CuaT_1.cjs');
2
- require('../../getErrorShape-CsikfkAc.cjs');
3
- require('../../tracked-Dl9sBZxY.cjs');
4
- require('../../utils-DVO6HZiR.cjs');
5
- require('../../observable-BwdrSFZU.cjs');
1
+ const require_getErrorShape = require('../../getErrorShape-DKiEF6Zc.cjs');
2
+ require('../../tracked-HoF8L_mq.cjs');
3
+ require('../../utils-BhNVZA-c.cjs');
4
+ const require_resolveResponse = require('../../resolveResponse-CVGbakBm.cjs');
5
+ require('../../observable-B1Nk6r1H.cjs');
6
6
 
7
7
  //#region src/adapters/fetch/fetchRequestHandler.ts
8
+ var import_objectSpread2 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
8
9
  const trimSlashes = (path) => {
9
10
  path = path.startsWith("/") ? path.slice(1) : path;
10
11
  path = path.endsWith("/") ? path.slice(0, -1) : path;
@@ -13,31 +14,29 @@ const trimSlashes = (path) => {
13
14
  async function fetchRequestHandler(opts) {
14
15
  const resHeaders = new Headers();
15
16
  const createContext = async (innerOpts) => {
16
- return opts.createContext?.({
17
+ var _opts$createContext;
18
+ return (_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, (0, import_objectSpread2.default)({
17
19
  req: opts.req,
18
- resHeaders,
19
- ...innerOpts
20
- });
20
+ resHeaders
21
+ }, innerOpts));
21
22
  };
22
23
  const url = new URL(opts.req.url);
23
24
  const pathname = trimSlashes(url.pathname);
24
25
  const endpoint = trimSlashes(opts.endpoint);
25
26
  const path = trimSlashes(pathname.slice(endpoint.length));
26
- return await require_resolveResponse.resolveResponse({
27
- ...opts,
27
+ return await require_resolveResponse.resolveResponse((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
28
28
  req: opts.req,
29
29
  createContext,
30
30
  path,
31
31
  error: null,
32
32
  onError(o) {
33
- opts?.onError?.({
34
- ...o,
35
- req: opts.req
36
- });
33
+ var _opts$onError;
34
+ opts === null || opts === void 0 || (_opts$onError = opts.onError) === null || _opts$onError === void 0 || _opts$onError.call(opts, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, o), {}, { req: opts.req }));
37
35
  },
38
36
  responseMeta(data) {
39
- const meta = opts.responseMeta?.(data);
40
- if (meta?.headers) {
37
+ var _opts$responseMeta;
38
+ const meta = (_opts$responseMeta = opts.responseMeta) === null || _opts$responseMeta === void 0 ? void 0 : _opts$responseMeta.call(opts, data);
39
+ if (meta === null || meta === void 0 ? void 0 : meta.headers) {
41
40
  if (meta.headers instanceof Headers) for (const [key, value] of meta.headers.entries()) resHeaders.append(key, value);
42
41
  else
43
42
  /**
@@ -48,10 +47,10 @@ async function fetchRequestHandler(opts) {
48
47
  }
49
48
  return {
50
49
  headers: resHeaders,
51
- status: meta?.status
50
+ status: meta === null || meta === void 0 ? void 0 : meta.status
52
51
  };
53
52
  }
54
- });
53
+ }));
55
54
  }
56
55
 
57
56
  //#endregion
@@ -1,10 +1,11 @@
1
- import { resolveResponse } from "../../resolveResponse-DPbYgJDD.mjs";
2
- import "../../getErrorShape-DyYil4aT.mjs";
3
- import "../../tracked-GEWPoL0C.mjs";
4
- import "../../utils-BHZJcBRv.mjs";
5
- import "../../observable-B1orLHHI.mjs";
1
+ import { __toESM, require_objectSpread2 } from "../../getErrorShape-Uhlrl4Bk.mjs";
2
+ import "../../tracked-gU3ttYjg.mjs";
3
+ import "../../utils-DdbbrDku.mjs";
4
+ import { resolveResponse } from "../../resolveResponse-CzlbRpCI.mjs";
5
+ import "../../observable-UMO3vUa_.mjs";
6
6
 
7
7
  //#region src/adapters/fetch/fetchRequestHandler.ts
8
+ var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
8
9
  const trimSlashes = (path) => {
9
10
  path = path.startsWith("/") ? path.slice(1) : path;
10
11
  path = path.endsWith("/") ? path.slice(0, -1) : path;
@@ -13,31 +14,29 @@ const trimSlashes = (path) => {
13
14
  async function fetchRequestHandler(opts) {
14
15
  const resHeaders = new Headers();
15
16
  const createContext = async (innerOpts) => {
16
- return opts.createContext?.({
17
+ var _opts$createContext;
18
+ return (_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, (0, import_objectSpread2.default)({
17
19
  req: opts.req,
18
- resHeaders,
19
- ...innerOpts
20
- });
20
+ resHeaders
21
+ }, innerOpts));
21
22
  };
22
23
  const url = new URL(opts.req.url);
23
24
  const pathname = trimSlashes(url.pathname);
24
25
  const endpoint = trimSlashes(opts.endpoint);
25
26
  const path = trimSlashes(pathname.slice(endpoint.length));
26
- return await resolveResponse({
27
- ...opts,
27
+ return await resolveResponse((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
28
28
  req: opts.req,
29
29
  createContext,
30
30
  path,
31
31
  error: null,
32
32
  onError(o) {
33
- opts?.onError?.({
34
- ...o,
35
- req: opts.req
36
- });
33
+ var _opts$onError;
34
+ opts === null || opts === void 0 || (_opts$onError = opts.onError) === null || _opts$onError === void 0 || _opts$onError.call(opts, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, o), {}, { req: opts.req }));
37
35
  },
38
36
  responseMeta(data) {
39
- const meta = opts.responseMeta?.(data);
40
- if (meta?.headers) {
37
+ var _opts$responseMeta;
38
+ const meta = (_opts$responseMeta = opts.responseMeta) === null || _opts$responseMeta === void 0 ? void 0 : _opts$responseMeta.call(opts, data);
39
+ if (meta === null || meta === void 0 ? void 0 : meta.headers) {
41
40
  if (meta.headers instanceof Headers) for (const [key, value] of meta.headers.entries()) resHeaders.append(key, value);
42
41
  else
43
42
  /**
@@ -48,10 +47,10 @@ async function fetchRequestHandler(opts) {
48
47
  }
49
48
  return {
50
49
  headers: resHeaders,
51
- status: meta?.status
50
+ status: meta === null || meta === void 0 ? void 0 : meta.status
52
51
  };
53
52
  }
54
- });
53
+ }));
55
54
  }
56
55
 
57
56
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["path: string","opts: FetchHandlerRequestOptions<TRouter>","createContext: ResolveHTTPRequestOptionsContextFn<TRouter>"],"sources":["../../../src/adapters/fetch/fetchRequestHandler.ts"],"sourcesContent":["/**\n * If you're making an adapter for tRPC and looking at this file for reference, you should import types and functions from `@trpc/server` and `@trpc/server/http`\n *\n * @example\n * ```ts\n * import type { AnyTRPCRouter } from '@trpc/server'\n * import type { HTTPBaseHandlerOptions } from '@trpc/server/http'\n * ```\n */\n// @trpc/server\n\nimport type { AnyRouter } from '../../@trpc/server';\nimport type { ResolveHTTPRequestOptionsContextFn } from '../../@trpc/server/http';\nimport { resolveResponse } from '../../@trpc/server/http';\nimport type { FetchHandlerRequestOptions } from './types';\n\nconst trimSlashes = (path: string): string => {\n path = path.startsWith('/') ? path.slice(1) : path;\n path = path.endsWith('/') ? path.slice(0, -1) : path;\n\n return path;\n};\n\nexport async function fetchRequestHandler<TRouter extends AnyRouter>(\n opts: FetchHandlerRequestOptions<TRouter>,\n): Promise<Response> {\n const resHeaders = new Headers();\n\n const createContext: ResolveHTTPRequestOptionsContextFn<TRouter> = async (\n innerOpts,\n ) => {\n return opts.createContext?.({ req: opts.req, resHeaders, ...innerOpts });\n };\n\n const url = new URL(opts.req.url);\n\n const pathname = trimSlashes(url.pathname);\n const endpoint = trimSlashes(opts.endpoint);\n const path = trimSlashes(pathname.slice(endpoint.length));\n\n return await resolveResponse({\n ...opts,\n req: opts.req,\n createContext,\n path,\n error: null,\n onError(o) {\n opts?.onError?.({ ...o, req: opts.req });\n },\n responseMeta(data) {\n const meta = opts.responseMeta?.(data);\n\n if (meta?.headers) {\n if (meta.headers instanceof Headers) {\n for (const [key, value] of meta.headers.entries()) {\n resHeaders.append(key, value);\n }\n } else {\n /**\n * @deprecated, delete in v12\n */\n for (const [key, value] of Object.entries(meta.headers)) {\n if (Array.isArray(value)) {\n for (const v of value) {\n resHeaders.append(key, v);\n }\n } else if (typeof value === 'string') {\n resHeaders.set(key, value);\n }\n }\n }\n }\n\n return {\n headers: resHeaders,\n status: meta?.status,\n };\n },\n });\n}\n"],"mappings":";;;;;;;AAgBA,MAAM,cAAc,CAACA,SAAyB;AAC5C,QAAO,KAAK,WAAW,IAAI,GAAG,KAAK,MAAM,EAAE,GAAG;AAC9C,QAAO,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM,GAAG,GAAG,GAAG;AAEhD,QAAO;AACR;AAED,eAAsB,oBACpBC,MACmB;CACnB,MAAM,aAAa,IAAI;CAEvB,MAAMC,gBAA6D,OACjE,cACG;AACH,SAAO,KAAK,gBAAgB;GAAE,KAAK,KAAK;GAAK;GAAY,GAAG;EAAW,EAAC;CACzE;CAED,MAAM,MAAM,IAAI,IAAI,KAAK,IAAI;CAE7B,MAAM,WAAW,YAAY,IAAI,SAAS;CAC1C,MAAM,WAAW,YAAY,KAAK,SAAS;CAC3C,MAAM,OAAO,YAAY,SAAS,MAAM,SAAS,OAAO,CAAC;AAEzD,QAAO,MAAM,gBAAgB;EAC3B,GAAG;EACH,KAAK,KAAK;EACV;EACA;EACA,OAAO;EACP,QAAQ,GAAG;AACT,SAAM,UAAU;IAAE,GAAG;IAAG,KAAK,KAAK;GAAK,EAAC;EACzC;EACD,aAAa,MAAM;GACjB,MAAM,OAAO,KAAK,eAAe,KAAK;AAEtC,OAAI,MAAM,SACR;QAAI,KAAK,mBAAmB,QAC1B,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,KAAK,QAAQ,SAAS,CAC/C,YAAW,OAAO,KAAK,MAAM;;;;;AAM/B,SAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,CACrD,KAAI,MAAM,QAAQ,MAAM,CACtB,MAAK,MAAM,KAAK,MACd,YAAW,OAAO,KAAK,EAAE;oBAEX,UAAU,SAC1B,YAAW,IAAI,KAAK,MAAM;GAG/B;AAGH,UAAO;IACL,SAAS;IACT,QAAQ,MAAM;GACf;EACF;CACF,EAAC;AACH"}
1
+ {"version":3,"file":"index.mjs","names":["path: string","opts: FetchHandlerRequestOptions<TRouter>","createContext: ResolveHTTPRequestOptionsContextFn<TRouter>"],"sources":["../../../src/adapters/fetch/fetchRequestHandler.ts"],"sourcesContent":["/**\n * If you're making an adapter for tRPC and looking at this file for reference, you should import types and functions from `@trpc/server` and `@trpc/server/http`\n *\n * @example\n * ```ts\n * import type { AnyTRPCRouter } from '@trpc/server'\n * import type { HTTPBaseHandlerOptions } from '@trpc/server/http'\n * ```\n */\n// @trpc/server\n\nimport type { AnyRouter } from '../../@trpc/server';\nimport type { ResolveHTTPRequestOptionsContextFn } from '../../@trpc/server/http';\nimport { resolveResponse } from '../../@trpc/server/http';\nimport type { FetchHandlerRequestOptions } from './types';\n\nconst trimSlashes = (path: string): string => {\n path = path.startsWith('/') ? path.slice(1) : path;\n path = path.endsWith('/') ? path.slice(0, -1) : path;\n\n return path;\n};\n\nexport async function fetchRequestHandler<TRouter extends AnyRouter>(\n opts: FetchHandlerRequestOptions<TRouter>,\n): Promise<Response> {\n const resHeaders = new Headers();\n\n const createContext: ResolveHTTPRequestOptionsContextFn<TRouter> = async (\n innerOpts,\n ) => {\n return opts.createContext?.({ req: opts.req, resHeaders, ...innerOpts });\n };\n\n const url = new URL(opts.req.url);\n\n const pathname = trimSlashes(url.pathname);\n const endpoint = trimSlashes(opts.endpoint);\n const path = trimSlashes(pathname.slice(endpoint.length));\n\n return await resolveResponse({\n ...opts,\n req: opts.req,\n createContext,\n path,\n error: null,\n onError(o) {\n opts?.onError?.({ ...o, req: opts.req });\n },\n responseMeta(data) {\n const meta = opts.responseMeta?.(data);\n\n if (meta?.headers) {\n if (meta.headers instanceof Headers) {\n for (const [key, value] of meta.headers.entries()) {\n resHeaders.append(key, value);\n }\n } else {\n /**\n * @deprecated, delete in v12\n */\n for (const [key, value] of Object.entries(meta.headers)) {\n if (Array.isArray(value)) {\n for (const v of value) {\n resHeaders.append(key, v);\n }\n } else if (typeof value === 'string') {\n resHeaders.set(key, value);\n }\n }\n }\n }\n\n return {\n headers: resHeaders,\n status: meta?.status,\n };\n },\n });\n}\n"],"mappings":";;;;;;;;AAgBA,MAAM,cAAc,CAACA,SAAyB;AAC5C,QAAO,KAAK,WAAW,IAAI,GAAG,KAAK,MAAM,EAAE,GAAG;AAC9C,QAAO,KAAK,SAAS,IAAI,GAAG,KAAK,MAAM,GAAG,GAAG,GAAG;AAEhD,QAAO;AACR;AAED,eAAsB,oBACpBC,MACmB;CACnB,MAAM,aAAa,IAAI;CAEvB,MAAMC,gBAA6D,OACjE,cACG;;AACH,gCAAO,KAAK,qEAAL;GAAuB,KAAK,KAAK;GAAK;KAAe,WAAY;CACzE;CAED,MAAM,MAAM,IAAI,IAAI,KAAK,IAAI;CAE7B,MAAM,WAAW,YAAY,IAAI,SAAS;CAC1C,MAAM,WAAW,YAAY,KAAK,SAAS;CAC3C,MAAM,OAAO,YAAY,SAAS,MAAM,SAAS,OAAO,CAAC;AAEzD,QAAO,MAAM,wFACR;EACH,KAAK,KAAK;EACV;EACA;EACA,OAAO;EACP,QAAQ,GAAG;;AACT,6DAAM,iDAAN,iGAAqB,UAAG,KAAK,KAAK,OAAM;EACzC;EACD,aAAa,MAAM;;GACjB,MAAM,6BAAO,KAAK,mEAAL,8BAAoB,KAAK;AAEtC,mDAAI,KAAM,SACR;QAAI,KAAK,mBAAmB,QAC1B,MAAK,MAAM,CAAC,KAAK,MAAM,IAAI,KAAK,QAAQ,SAAS,CAC/C,YAAW,OAAO,KAAK,MAAM;;;;;AAM/B,SAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,CACrD,KAAI,MAAM,QAAQ,MAAM,CACtB,MAAK,MAAM,KAAK,MACd,YAAW,OAAO,KAAK,EAAE;oBAEX,UAAU,SAC1B,YAAW,IAAI,KAAK,MAAM;GAG/B;AAGH,UAAO;IACL,SAAS;IACT,oDAAQ,KAAM;GACf;EACF;IACD;AACH"}