@trpc/server
Version:
40 lines (38 loc) • 1.51 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const require_codes = require("../codes-Be-DrYMh.cjs");
const require_getErrorShape = require("../getErrorShape-BAuHhNuh.cjs");
const require_asyncGeneratorDelegate = require("../asyncGeneratorDelegate-CMdmcplC.cjs");
const require_node_http = require("../node-http-vS2eeV-2.cjs");
//#region src/adapters/next.ts
/**
* Creates a Next.js API route handler for a router, for the Pages Router.
* The file must be named `[trpc].ts`. For the App Router, use
* `fetchRequestHandler`.
* @see https://trpc.io/docs/server/adapters/nextjs#nextjs-example
*/
function createNextApiHandler(opts) {
return async (req, res) => {
let path = "";
await require_codes.run(async () => {
path = require_codes.run(() => {
if (typeof req.query["trpc"] === "string") return req.query["trpc"];
if (Array.isArray(req.query["trpc"])) return req.query["trpc"].join("/");
throw new require_asyncGeneratorDelegate.TRPCError({
message: "Query \"trpc\" not found - is the file named `[trpc]`.ts or `[...trpc].ts`?",
code: "INTERNAL_SERVER_ERROR"
});
});
await require_node_http.nodeHTTPRequestHandler(require_getErrorShape._objectSpread2(require_getErrorShape._objectSpread2({}, opts), {}, {
req,
res,
path
}));
}).catch(require_node_http.internal_exceptionHandler(require_getErrorShape._objectSpread2({
req,
res,
path
}, opts)));
};
}
//#endregion
exports.createNextApiHandler = createNextApiHandler;