UEA-Prodem
This commit is contained in:
+272
@@ -0,0 +1,272 @@
|
||||
const require_getErrorShape = require('../../getErrorShape-Ed1OwssN.cjs');
|
||||
require('../../codes-BfZsPdy-.cjs');
|
||||
require('../../tracked-DFxm8M2u.cjs');
|
||||
const require_resolveResponse = require('../../resolveResponse-BCkjJQIz.cjs');
|
||||
require('../../observable-B1Nk6r1H.cjs');
|
||||
const node_stream = require_getErrorShape.__toESM(require("node:stream"));
|
||||
const node_stream_promises = require_getErrorShape.__toESM(require("node:stream/promises"));
|
||||
|
||||
//#region src/vendor/cookie-es/set-cookie/split.ts
|
||||
/**
|
||||
* Based on https://github.com/unjs/cookie-es/tree/v1.2.2
|
||||
* MIT License
|
||||
*
|
||||
* Cookie-es copyright (c) Pooya Parsa <pooya@pi0.io>
|
||||
* Set-Cookie parsing based on https://github.com/nfriedly/set-cookie-parser
|
||||
* Copyright (c) 2015 Nathan Friedly <nathan@nfriedly.com> (http://nfriedly.com/)
|
||||
*
|
||||
* @see https://github.com/unjs/cookie-es/blob/main/src/set-cookie/split.ts
|
||||
*/
|
||||
/**
|
||||
* Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas
|
||||
* that are within a single set-cookie field-value, such as in the Expires portion.
|
||||
*
|
||||
* See https://tools.ietf.org/html/rfc2616#section-4.2
|
||||
*/
|
||||
function splitSetCookieString(cookiesString) {
|
||||
if (Array.isArray(cookiesString)) return cookiesString.flatMap((c) => splitSetCookieString(c));
|
||||
if (typeof cookiesString !== "string") return [];
|
||||
const cookiesStrings = [];
|
||||
let pos = 0;
|
||||
let start;
|
||||
let ch;
|
||||
let lastComma;
|
||||
let nextStart;
|
||||
let cookiesSeparatorFound;
|
||||
const skipWhitespace = () => {
|
||||
while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) pos += 1;
|
||||
return pos < cookiesString.length;
|
||||
};
|
||||
const notSpecialChar = () => {
|
||||
ch = cookiesString.charAt(pos);
|
||||
return ch !== "=" && ch !== ";" && ch !== ",";
|
||||
};
|
||||
while (pos < cookiesString.length) {
|
||||
start = pos;
|
||||
cookiesSeparatorFound = false;
|
||||
while (skipWhitespace()) {
|
||||
ch = cookiesString.charAt(pos);
|
||||
if (ch === ",") {
|
||||
lastComma = pos;
|
||||
pos += 1;
|
||||
skipWhitespace();
|
||||
nextStart = pos;
|
||||
while (pos < cookiesString.length && notSpecialChar()) pos += 1;
|
||||
if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") {
|
||||
cookiesSeparatorFound = true;
|
||||
pos = nextStart;
|
||||
cookiesStrings.push(cookiesString.slice(start, lastComma));
|
||||
start = pos;
|
||||
} else pos = lastComma + 1;
|
||||
} else pos += 1;
|
||||
}
|
||||
if (!cookiesSeparatorFound || pos >= cookiesString.length) cookiesStrings.push(cookiesString.slice(start));
|
||||
}
|
||||
return cookiesStrings;
|
||||
}
|
||||
|
||||
//#endregion
|
||||
//#region src/adapters/aws-lambda/getPlanner.ts
|
||||
var import_objectSpread2$1 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
|
||||
function determinePayloadFormat(event) {
|
||||
const unknownEvent = event;
|
||||
if (typeof unknownEvent.version === "undefined") return "1.0";
|
||||
else return unknownEvent.version;
|
||||
}
|
||||
function getHeadersAndCookiesFromResponse(response) {
|
||||
const headers = Object.fromEntries(response.headers.entries());
|
||||
const cookies = splitSetCookieString(response.headers.getSetCookie()).map((cookie) => cookie.trim());
|
||||
delete headers["set-cookie"];
|
||||
return {
|
||||
headers,
|
||||
cookies
|
||||
};
|
||||
}
|
||||
const v1Processor = {
|
||||
getTRPCPath: (event) => {
|
||||
if (!event.pathParameters) {
|
||||
var _event$path$split$pop;
|
||||
return (_event$path$split$pop = event.path.split("/").pop()) !== null && _event$path$split$pop !== void 0 ? _event$path$split$pop : "";
|
||||
}
|
||||
const matches = event.resource.matchAll(new RegExp("\\{(.*?)\\}", "g"));
|
||||
for (const match of matches) {
|
||||
const group = match[1];
|
||||
if (group.includes("+") && event.pathParameters) {
|
||||
var _event$pathParameters;
|
||||
return (_event$pathParameters = event.pathParameters[group.replace("+", "")]) !== null && _event$pathParameters !== void 0 ? _event$pathParameters : "";
|
||||
}
|
||||
}
|
||||
return event.path.slice(1);
|
||||
},
|
||||
url(event) {
|
||||
var _ref, _ref2, _event$requestContext, _event$multiValueHead, _event$queryStringPar;
|
||||
const hostname = (_ref = (_ref2 = (_event$requestContext = event.requestContext.domainName) !== null && _event$requestContext !== void 0 ? _event$requestContext : event.headers["host"]) !== null && _ref2 !== void 0 ? _ref2 : (_event$multiValueHead = event.multiValueHeaders) === null || _event$multiValueHead === void 0 || (_event$multiValueHead = _event$multiValueHead["host"]) === null || _event$multiValueHead === void 0 ? void 0 : _event$multiValueHead[0]) !== null && _ref !== void 0 ? _ref : "localhost";
|
||||
const searchParams = new URLSearchParams();
|
||||
for (const [key, value] of Object.entries((_event$queryStringPar = event.queryStringParameters) !== null && _event$queryStringPar !== void 0 ? _event$queryStringPar : {})) if (value !== void 0) searchParams.append(key, value);
|
||||
const qs = searchParams.toString();
|
||||
return {
|
||||
hostname,
|
||||
pathname: event.path,
|
||||
search: qs && `?${qs}`
|
||||
};
|
||||
},
|
||||
getHeaders: (event) => {
|
||||
var _event$multiValueHead2, _event$headers;
|
||||
const headers = new Headers();
|
||||
for (const [k, values] of Object.entries((_event$multiValueHead2 = event.multiValueHeaders) !== null && _event$multiValueHead2 !== void 0 ? _event$multiValueHead2 : {})) if (values) values.forEach((v) => headers.append(k, v));
|
||||
for (const [key, value] of Object.entries((_event$headers = event.headers) !== null && _event$headers !== void 0 ? _event$headers : {})) if (value !== void 0 && !headers.has(key)) headers.append(key, value);
|
||||
return headers;
|
||||
},
|
||||
getMethod: (event) => event.httpMethod,
|
||||
toResult: async (response) => {
|
||||
const { headers, cookies } = getHeadersAndCookiesFromResponse(response);
|
||||
const result = (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, cookies.length && { multiValueHeaders: { "set-cookie": cookies } }), {}, {
|
||||
statusCode: response.status,
|
||||
body: await response.text(),
|
||||
headers
|
||||
});
|
||||
return result;
|
||||
},
|
||||
toStream: async (response, stream) => {
|
||||
const { headers, cookies } = getHeadersAndCookiesFromResponse(response);
|
||||
const metadata = {
|
||||
statusCode: response.status,
|
||||
headers,
|
||||
cookies
|
||||
};
|
||||
const responseStream = awslambda.HttpResponseStream.from(stream, metadata);
|
||||
if (response.body) await (0, node_stream_promises.pipeline)(node_stream.Readable.fromWeb(response.body), responseStream);
|
||||
else responseStream.end();
|
||||
}
|
||||
};
|
||||
const v2Processor = {
|
||||
getTRPCPath: (event) => {
|
||||
const matches = event.routeKey.matchAll(new RegExp("\\{(.*?)\\}", "g"));
|
||||
for (const match of matches) {
|
||||
const group = match[1];
|
||||
if (group.includes("+") && event.pathParameters) {
|
||||
var _event$pathParameters2;
|
||||
return (_event$pathParameters2 = event.pathParameters[group.replace("+", "")]) !== null && _event$pathParameters2 !== void 0 ? _event$pathParameters2 : "";
|
||||
}
|
||||
}
|
||||
return event.rawPath.slice(1);
|
||||
},
|
||||
url(event) {
|
||||
return {
|
||||
hostname: event.requestContext.domainName,
|
||||
pathname: event.rawPath,
|
||||
search: event.rawQueryString && `?${event.rawQueryString}`
|
||||
};
|
||||
},
|
||||
getHeaders: (event) => {
|
||||
var _event$headers2;
|
||||
const headers = new Headers();
|
||||
for (const [key, value] of Object.entries((_event$headers2 = event.headers) !== null && _event$headers2 !== void 0 ? _event$headers2 : {})) if (value !== void 0) headers.append(key, value);
|
||||
if (event.cookies) headers.append("cookie", event.cookies.join("; "));
|
||||
return headers;
|
||||
},
|
||||
getMethod: (event) => event.requestContext.http.method,
|
||||
toResult: async (response) => {
|
||||
const { headers, cookies } = getHeadersAndCookiesFromResponse(response);
|
||||
const result = {
|
||||
cookies,
|
||||
statusCode: response.status,
|
||||
body: await response.text(),
|
||||
headers
|
||||
};
|
||||
return result;
|
||||
},
|
||||
toStream: async (response, stream) => {
|
||||
const { headers, cookies } = getHeadersAndCookiesFromResponse(response);
|
||||
const metadata = {
|
||||
statusCode: response.status,
|
||||
headers,
|
||||
cookies
|
||||
};
|
||||
const responseStream = awslambda.HttpResponseStream.from(stream, metadata);
|
||||
if (response.body) await (0, node_stream_promises.pipeline)(node_stream.Readable.fromWeb(response.body), responseStream);
|
||||
else responseStream.end();
|
||||
}
|
||||
};
|
||||
function getPlanner(event) {
|
||||
const version = determinePayloadFormat(event);
|
||||
let processor;
|
||||
switch (version) {
|
||||
case "1.0":
|
||||
processor = v1Processor;
|
||||
break;
|
||||
case "2.0":
|
||||
processor = v2Processor;
|
||||
break;
|
||||
default: throw new Error(`Unsupported version: ${version}`);
|
||||
}
|
||||
const urlParts = processor.url(event);
|
||||
const url = `https://${urlParts.hostname}${urlParts.pathname}${urlParts.search}`;
|
||||
const init = {
|
||||
headers: processor.getHeaders(event),
|
||||
method: processor.getMethod(event),
|
||||
duplex: "half"
|
||||
};
|
||||
if (event.body) init.body = event.isBase64Encoded ? Buffer.from(event.body, "base64") : event.body;
|
||||
const request = new Request(url, init);
|
||||
return {
|
||||
path: processor.getTRPCPath(event),
|
||||
request,
|
||||
toResult: processor.toResult,
|
||||
toStream: processor.toStream
|
||||
};
|
||||
}
|
||||
|
||||
//#endregion
|
||||
//#region src/adapters/aws-lambda/index.ts
|
||||
var import_objectSpread2 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
|
||||
function awsLambdaRequestHandler(opts) {
|
||||
return async (event, context) => {
|
||||
const planner = getPlanner(event);
|
||||
const createContext = async (innerOpts) => {
|
||||
var _opts$createContext;
|
||||
return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, (0, import_objectSpread2.default)({
|
||||
event,
|
||||
context
|
||||
}, innerOpts)));
|
||||
};
|
||||
const response = await require_resolveResponse.resolveResponse((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
|
||||
createContext,
|
||||
req: planner.request,
|
||||
path: planner.path,
|
||||
error: null,
|
||||
onError(o) {
|
||||
var _opts$onError;
|
||||
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: event }));
|
||||
}
|
||||
}));
|
||||
return await planner.toResult(response);
|
||||
};
|
||||
}
|
||||
function awsLambdaStreamingRequestHandler(opts) {
|
||||
return async (event, responseStream, context) => {
|
||||
const planner = getPlanner(event);
|
||||
const createContext = async (innerOpts) => {
|
||||
var _opts$createContext2;
|
||||
return await ((_opts$createContext2 = opts.createContext) === null || _opts$createContext2 === void 0 ? void 0 : _opts$createContext2.call(opts, (0, import_objectSpread2.default)({
|
||||
event,
|
||||
context
|
||||
}, innerOpts)));
|
||||
};
|
||||
const response = await require_resolveResponse.resolveResponse((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
|
||||
createContext,
|
||||
req: planner.request,
|
||||
path: planner.path,
|
||||
error: null,
|
||||
onError(o) {
|
||||
var _opts$onError2;
|
||||
opts === null || opts === void 0 || (_opts$onError2 = opts.onError) === null || _opts$onError2 === void 0 || _opts$onError2.call(opts, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, o), {}, { req: event }));
|
||||
}
|
||||
}));
|
||||
await planner.toStream(response, responseStream);
|
||||
};
|
||||
}
|
||||
|
||||
//#endregion
|
||||
exports.awsLambdaRequestHandler = awsLambdaRequestHandler;
|
||||
exports.awsLambdaStreamingRequestHandler = awsLambdaStreamingRequestHandler;
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
import "../../index.d-BiUz7kM_.cjs";
|
||||
import { AnyRouter, CreateContextCallback, HTTPBaseHandlerOptions, TRPCRequestInfo, inferRouterContext } from "../../unstable-core-do-not-import.d-Dh9CT5RO.cjs";
|
||||
import "../../index.d-CvZXeEyR.cjs";
|
||||
import { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResult, APIGatewayProxyStructuredResultV2, Context, StreamifyHandler } from "aws-lambda";
|
||||
|
||||
//#region src/adapters/aws-lambda/getPlanner.d.ts
|
||||
type LambdaEvent = APIGatewayProxyEvent | APIGatewayProxyEventV2;
|
||||
/** 1:1 mapping of v1 or v2 input events, deduces which is which.
|
||||
* @internal
|
||||
**/
|
||||
type inferAPIGWReturn<TEvent> = TEvent extends APIGatewayProxyEvent ? APIGatewayProxyResult : TEvent extends APIGatewayProxyEventV2 ? APIGatewayProxyStructuredResultV2 : never;
|
||||
//#endregion
|
||||
//#region src/adapters/aws-lambda/index.d.ts
|
||||
type CreateAWSLambdaContextOptions<TEvent extends LambdaEvent> = {
|
||||
event: TEvent;
|
||||
context: Context;
|
||||
info: TRPCRequestInfo;
|
||||
};
|
||||
type AWSLambdaOptions<TRouter extends AnyRouter, TEvent extends LambdaEvent> = HTTPBaseHandlerOptions<TRouter, TEvent> & CreateContextCallback<inferRouterContext<AnyRouter>, AWSLambdaCreateContextFn<TRouter, TEvent>>;
|
||||
type AWSLambdaCreateContextFn<TRouter extends AnyRouter, TEvent extends LambdaEvent> = ({
|
||||
event,
|
||||
context,
|
||||
info
|
||||
}: CreateAWSLambdaContextOptions<TEvent>) => inferRouterContext<TRouter> | Promise<inferRouterContext<TRouter>>;
|
||||
declare function awsLambdaRequestHandler<TRouter extends AnyRouter, TEvent extends LambdaEvent>(opts: AWSLambdaOptions<TRouter, TEvent>): (event: TEvent, context: Context) => Promise<inferAPIGWReturn<TEvent>>;
|
||||
declare function awsLambdaStreamingRequestHandler<TRouter extends AnyRouter, TEvent extends LambdaEvent>(opts: AWSLambdaOptions<TRouter, TEvent>): StreamifyHandler<TEvent>;
|
||||
//# sourceMappingURL=index.d.ts.map
|
||||
|
||||
//#endregion
|
||||
export { AWSLambdaCreateContextFn, AWSLambdaOptions, CreateAWSLambdaContextOptions, awsLambdaRequestHandler, awsLambdaStreamingRequestHandler };
|
||||
//# sourceMappingURL=index.d.cts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/adapters/aws-lambda/getPlanner.ts","../../../src/adapters/aws-lambda/index.ts"],"sourcesContent":[],"mappings":";;;;;;KAUY,WAAA,GAAc,uBAAuB;;;AAAjD;AAAuB,KAqBX,gBArBW,CAAA,MAAA,CAAA,GAqBgB,MArBhB,SAqB+B,oBArB/B,GAsBnB,qBAtBmB,GAuBnB,MAvBmB,SAuBJ,sBAvBI,GAwBjB,iCAxBiB,GAAA,KAAA;;;AAqBgB,KCL3B,6BDK2B,CAAA,eCLkB,WDKlB,CAAA,GAAA;EAAM,KAAS,ECJ7C,MDI6C;EAAoB,OACtE,ECJO,ODIP;EAAqB,IACrB,ECJI,eDIJ;CAAM;AACJ,KCFM,gBDEN,CAAA,gBCDY,SDCZ,EAAA,eCAW,WDAX,CAAA,GCCF,sBDDE,CCCqB,ODDrB,ECC8B,MDD9B,CAAA,GCEJ,qBDFI,CCGF,kBDHE,CCGiB,SDHjB,CAAA,ECIF,wBDJE,CCIuB,ODJvB,ECIgC,MDJhC,CAAA,CAAA;AAAiC,KCO3B,wBDP2B,CAAA,gBCQrB,SDRqB,EAAA,eCStB,WDTsB,CAAA,GAAA,CAAA;EAAA,KAAA;EAAA,OAAA;EAAA;AAAA,CAAA,ECcpC,6BDdoC,CCcN,MDdM,CAAA,EAAA,GCenC,kBDfmC,CCehB,ODfgB,CAAA,GCgBnC,ODhBmC,CCgB3B,kBDhB2B,CCgBR,ODhBQ,CAAA,CAAA;iBCkBvB,wCACE,0BACD,mBAET,iBAAiB,SAAS,kBACvB,iBAAiB,YAAiB,QAAQ,iBAAiB;iBA4BtD,iDACE,0BACD,mBACT,iBAAiB,SAAS,UAAU,iBAAiB"}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
import "../../index.d-D4qZxQJh.mjs";
|
||||
import { AnyRouter, CreateContextCallback, HTTPBaseHandlerOptions, TRPCRequestInfo, inferRouterContext } from "../../unstable-core-do-not-import.d-BdVSvUCr.mjs";
|
||||
import "../../index.d-vq_QHko2.mjs";
|
||||
import { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResult, APIGatewayProxyStructuredResultV2, Context, StreamifyHandler } from "aws-lambda";
|
||||
|
||||
//#region src/adapters/aws-lambda/getPlanner.d.ts
|
||||
type LambdaEvent = APIGatewayProxyEvent | APIGatewayProxyEventV2;
|
||||
/** 1:1 mapping of v1 or v2 input events, deduces which is which.
|
||||
* @internal
|
||||
**/
|
||||
type inferAPIGWReturn<TEvent> = TEvent extends APIGatewayProxyEvent ? APIGatewayProxyResult : TEvent extends APIGatewayProxyEventV2 ? APIGatewayProxyStructuredResultV2 : never;
|
||||
//#endregion
|
||||
//#region src/adapters/aws-lambda/index.d.ts
|
||||
type CreateAWSLambdaContextOptions<TEvent extends LambdaEvent> = {
|
||||
event: TEvent;
|
||||
context: Context;
|
||||
info: TRPCRequestInfo;
|
||||
};
|
||||
type AWSLambdaOptions<TRouter extends AnyRouter, TEvent extends LambdaEvent> = HTTPBaseHandlerOptions<TRouter, TEvent> & CreateContextCallback<inferRouterContext<AnyRouter>, AWSLambdaCreateContextFn<TRouter, TEvent>>;
|
||||
type AWSLambdaCreateContextFn<TRouter extends AnyRouter, TEvent extends LambdaEvent> = ({
|
||||
event,
|
||||
context,
|
||||
info
|
||||
}: CreateAWSLambdaContextOptions<TEvent>) => inferRouterContext<TRouter> | Promise<inferRouterContext<TRouter>>;
|
||||
declare function awsLambdaRequestHandler<TRouter extends AnyRouter, TEvent extends LambdaEvent>(opts: AWSLambdaOptions<TRouter, TEvent>): (event: TEvent, context: Context) => Promise<inferAPIGWReturn<TEvent>>;
|
||||
declare function awsLambdaStreamingRequestHandler<TRouter extends AnyRouter, TEvent extends LambdaEvent>(opts: AWSLambdaOptions<TRouter, TEvent>): StreamifyHandler<TEvent>;
|
||||
//# sourceMappingURL=index.d.ts.map
|
||||
|
||||
//#endregion
|
||||
export { AWSLambdaCreateContextFn, AWSLambdaOptions, CreateAWSLambdaContextOptions, awsLambdaRequestHandler, awsLambdaStreamingRequestHandler };
|
||||
//# sourceMappingURL=index.d.mts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/adapters/aws-lambda/getPlanner.ts","../../../src/adapters/aws-lambda/index.ts"],"sourcesContent":[],"mappings":";;;;;;KAUY,WAAA,GAAc,uBAAuB;;;AAAjD;AAAuB,KAqBX,gBArBW,CAAA,MAAA,CAAA,GAqBgB,MArBhB,SAqB+B,oBArB/B,GAsBnB,qBAtBmB,GAuBnB,MAvBmB,SAuBJ,sBAvBI,GAwBjB,iCAxBiB,GAAA,KAAA;;;AAqBgB,KCL3B,6BDK2B,CAAA,eCLkB,WDKlB,CAAA,GAAA;EAAM,KAAS,ECJ7C,MDI6C;EAAoB,OACtE,ECJO,ODIP;EAAqB,IACrB,ECJI,eDIJ;CAAM;AACJ,KCFM,gBDEN,CAAA,gBCDY,SDCZ,EAAA,eCAW,WDAX,CAAA,GCCF,sBDDE,CCCqB,ODDrB,ECC8B,MDD9B,CAAA,GCEJ,qBDFI,CCGF,kBDHE,CCGiB,SDHjB,CAAA,ECIF,wBDJE,CCIuB,ODJvB,ECIgC,MDJhC,CAAA,CAAA;AAAiC,KCO3B,wBDP2B,CAAA,gBCQrB,SDRqB,EAAA,eCStB,WDTsB,CAAA,GAAA,CAAA;EAAA,KAAA;EAAA,OAAA;EAAA;AAAA,CAAA,ECcpC,6BDdoC,CCcN,MDdM,CAAA,EAAA,GCenC,kBDfmC,CCehB,ODfgB,CAAA,GCgBnC,ODhBmC,CCgB3B,kBDhB2B,CCgBR,ODhBQ,CAAA,CAAA;iBCkBvB,wCACE,0BACD,mBAET,iBAAiB,SAAS,kBACvB,iBAAiB,YAAiB,QAAQ,iBAAiB;iBA4BtD,iDACE,0BACD,mBACT,iBAAiB,SAAS,UAAU,iBAAiB"}
|
||||
+272
@@ -0,0 +1,272 @@
|
||||
import { __toESM, require_objectSpread2 } from "../../getErrorShape-BPSzUA7W.mjs";
|
||||
import "../../codes-DagpWZLc.mjs";
|
||||
import "../../tracked-DWInO6EQ.mjs";
|
||||
import { resolveResponse } from "../../resolveResponse-CdASWfAV.mjs";
|
||||
import "../../observable-UMO3vUa_.mjs";
|
||||
import { Readable } from "node:stream";
|
||||
import { pipeline } from "node:stream/promises";
|
||||
|
||||
//#region src/vendor/cookie-es/set-cookie/split.ts
|
||||
/**
|
||||
* Based on https://github.com/unjs/cookie-es/tree/v1.2.2
|
||||
* MIT License
|
||||
*
|
||||
* Cookie-es copyright (c) Pooya Parsa <pooya@pi0.io>
|
||||
* Set-Cookie parsing based on https://github.com/nfriedly/set-cookie-parser
|
||||
* Copyright (c) 2015 Nathan Friedly <nathan@nfriedly.com> (http://nfriedly.com/)
|
||||
*
|
||||
* @see https://github.com/unjs/cookie-es/blob/main/src/set-cookie/split.ts
|
||||
*/
|
||||
/**
|
||||
* Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas
|
||||
* that are within a single set-cookie field-value, such as in the Expires portion.
|
||||
*
|
||||
* See https://tools.ietf.org/html/rfc2616#section-4.2
|
||||
*/
|
||||
function splitSetCookieString(cookiesString) {
|
||||
if (Array.isArray(cookiesString)) return cookiesString.flatMap((c) => splitSetCookieString(c));
|
||||
if (typeof cookiesString !== "string") return [];
|
||||
const cookiesStrings = [];
|
||||
let pos = 0;
|
||||
let start;
|
||||
let ch;
|
||||
let lastComma;
|
||||
let nextStart;
|
||||
let cookiesSeparatorFound;
|
||||
const skipWhitespace = () => {
|
||||
while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) pos += 1;
|
||||
return pos < cookiesString.length;
|
||||
};
|
||||
const notSpecialChar = () => {
|
||||
ch = cookiesString.charAt(pos);
|
||||
return ch !== "=" && ch !== ";" && ch !== ",";
|
||||
};
|
||||
while (pos < cookiesString.length) {
|
||||
start = pos;
|
||||
cookiesSeparatorFound = false;
|
||||
while (skipWhitespace()) {
|
||||
ch = cookiesString.charAt(pos);
|
||||
if (ch === ",") {
|
||||
lastComma = pos;
|
||||
pos += 1;
|
||||
skipWhitespace();
|
||||
nextStart = pos;
|
||||
while (pos < cookiesString.length && notSpecialChar()) pos += 1;
|
||||
if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") {
|
||||
cookiesSeparatorFound = true;
|
||||
pos = nextStart;
|
||||
cookiesStrings.push(cookiesString.slice(start, lastComma));
|
||||
start = pos;
|
||||
} else pos = lastComma + 1;
|
||||
} else pos += 1;
|
||||
}
|
||||
if (!cookiesSeparatorFound || pos >= cookiesString.length) cookiesStrings.push(cookiesString.slice(start));
|
||||
}
|
||||
return cookiesStrings;
|
||||
}
|
||||
|
||||
//#endregion
|
||||
//#region src/adapters/aws-lambda/getPlanner.ts
|
||||
var import_objectSpread2$1 = __toESM(require_objectSpread2(), 1);
|
||||
function determinePayloadFormat(event) {
|
||||
const unknownEvent = event;
|
||||
if (typeof unknownEvent.version === "undefined") return "1.0";
|
||||
else return unknownEvent.version;
|
||||
}
|
||||
function getHeadersAndCookiesFromResponse(response) {
|
||||
const headers = Object.fromEntries(response.headers.entries());
|
||||
const cookies = splitSetCookieString(response.headers.getSetCookie()).map((cookie) => cookie.trim());
|
||||
delete headers["set-cookie"];
|
||||
return {
|
||||
headers,
|
||||
cookies
|
||||
};
|
||||
}
|
||||
const v1Processor = {
|
||||
getTRPCPath: (event) => {
|
||||
if (!event.pathParameters) {
|
||||
var _event$path$split$pop;
|
||||
return (_event$path$split$pop = event.path.split("/").pop()) !== null && _event$path$split$pop !== void 0 ? _event$path$split$pop : "";
|
||||
}
|
||||
const matches = event.resource.matchAll(new RegExp("\\{(.*?)\\}", "g"));
|
||||
for (const match of matches) {
|
||||
const group = match[1];
|
||||
if (group.includes("+") && event.pathParameters) {
|
||||
var _event$pathParameters;
|
||||
return (_event$pathParameters = event.pathParameters[group.replace("+", "")]) !== null && _event$pathParameters !== void 0 ? _event$pathParameters : "";
|
||||
}
|
||||
}
|
||||
return event.path.slice(1);
|
||||
},
|
||||
url(event) {
|
||||
var _ref, _ref2, _event$requestContext, _event$multiValueHead, _event$queryStringPar;
|
||||
const hostname = (_ref = (_ref2 = (_event$requestContext = event.requestContext.domainName) !== null && _event$requestContext !== void 0 ? _event$requestContext : event.headers["host"]) !== null && _ref2 !== void 0 ? _ref2 : (_event$multiValueHead = event.multiValueHeaders) === null || _event$multiValueHead === void 0 || (_event$multiValueHead = _event$multiValueHead["host"]) === null || _event$multiValueHead === void 0 ? void 0 : _event$multiValueHead[0]) !== null && _ref !== void 0 ? _ref : "localhost";
|
||||
const searchParams = new URLSearchParams();
|
||||
for (const [key, value] of Object.entries((_event$queryStringPar = event.queryStringParameters) !== null && _event$queryStringPar !== void 0 ? _event$queryStringPar : {})) if (value !== void 0) searchParams.append(key, value);
|
||||
const qs = searchParams.toString();
|
||||
return {
|
||||
hostname,
|
||||
pathname: event.path,
|
||||
search: qs && `?${qs}`
|
||||
};
|
||||
},
|
||||
getHeaders: (event) => {
|
||||
var _event$multiValueHead2, _event$headers;
|
||||
const headers = new Headers();
|
||||
for (const [k, values] of Object.entries((_event$multiValueHead2 = event.multiValueHeaders) !== null && _event$multiValueHead2 !== void 0 ? _event$multiValueHead2 : {})) if (values) values.forEach((v) => headers.append(k, v));
|
||||
for (const [key, value] of Object.entries((_event$headers = event.headers) !== null && _event$headers !== void 0 ? _event$headers : {})) if (value !== void 0 && !headers.has(key)) headers.append(key, value);
|
||||
return headers;
|
||||
},
|
||||
getMethod: (event) => event.httpMethod,
|
||||
toResult: async (response) => {
|
||||
const { headers, cookies } = getHeadersAndCookiesFromResponse(response);
|
||||
const result = (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, cookies.length && { multiValueHeaders: { "set-cookie": cookies } }), {}, {
|
||||
statusCode: response.status,
|
||||
body: await response.text(),
|
||||
headers
|
||||
});
|
||||
return result;
|
||||
},
|
||||
toStream: async (response, stream) => {
|
||||
const { headers, cookies } = getHeadersAndCookiesFromResponse(response);
|
||||
const metadata = {
|
||||
statusCode: response.status,
|
||||
headers,
|
||||
cookies
|
||||
};
|
||||
const responseStream = awslambda.HttpResponseStream.from(stream, metadata);
|
||||
if (response.body) await pipeline(Readable.fromWeb(response.body), responseStream);
|
||||
else responseStream.end();
|
||||
}
|
||||
};
|
||||
const v2Processor = {
|
||||
getTRPCPath: (event) => {
|
||||
const matches = event.routeKey.matchAll(new RegExp("\\{(.*?)\\}", "g"));
|
||||
for (const match of matches) {
|
||||
const group = match[1];
|
||||
if (group.includes("+") && event.pathParameters) {
|
||||
var _event$pathParameters2;
|
||||
return (_event$pathParameters2 = event.pathParameters[group.replace("+", "")]) !== null && _event$pathParameters2 !== void 0 ? _event$pathParameters2 : "";
|
||||
}
|
||||
}
|
||||
return event.rawPath.slice(1);
|
||||
},
|
||||
url(event) {
|
||||
return {
|
||||
hostname: event.requestContext.domainName,
|
||||
pathname: event.rawPath,
|
||||
search: event.rawQueryString && `?${event.rawQueryString}`
|
||||
};
|
||||
},
|
||||
getHeaders: (event) => {
|
||||
var _event$headers2;
|
||||
const headers = new Headers();
|
||||
for (const [key, value] of Object.entries((_event$headers2 = event.headers) !== null && _event$headers2 !== void 0 ? _event$headers2 : {})) if (value !== void 0) headers.append(key, value);
|
||||
if (event.cookies) headers.append("cookie", event.cookies.join("; "));
|
||||
return headers;
|
||||
},
|
||||
getMethod: (event) => event.requestContext.http.method,
|
||||
toResult: async (response) => {
|
||||
const { headers, cookies } = getHeadersAndCookiesFromResponse(response);
|
||||
const result = {
|
||||
cookies,
|
||||
statusCode: response.status,
|
||||
body: await response.text(),
|
||||
headers
|
||||
};
|
||||
return result;
|
||||
},
|
||||
toStream: async (response, stream) => {
|
||||
const { headers, cookies } = getHeadersAndCookiesFromResponse(response);
|
||||
const metadata = {
|
||||
statusCode: response.status,
|
||||
headers,
|
||||
cookies
|
||||
};
|
||||
const responseStream = awslambda.HttpResponseStream.from(stream, metadata);
|
||||
if (response.body) await pipeline(Readable.fromWeb(response.body), responseStream);
|
||||
else responseStream.end();
|
||||
}
|
||||
};
|
||||
function getPlanner(event) {
|
||||
const version = determinePayloadFormat(event);
|
||||
let processor;
|
||||
switch (version) {
|
||||
case "1.0":
|
||||
processor = v1Processor;
|
||||
break;
|
||||
case "2.0":
|
||||
processor = v2Processor;
|
||||
break;
|
||||
default: throw new Error(`Unsupported version: ${version}`);
|
||||
}
|
||||
const urlParts = processor.url(event);
|
||||
const url = `https://${urlParts.hostname}${urlParts.pathname}${urlParts.search}`;
|
||||
const init = {
|
||||
headers: processor.getHeaders(event),
|
||||
method: processor.getMethod(event),
|
||||
duplex: "half"
|
||||
};
|
||||
if (event.body) init.body = event.isBase64Encoded ? Buffer.from(event.body, "base64") : event.body;
|
||||
const request = new Request(url, init);
|
||||
return {
|
||||
path: processor.getTRPCPath(event),
|
||||
request,
|
||||
toResult: processor.toResult,
|
||||
toStream: processor.toStream
|
||||
};
|
||||
}
|
||||
|
||||
//#endregion
|
||||
//#region src/adapters/aws-lambda/index.ts
|
||||
var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
|
||||
function awsLambdaRequestHandler(opts) {
|
||||
return async (event, context) => {
|
||||
const planner = getPlanner(event);
|
||||
const createContext = async (innerOpts) => {
|
||||
var _opts$createContext;
|
||||
return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, (0, import_objectSpread2.default)({
|
||||
event,
|
||||
context
|
||||
}, innerOpts)));
|
||||
};
|
||||
const response = await resolveResponse((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
|
||||
createContext,
|
||||
req: planner.request,
|
||||
path: planner.path,
|
||||
error: null,
|
||||
onError(o) {
|
||||
var _opts$onError;
|
||||
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: event }));
|
||||
}
|
||||
}));
|
||||
return await planner.toResult(response);
|
||||
};
|
||||
}
|
||||
function awsLambdaStreamingRequestHandler(opts) {
|
||||
return async (event, responseStream, context) => {
|
||||
const planner = getPlanner(event);
|
||||
const createContext = async (innerOpts) => {
|
||||
var _opts$createContext2;
|
||||
return await ((_opts$createContext2 = opts.createContext) === null || _opts$createContext2 === void 0 ? void 0 : _opts$createContext2.call(opts, (0, import_objectSpread2.default)({
|
||||
event,
|
||||
context
|
||||
}, innerOpts)));
|
||||
};
|
||||
const response = await resolveResponse((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
|
||||
createContext,
|
||||
req: planner.request,
|
||||
path: planner.path,
|
||||
error: null,
|
||||
onError(o) {
|
||||
var _opts$onError2;
|
||||
opts === null || opts === void 0 || (_opts$onError2 = opts.onError) === null || _opts$onError2 === void 0 || _opts$onError2.call(opts, (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, o), {}, { req: event }));
|
||||
}
|
||||
}));
|
||||
await planner.toStream(response, responseStream);
|
||||
};
|
||||
}
|
||||
|
||||
//#endregion
|
||||
export { awsLambdaRequestHandler, awsLambdaStreamingRequestHandler };
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
+1
File diff suppressed because one or more lines are too long
+33
@@ -0,0 +1,33 @@
|
||||
const require_getErrorShape = require('../getErrorShape-Ed1OwssN.cjs');
|
||||
const require_codes = require('../codes-BfZsPdy-.cjs');
|
||||
require('../tracked-DFxm8M2u.cjs');
|
||||
require('../parseTRPCMessage-7Ltmq-Fb.cjs');
|
||||
require('../resolveResponse-BCkjJQIz.cjs');
|
||||
require('../contentTypeParsers-iAFF_pJG.cjs');
|
||||
require('../unstable-core-do-not-import-fsjhEhgh.cjs');
|
||||
require('../observable-B1Nk6r1H.cjs');
|
||||
require('../initTRPC-_cqIfGlH.cjs');
|
||||
const require_node_http = require('../node-http-bPWQbKlA.cjs');
|
||||
|
||||
//#region src/adapters/express.ts
|
||||
var import_objectSpread2 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
|
||||
function createExpressMiddleware(opts) {
|
||||
return (req, res) => {
|
||||
let path = "";
|
||||
require_codes.run(async () => {
|
||||
path = req.path.slice(req.path.lastIndexOf("/") + 1);
|
||||
await require_node_http.nodeHTTPRequestHandler((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}));
|
||||
}).catch(require_node_http.internal_exceptionHandler((0, import_objectSpread2.default)({
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}, opts)));
|
||||
};
|
||||
}
|
||||
|
||||
//#endregion
|
||||
exports.createExpressMiddleware = createExpressMiddleware;
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
import "../index.d-BiUz7kM_.cjs";
|
||||
import { AnyRouter } from "../unstable-core-do-not-import.d-Dh9CT5RO.cjs";
|
||||
import "../index.d-CvZXeEyR.cjs";
|
||||
import { NodeHTTPCreateContextFnOptions, NodeHTTPHandlerOptions } from "../index.d-fBAdSX6g.cjs";
|
||||
import * as express from "express";
|
||||
|
||||
//#region src/adapters/express.d.ts
|
||||
|
||||
type CreateExpressContextOptions = NodeHTTPCreateContextFnOptions<express.Request, express.Response>;
|
||||
declare function createExpressMiddleware<TRouter extends AnyRouter>(opts: NodeHTTPHandlerOptions<TRouter, express.Request, express.Response>): express.Handler;
|
||||
//# sourceMappingURL=express.d.ts.map
|
||||
|
||||
//#endregion
|
||||
export { CreateExpressContextOptions, createExpressMiddleware };
|
||||
//# sourceMappingURL=express.d.cts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"express.d.cts","names":[],"sources":["../../src/adapters/express.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAmBwE,KAA5D,2BAAA,GAA8B,8BAA8B,CACtE,OAAA,CAAQ,OAD8D,EAEtE,OAAA,CAAQ,QAF8D,CAAA;AAKxD,iBAAA,uBAAuB,CAAA,gBAAiB,SAAjB,CAAA,CAAA,IAAA,EAC/B,sBAD+B,CACR,OADQ,EACC,OAAA,CAAQ,OADT,EACkB,OAAA,CAAQ,QAD1B,CAAA,CAAA,EAEpC,OAAA,CAAQ,OAF4B"}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
import "../index.d-D4qZxQJh.mjs";
|
||||
import { AnyRouter } from "../unstable-core-do-not-import.d-BdVSvUCr.mjs";
|
||||
import "../index.d-vq_QHko2.mjs";
|
||||
import { NodeHTTPCreateContextFnOptions, NodeHTTPHandlerOptions } from "../index.d-DhhodpGb.mjs";
|
||||
import * as express from "express";
|
||||
|
||||
//#region src/adapters/express.d.ts
|
||||
|
||||
type CreateExpressContextOptions = NodeHTTPCreateContextFnOptions<express.Request, express.Response>;
|
||||
declare function createExpressMiddleware<TRouter extends AnyRouter>(opts: NodeHTTPHandlerOptions<TRouter, express.Request, express.Response>): express.Handler;
|
||||
//# sourceMappingURL=express.d.ts.map
|
||||
|
||||
//#endregion
|
||||
export { CreateExpressContextOptions, createExpressMiddleware };
|
||||
//# sourceMappingURL=express.d.mts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"express.d.mts","names":[],"sources":["../../src/adapters/express.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAmBwE,KAA5D,2BAAA,GAA8B,8BAA8B,CACtE,OAAA,CAAQ,OAD8D,EAEtE,OAAA,CAAQ,QAF8D,CAAA;AAKxD,iBAAA,uBAAuB,CAAA,gBAAiB,SAAjB,CAAA,CAAA,IAAA,EAC/B,sBAD+B,CACR,OADQ,EACC,OAAA,CAAQ,OADT,EACkB,OAAA,CAAQ,QAD1B,CAAA,CAAA,EAEpC,OAAA,CAAQ,OAF4B"}
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
import { __toESM, require_objectSpread2 } from "../getErrorShape-BPSzUA7W.mjs";
|
||||
import { run } from "../codes-DagpWZLc.mjs";
|
||||
import "../tracked-DWInO6EQ.mjs";
|
||||
import "../parseTRPCMessage-CTow-umk.mjs";
|
||||
import "../resolveResponse-CdASWfAV.mjs";
|
||||
import "../contentTypeParsers-SN4WL9ze.mjs";
|
||||
import "../unstable-core-do-not-import-9NNw8uQM.mjs";
|
||||
import "../observable-UMO3vUa_.mjs";
|
||||
import "../initTRPC-BRf4imah.mjs";
|
||||
import { internal_exceptionHandler, nodeHTTPRequestHandler } from "../node-http-gyWQuCv2.mjs";
|
||||
|
||||
//#region src/adapters/express.ts
|
||||
var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
|
||||
function createExpressMiddleware(opts) {
|
||||
return (req, res) => {
|
||||
let path = "";
|
||||
run(async () => {
|
||||
path = req.path.slice(req.path.lastIndexOf("/") + 1);
|
||||
await nodeHTTPRequestHandler((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}));
|
||||
}).catch(internal_exceptionHandler((0, import_objectSpread2.default)({
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}, opts)));
|
||||
};
|
||||
}
|
||||
|
||||
//#endregion
|
||||
export { createExpressMiddleware };
|
||||
//# sourceMappingURL=express.mjs.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"express.mjs","names":["opts: NodeHTTPHandlerOptions<TRouter, express.Request, express.Response>"],"sources":["../../src/adapters/express.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 * as express from 'express';\nimport type { AnyRouter } from '../@trpc/server';\n// eslint-disable-next-line no-restricted-imports\nimport { run } from '../unstable-core-do-not-import';\nimport type {\n NodeHTTPCreateContextFnOptions,\n NodeHTTPHandlerOptions,\n} from './node-http';\nimport { internal_exceptionHandler, nodeHTTPRequestHandler } from './node-http';\n\nexport type CreateExpressContextOptions = NodeHTTPCreateContextFnOptions<\n express.Request,\n express.Response\n>;\n\nexport function createExpressMiddleware<TRouter extends AnyRouter>(\n opts: NodeHTTPHandlerOptions<TRouter, express.Request, express.Response>,\n): express.Handler {\n return (req, res) => {\n let path = '';\n run(async () => {\n path = req.path.slice(req.path.lastIndexOf('/') + 1);\n\n await nodeHTTPRequestHandler({\n ...(opts as any),\n req,\n res,\n path,\n });\n }).catch(\n internal_exceptionHandler({\n req,\n res,\n path,\n ...opts,\n }),\n );\n };\n}\n"],"mappings":";;;;;;;;;;;;;AAwBA,SAAgB,wBACdA,MACiB;AACjB,QAAO,CAAC,KAAK,QAAQ;EACnB,IAAI,OAAO;AACX,MAAI,YAAY;AACd,UAAO,IAAI,KAAK,MAAM,IAAI,KAAK,YAAY,IAAI,GAAG,EAAE;AAEpD,SAAM,+FACA;IACJ;IACA;IACA;MACA;EACH,EAAC,CAAC,MACD;GACE;GACA;GACA;KACG,MACH,CACH;CACF;AACF"}
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
const require_getErrorShape = require('../../getErrorShape-Ed1OwssN.cjs');
|
||||
require('../../codes-BfZsPdy-.cjs');
|
||||
require('../../tracked-DFxm8M2u.cjs');
|
||||
require('../../parseTRPCMessage-7Ltmq-Fb.cjs');
|
||||
const require_resolveResponse = require('../../resolveResponse-BCkjJQIz.cjs');
|
||||
require('../../contentTypeParsers-iAFF_pJG.cjs');
|
||||
require('../../unstable-core-do-not-import-fsjhEhgh.cjs');
|
||||
require('../../observable-B1Nk6r1H.cjs');
|
||||
require('../../initTRPC-_cqIfGlH.cjs');
|
||||
require('../../http-DXy3XyhL.cjs');
|
||||
const require_node_http = require('../../node-http-bPWQbKlA.cjs');
|
||||
require('../../observable-BVzLuBs6.cjs');
|
||||
const require_ws = require('../../ws-CTzlBSdd.cjs');
|
||||
|
||||
//#region src/adapters/fastify/fastifyRequestHandler.ts
|
||||
var import_objectSpread2$1 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
|
||||
async function fastifyRequestHandler(opts) {
|
||||
const createContext = async (innerOpts) => {
|
||||
var _opts$createContext;
|
||||
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)));
|
||||
};
|
||||
const incomingMessage = opts.req.raw;
|
||||
if ("body" in opts.req) incomingMessage.body = opts.req.body;
|
||||
const req = require_node_http.incomingMessageToRequest(incomingMessage, opts.res.raw, { maxBodySize: null });
|
||||
const res = await require_resolveResponse.resolveResponse((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts), {}, {
|
||||
req,
|
||||
error: null,
|
||||
createContext,
|
||||
onError(o) {
|
||||
var _opts$onError;
|
||||
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 }));
|
||||
}
|
||||
}));
|
||||
await opts.res.send(res);
|
||||
}
|
||||
|
||||
//#endregion
|
||||
//#region src/adapters/fastify/fastifyTRPCPlugin.ts
|
||||
var import_objectSpread2 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
|
||||
function fastifyTRPCPlugin(fastify, opts, done) {
|
||||
var _opts$prefix;
|
||||
fastify.removeContentTypeParser("application/json");
|
||||
fastify.addContentTypeParser("application/json", { parseAs: "string" }, function(_, body, _done) {
|
||||
_done(null, body);
|
||||
});
|
||||
fastify.removeContentTypeParser("multipart/form-data");
|
||||
fastify.addContentTypeParser("multipart/form-data", {}, function(_, body, _done) {
|
||||
_done(null, body);
|
||||
});
|
||||
let prefix = (_opts$prefix = opts.prefix) !== null && _opts$prefix !== void 0 ? _opts$prefix : "";
|
||||
if (typeof fastifyTRPCPlugin.default !== "function") prefix = "";
|
||||
fastify.all(`${prefix}/:path`, async (req, res) => {
|
||||
const path = req.params.path;
|
||||
await fastifyRequestHandler((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts.trpcOptions), {}, {
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}));
|
||||
});
|
||||
if (opts.useWSS) {
|
||||
var _prefix;
|
||||
const trpcOptions = opts.trpcOptions;
|
||||
const onConnection = require_ws.getWSConnectionHandler((0, import_objectSpread2.default)({}, trpcOptions));
|
||||
fastify.get((_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : "/", { websocket: true }, (socket, req) => {
|
||||
var _trpcOptions$keepAliv;
|
||||
onConnection(socket, req.raw);
|
||||
if (trpcOptions === null || trpcOptions === void 0 || (_trpcOptions$keepAliv = trpcOptions.keepAlive) === null || _trpcOptions$keepAliv === void 0 ? void 0 : _trpcOptions$keepAliv.enabled) {
|
||||
const { pingMs, pongWaitMs } = trpcOptions.keepAlive;
|
||||
require_ws.handleKeepAlive(socket, pingMs, pongWaitMs);
|
||||
}
|
||||
});
|
||||
}
|
||||
done();
|
||||
}
|
||||
|
||||
//#endregion
|
||||
exports.fastifyRequestHandler = fastifyRequestHandler;
|
||||
exports.fastifyTRPCPlugin = fastifyTRPCPlugin;
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
import "../../index.d-BiUz7kM_.cjs";
|
||||
import { AnyRouter, HTTPBaseHandlerOptions } from "../../unstable-core-do-not-import.d-Dh9CT5RO.cjs";
|
||||
import "../../index.d-CvZXeEyR.cjs";
|
||||
import { NodeHTTPCreateContextFnOptions, NodeHTTPCreateContextOption } from "../../index.d-fBAdSX6g.cjs";
|
||||
import { FastifyInstance, FastifyReply, FastifyRequest } from "fastify";
|
||||
|
||||
//#region src/adapters/fastify/fastifyRequestHandler.d.ts
|
||||
|
||||
type FastifyHandlerOptions<TRouter extends AnyRouter, TRequest extends FastifyRequest, TResponse extends FastifyReply> = HTTPBaseHandlerOptions<TRouter, TRequest> & NodeHTTPCreateContextOption<TRouter, TRequest, TResponse>;
|
||||
type FastifyRequestHandlerOptions<TRouter extends AnyRouter, TRequest extends FastifyRequest, TResponse extends FastifyReply> = FastifyHandlerOptions<TRouter, TRequest, TResponse> & {
|
||||
req: TRequest;
|
||||
res: TResponse;
|
||||
path: string;
|
||||
};
|
||||
declare function fastifyRequestHandler<TRouter extends AnyRouter, TRequest extends FastifyRequest, TResponse extends FastifyReply>(opts: FastifyRequestHandlerOptions<TRouter, TRequest, TResponse>): Promise<void>;
|
||||
//#endregion
|
||||
//#region src/adapters/fastify/fastifyTRPCPlugin.d.ts
|
||||
interface FastifyTRPCPluginOptions<TRouter extends AnyRouter> {
|
||||
prefix?: string;
|
||||
useWSS?: boolean;
|
||||
trpcOptions: FastifyHandlerOptions<TRouter, FastifyRequest, FastifyReply>;
|
||||
}
|
||||
type CreateFastifyContextOptions = NodeHTTPCreateContextFnOptions<FastifyRequest, FastifyReply>;
|
||||
declare function fastifyTRPCPlugin<TRouter extends AnyRouter>(fastify: FastifyInstance, opts: FastifyTRPCPluginOptions<TRouter>, done: (err?: Error) => void): void;
|
||||
//# sourceMappingURL=fastifyTRPCPlugin.d.ts.map
|
||||
|
||||
//#endregion
|
||||
export { CreateFastifyContextOptions, FastifyHandlerOptions, FastifyTRPCPluginOptions, fastifyRequestHandler, fastifyTRPCPlugin };
|
||||
//# sourceMappingURL=index.d.cts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/adapters/fastify/fastifyRequestHandler.ts","../../../src/adapters/fastify/fastifyTRPCPlugin.ts"],"sourcesContent":[],"mappings":";;;;;;;;AA6BoC,KAJxB,qBAIwB,CAAA,gBAHlB,SAGkB,EAAA,iBAFjB,cAEiB,EAAA,kBADhB,YACgB,CAAA,GAAhC,sBAAgC,CAAT,OAAS,EAAA,QAAA,CAAA,GAClC,2BADkC,CACN,OADM,EACG,QADH,EACa,SADb,CAAA;KAG/B,4BAHD,CAAA,gBAIc,SAJd,EAAA,iBAKe,cALf,EAAA,kBAMgB,YANhB,CAAA,GAOA,qBAPA,CAOsB,OAPtB,EAO+B,QAP/B,EAOyC,SAPzC,CAAA,GAAA;EAAsB,GACI,EAOvB,QAPuB;EAAO,GAAE,EAQhC,SARgC;EAAQ,IAAE,EAAA,MAAA;CAAS;AAA7B,iBAYP,qBAZO,CAAA,gBAaX,SAbW,EAAA,iBAcV,cAdU,EAAA,kBAeT,YAfS,CAAA,CAAA,IAAA,EAgBrB,4BAhBqB,CAgBQ,OAhBR,EAgBiB,QAhBjB,EAgB2B,SAhB3B,CAAA,CAAA,EAgBqC,OAhBrC,CAAA,IAAA,CAAA;;;AADO,UCLnB,wBDKmB,CAAA,gBCLsB,SDKtB,CAAA,CAAA;EAAQ,MAAxC,CAAA,EAAA,MAAA;EAAsB,MACI,CAAA,EAAA,OAAA;EAAO,WAAE,ECHxB,qBDGwB,CCHF,ODGE,ECHO,cDGP,ECHuB,YDGvB,CAAA;;AAArC,KCAU,2BAAA,GAA8B,8BDAxC,CCCA,cDDA,ECEA,YDFA,CAAA;AAA2B,iBCKb,iBDLa,CAAA,gBCKqB,SDLrB,CAAA,CAAA,OAAA,ECMlB,eDNkB,EAAA,IAAA,ECOrB,wBDPqB,CCOI,ODPJ,CAAA,EAAA,IAAA,EAAA,CAAA,GAAA,CAAA,ECQd,KDRc,EAAA,GAAA,IAAA,CAAA,EAAA,IAAA;AAA+B"}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
import "../../index.d-D4qZxQJh.mjs";
|
||||
import { AnyRouter, HTTPBaseHandlerOptions } from "../../unstable-core-do-not-import.d-BdVSvUCr.mjs";
|
||||
import "../../index.d-vq_QHko2.mjs";
|
||||
import { NodeHTTPCreateContextFnOptions, NodeHTTPCreateContextOption } from "../../index.d-DhhodpGb.mjs";
|
||||
import { FastifyInstance, FastifyReply, FastifyRequest } from "fastify";
|
||||
|
||||
//#region src/adapters/fastify/fastifyRequestHandler.d.ts
|
||||
|
||||
type FastifyHandlerOptions<TRouter extends AnyRouter, TRequest extends FastifyRequest, TResponse extends FastifyReply> = HTTPBaseHandlerOptions<TRouter, TRequest> & NodeHTTPCreateContextOption<TRouter, TRequest, TResponse>;
|
||||
type FastifyRequestHandlerOptions<TRouter extends AnyRouter, TRequest extends FastifyRequest, TResponse extends FastifyReply> = FastifyHandlerOptions<TRouter, TRequest, TResponse> & {
|
||||
req: TRequest;
|
||||
res: TResponse;
|
||||
path: string;
|
||||
};
|
||||
declare function fastifyRequestHandler<TRouter extends AnyRouter, TRequest extends FastifyRequest, TResponse extends FastifyReply>(opts: FastifyRequestHandlerOptions<TRouter, TRequest, TResponse>): Promise<void>;
|
||||
//#endregion
|
||||
//#region src/adapters/fastify/fastifyTRPCPlugin.d.ts
|
||||
interface FastifyTRPCPluginOptions<TRouter extends AnyRouter> {
|
||||
prefix?: string;
|
||||
useWSS?: boolean;
|
||||
trpcOptions: FastifyHandlerOptions<TRouter, FastifyRequest, FastifyReply>;
|
||||
}
|
||||
type CreateFastifyContextOptions = NodeHTTPCreateContextFnOptions<FastifyRequest, FastifyReply>;
|
||||
declare function fastifyTRPCPlugin<TRouter extends AnyRouter>(fastify: FastifyInstance, opts: FastifyTRPCPluginOptions<TRouter>, done: (err?: Error) => void): void;
|
||||
//# sourceMappingURL=fastifyTRPCPlugin.d.ts.map
|
||||
|
||||
//#endregion
|
||||
export { CreateFastifyContextOptions, FastifyHandlerOptions, FastifyTRPCPluginOptions, fastifyRequestHandler, fastifyTRPCPlugin };
|
||||
//# sourceMappingURL=index.d.mts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/adapters/fastify/fastifyRequestHandler.ts","../../../src/adapters/fastify/fastifyTRPCPlugin.ts"],"sourcesContent":[],"mappings":";;;;;;;;AA6BoC,KAJxB,qBAIwB,CAAA,gBAHlB,SAGkB,EAAA,iBAFjB,cAEiB,EAAA,kBADhB,YACgB,CAAA,GAAhC,sBAAgC,CAAT,OAAS,EAAA,QAAA,CAAA,GAClC,2BADkC,CACN,OADM,EACG,QADH,EACa,SADb,CAAA;KAG/B,4BAHD,CAAA,gBAIc,SAJd,EAAA,iBAKe,cALf,EAAA,kBAMgB,YANhB,CAAA,GAOA,qBAPA,CAOsB,OAPtB,EAO+B,QAP/B,EAOyC,SAPzC,CAAA,GAAA;EAAsB,GACI,EAOvB,QAPuB;EAAO,GAAE,EAQhC,SARgC;EAAQ,IAAE,EAAA,MAAA;CAAS;AAA7B,iBAYP,qBAZO,CAAA,gBAaX,SAbW,EAAA,iBAcV,cAdU,EAAA,kBAeT,YAfS,CAAA,CAAA,IAAA,EAgBrB,4BAhBqB,CAgBQ,OAhBR,EAgBiB,QAhBjB,EAgB2B,SAhB3B,CAAA,CAAA,EAgBqC,OAhBrC,CAAA,IAAA,CAAA;;;AADO,UCLnB,wBDKmB,CAAA,gBCLsB,SDKtB,CAAA,CAAA;EAAQ,MAAxC,CAAA,EAAA,MAAA;EAAsB,MACI,CAAA,EAAA,OAAA;EAAO,WAAE,ECHxB,qBDGwB,CCHF,ODGE,ECHO,cDGP,ECHuB,YDGvB,CAAA;;AAArC,KCAU,2BAAA,GAA8B,8BDAxC,CCCA,cDDA,ECEA,YDFA,CAAA;AAA2B,iBCKb,iBDLa,CAAA,gBCKqB,SDLrB,CAAA,CAAA,OAAA,ECMlB,eDNkB,EAAA,IAAA,ECOrB,wBDPqB,CCOI,ODPJ,CAAA,EAAA,IAAA,EAAA,CAAA,GAAA,CAAA,ECQd,KDRc,EAAA,GAAA,IAAA,CAAA,EAAA,IAAA;AAA+B"}
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
import { __toESM, require_objectSpread2 } from "../../getErrorShape-BPSzUA7W.mjs";
|
||||
import "../../codes-DagpWZLc.mjs";
|
||||
import "../../tracked-DWInO6EQ.mjs";
|
||||
import "../../parseTRPCMessage-CTow-umk.mjs";
|
||||
import { resolveResponse } from "../../resolveResponse-CdASWfAV.mjs";
|
||||
import "../../contentTypeParsers-SN4WL9ze.mjs";
|
||||
import "../../unstable-core-do-not-import-9NNw8uQM.mjs";
|
||||
import "../../observable-UMO3vUa_.mjs";
|
||||
import "../../initTRPC-BRf4imah.mjs";
|
||||
import "../../http-CWyjOa1l.mjs";
|
||||
import { incomingMessageToRequest } from "../../node-http-gyWQuCv2.mjs";
|
||||
import "../../observable-CUiPknO-.mjs";
|
||||
import { getWSConnectionHandler, handleKeepAlive } from "../../ws-BoiCYrkt.mjs";
|
||||
|
||||
//#region src/adapters/fastify/fastifyRequestHandler.ts
|
||||
var import_objectSpread2$1 = __toESM(require_objectSpread2(), 1);
|
||||
async function fastifyRequestHandler(opts) {
|
||||
const createContext = async (innerOpts) => {
|
||||
var _opts$createContext;
|
||||
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)));
|
||||
};
|
||||
const incomingMessage = opts.req.raw;
|
||||
if ("body" in opts.req) incomingMessage.body = opts.req.body;
|
||||
const req = incomingMessageToRequest(incomingMessage, opts.res.raw, { maxBodySize: null });
|
||||
const res = await resolveResponse((0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, opts), {}, {
|
||||
req,
|
||||
error: null,
|
||||
createContext,
|
||||
onError(o) {
|
||||
var _opts$onError;
|
||||
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 }));
|
||||
}
|
||||
}));
|
||||
await opts.res.send(res);
|
||||
}
|
||||
|
||||
//#endregion
|
||||
//#region src/adapters/fastify/fastifyTRPCPlugin.ts
|
||||
var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
|
||||
function fastifyTRPCPlugin(fastify, opts, done) {
|
||||
var _opts$prefix;
|
||||
fastify.removeContentTypeParser("application/json");
|
||||
fastify.addContentTypeParser("application/json", { parseAs: "string" }, function(_, body, _done) {
|
||||
_done(null, body);
|
||||
});
|
||||
fastify.removeContentTypeParser("multipart/form-data");
|
||||
fastify.addContentTypeParser("multipart/form-data", {}, function(_, body, _done) {
|
||||
_done(null, body);
|
||||
});
|
||||
let prefix = (_opts$prefix = opts.prefix) !== null && _opts$prefix !== void 0 ? _opts$prefix : "";
|
||||
if (typeof fastifyTRPCPlugin.default !== "function") prefix = "";
|
||||
fastify.all(`${prefix}/:path`, async (req, res) => {
|
||||
const path = req.params.path;
|
||||
await fastifyRequestHandler((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts.trpcOptions), {}, {
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}));
|
||||
});
|
||||
if (opts.useWSS) {
|
||||
var _prefix;
|
||||
const trpcOptions = opts.trpcOptions;
|
||||
const onConnection = getWSConnectionHandler((0, import_objectSpread2.default)({}, trpcOptions));
|
||||
fastify.get((_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : "/", { websocket: true }, (socket, req) => {
|
||||
var _trpcOptions$keepAliv;
|
||||
onConnection(socket, req.raw);
|
||||
if (trpcOptions === null || trpcOptions === void 0 || (_trpcOptions$keepAliv = trpcOptions.keepAlive) === null || _trpcOptions$keepAliv === void 0 ? void 0 : _trpcOptions$keepAliv.enabled) {
|
||||
const { pingMs, pongWaitMs } = trpcOptions.keepAlive;
|
||||
handleKeepAlive(socket, pingMs, pongWaitMs);
|
||||
}
|
||||
});
|
||||
}
|
||||
done();
|
||||
}
|
||||
|
||||
//#endregion
|
||||
export { fastifyRequestHandler, fastifyTRPCPlugin };
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
+1
File diff suppressed because one or more lines are too long
+57
@@ -0,0 +1,57 @@
|
||||
const require_getErrorShape = require('../../getErrorShape-Ed1OwssN.cjs');
|
||||
require('../../codes-BfZsPdy-.cjs');
|
||||
require('../../tracked-DFxm8M2u.cjs');
|
||||
const require_resolveResponse = require('../../resolveResponse-BCkjJQIz.cjs');
|
||||
require('../../observable-B1Nk6r1H.cjs');
|
||||
|
||||
//#region src/adapters/fetch/fetchRequestHandler.ts
|
||||
var import_objectSpread2 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
|
||||
const trimSlashes = (path) => {
|
||||
path = path.startsWith("/") ? path.slice(1) : path;
|
||||
path = path.endsWith("/") ? path.slice(0, -1) : path;
|
||||
return path;
|
||||
};
|
||||
async function fetchRequestHandler(opts) {
|
||||
const resHeaders = new Headers();
|
||||
const createContext = async (innerOpts) => {
|
||||
var _opts$createContext;
|
||||
return (_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, (0, import_objectSpread2.default)({
|
||||
req: opts.req,
|
||||
resHeaders
|
||||
}, innerOpts));
|
||||
};
|
||||
const url = new URL(opts.req.url);
|
||||
const pathname = trimSlashes(url.pathname);
|
||||
const endpoint = trimSlashes(opts.endpoint);
|
||||
const path = trimSlashes(pathname.slice(endpoint.length));
|
||||
return await require_resolveResponse.resolveResponse((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
|
||||
req: opts.req,
|
||||
createContext,
|
||||
path,
|
||||
error: null,
|
||||
onError(o) {
|
||||
var _opts$onError;
|
||||
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 }));
|
||||
},
|
||||
responseMeta(data) {
|
||||
var _opts$responseMeta;
|
||||
const meta = (_opts$responseMeta = opts.responseMeta) === null || _opts$responseMeta === void 0 ? void 0 : _opts$responseMeta.call(opts, data);
|
||||
if (meta === null || meta === void 0 ? void 0 : meta.headers) {
|
||||
if (meta.headers instanceof Headers) for (const [key, value] of meta.headers.entries()) resHeaders.append(key, value);
|
||||
else
|
||||
/**
|
||||
* @deprecated, delete in v12
|
||||
*/
|
||||
for (const [key, value] of Object.entries(meta.headers)) if (Array.isArray(value)) for (const v of value) resHeaders.append(key, v);
|
||||
else if (typeof value === "string") resHeaders.set(key, value);
|
||||
}
|
||||
return {
|
||||
headers: resHeaders,
|
||||
status: meta === null || meta === void 0 ? void 0 : meta.status
|
||||
};
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
//#endregion
|
||||
exports.fetchRequestHandler = fetchRequestHandler;
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
import "../../index.d-BiUz7kM_.cjs";
|
||||
import { AnyRouter, CreateContextCallback, HTTPBaseHandlerOptions, TRPCRequestInfo, inferRouterContext } from "../../unstable-core-do-not-import.d-Dh9CT5RO.cjs";
|
||||
import "../../index.d-CvZXeEyR.cjs";
|
||||
|
||||
//#region src/adapters/fetch/types.d.ts
|
||||
|
||||
type FetchCreateContextFnOptions = {
|
||||
req: Request;
|
||||
resHeaders: Headers;
|
||||
info: TRPCRequestInfo;
|
||||
};
|
||||
type FetchCreateContextFn<TRouter extends AnyRouter> = (opts: FetchCreateContextFnOptions) => inferRouterContext<TRouter> | Promise<inferRouterContext<TRouter>>;
|
||||
type FetchCreateContextOption<TRouter extends AnyRouter> = CreateContextCallback<inferRouterContext<TRouter>, FetchCreateContextFn<TRouter>>;
|
||||
type FetchHandlerOptions<TRouter extends AnyRouter> = FetchCreateContextOption<TRouter> & HTTPBaseHandlerOptions<TRouter, Request> & {
|
||||
req: Request;
|
||||
endpoint: string;
|
||||
};
|
||||
type FetchHandlerRequestOptions<TRouter extends AnyRouter> = HTTPBaseHandlerOptions<TRouter, Request> & CreateContextCallback<inferRouterContext<TRouter>, FetchCreateContextFn<TRouter>> & {
|
||||
req: Request;
|
||||
endpoint: string;
|
||||
};
|
||||
//# sourceMappingURL=types.d.ts.map
|
||||
//#endregion
|
||||
//#region src/adapters/fetch/fetchRequestHandler.d.ts
|
||||
declare function fetchRequestHandler<TRouter extends AnyRouter>(opts: FetchHandlerRequestOptions<TRouter>): Promise<Response>;
|
||||
//# sourceMappingURL=fetchRequestHandler.d.ts.map
|
||||
|
||||
//#endregion
|
||||
export { FetchCreateContextFn, FetchCreateContextFnOptions, FetchCreateContextOption, FetchHandlerOptions, FetchHandlerRequestOptions, fetchRequestHandler };
|
||||
//# sourceMappingURL=index.d.cts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/adapters/fetch/types.ts","../../../src/adapters/fetch/fetchRequestHandler.ts"],"sourcesContent":[],"mappings":";;;;;;AA2BY,KANA,2BAAA,GAMoB;EAAA,GAAA,EALzB,OAKyB;EAAA,UAAiB,EAJnC,OAImC;EAAS,IAClD,EAJA,eAIA;CAA2B;AAC9B,KAFO,oBAEP,CAAA,gBAF4C,SAE5C,CAAA,GAAA,CAAA,IAAA,EADG,2BACH,EAAA,GAAA,kBAAA,CAAmB,OAAnB,CAAA,GAA8B,OAA9B,CAAsC,kBAAtC,CAAyD,OAAzD,CAAA,CAAA;AAAyD,KAElD,wBAFkD,CAAA,gBAET,SAFS,CAAA,GAG5D,qBAH4D,CAI1D,kBAJ0D,CAIvC,OAJuC,CAAA,EAK1D,oBAL0D,CAKrC,OALqC,CAAA,CAAA;AAAnB,KAQ/B,mBAR+B,CAAA,gBAQK,SARL,CAAA,GASzC,wBATyC,CAShB,OATgB,CAAA,GAUvC,sBAVuC,CAUhB,OAVgB,EAUP,OAVO,CAAA,GAAA;EAAkB,GAA1B,EAWxB,OAXwB;EAAO,QAAA,EAAA,MAAA;AAE1C,CAAA;AAAoC,KAaxB,0BAbwB,CAAA,gBAamB,SAbnB,CAAA,GAclC,sBAdkC,CAcX,OAdW,EAcF,OAdE,CAAA,GAehC,qBAfgC,CAgB9B,kBAhB8B,CAgBX,OAhBW,CAAA,EAiB9B,oBAjB8B,CAiBT,OAjBS,CAAA,CAAA,GAAA;EAAA,GAAiB,EAmB1C,OAnB0C;EAAS,QAEvC,EAAA,MAAA;CAAO;;;;AANlB,iBCJU,mBDIU,CAAA,gBCJ0B,SDI1B,CAAA,CAAA,IAAA,ECHxB,0BDGwB,CCHG,ODGH,CAAA,CAAA,ECF7B,ODE6B,CCFrB,QDEqB,CAAA"}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
import "../../index.d-D4qZxQJh.mjs";
|
||||
import { AnyRouter, CreateContextCallback, HTTPBaseHandlerOptions, TRPCRequestInfo, inferRouterContext } from "../../unstable-core-do-not-import.d-BdVSvUCr.mjs";
|
||||
import "../../index.d-vq_QHko2.mjs";
|
||||
|
||||
//#region src/adapters/fetch/types.d.ts
|
||||
|
||||
type FetchCreateContextFnOptions = {
|
||||
req: Request;
|
||||
resHeaders: Headers;
|
||||
info: TRPCRequestInfo;
|
||||
};
|
||||
type FetchCreateContextFn<TRouter extends AnyRouter> = (opts: FetchCreateContextFnOptions) => inferRouterContext<TRouter> | Promise<inferRouterContext<TRouter>>;
|
||||
type FetchCreateContextOption<TRouter extends AnyRouter> = CreateContextCallback<inferRouterContext<TRouter>, FetchCreateContextFn<TRouter>>;
|
||||
type FetchHandlerOptions<TRouter extends AnyRouter> = FetchCreateContextOption<TRouter> & HTTPBaseHandlerOptions<TRouter, Request> & {
|
||||
req: Request;
|
||||
endpoint: string;
|
||||
};
|
||||
type FetchHandlerRequestOptions<TRouter extends AnyRouter> = HTTPBaseHandlerOptions<TRouter, Request> & CreateContextCallback<inferRouterContext<TRouter>, FetchCreateContextFn<TRouter>> & {
|
||||
req: Request;
|
||||
endpoint: string;
|
||||
};
|
||||
//# sourceMappingURL=types.d.ts.map
|
||||
//#endregion
|
||||
//#region src/adapters/fetch/fetchRequestHandler.d.ts
|
||||
declare function fetchRequestHandler<TRouter extends AnyRouter>(opts: FetchHandlerRequestOptions<TRouter>): Promise<Response>;
|
||||
//# sourceMappingURL=fetchRequestHandler.d.ts.map
|
||||
|
||||
//#endregion
|
||||
export { FetchCreateContextFn, FetchCreateContextFnOptions, FetchCreateContextOption, FetchHandlerOptions, FetchHandlerRequestOptions, fetchRequestHandler };
|
||||
//# sourceMappingURL=index.d.mts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/adapters/fetch/types.ts","../../../src/adapters/fetch/fetchRequestHandler.ts"],"sourcesContent":[],"mappings":";;;;;;AA2BY,KANA,2BAAA,GAMoB;EAAA,GAAA,EALzB,OAKyB;EAAA,UAAiB,EAJnC,OAImC;EAAS,IAClD,EAJA,eAIA;CAA2B;AAC9B,KAFO,oBAEP,CAAA,gBAF4C,SAE5C,CAAA,GAAA,CAAA,IAAA,EADG,2BACH,EAAA,GAAA,kBAAA,CAAmB,OAAnB,CAAA,GAA8B,OAA9B,CAAsC,kBAAtC,CAAyD,OAAzD,CAAA,CAAA;AAAyD,KAElD,wBAFkD,CAAA,gBAET,SAFS,CAAA,GAG5D,qBAH4D,CAI1D,kBAJ0D,CAIvC,OAJuC,CAAA,EAK1D,oBAL0D,CAKrC,OALqC,CAAA,CAAA;AAAnB,KAQ/B,mBAR+B,CAAA,gBAQK,SARL,CAAA,GASzC,wBATyC,CAShB,OATgB,CAAA,GAUvC,sBAVuC,CAUhB,OAVgB,EAUP,OAVO,CAAA,GAAA;EAAkB,GAA1B,EAWxB,OAXwB;EAAO,QAAA,EAAA,MAAA;AAE1C,CAAA;AAAoC,KAaxB,0BAbwB,CAAA,gBAamB,SAbnB,CAAA,GAclC,sBAdkC,CAcX,OAdW,EAcF,OAdE,CAAA,GAehC,qBAfgC,CAgB9B,kBAhB8B,CAgBX,OAhBW,CAAA,EAiB9B,oBAjB8B,CAiBT,OAjBS,CAAA,CAAA,GAAA;EAAA,GAAiB,EAmB1C,OAnB0C;EAAS,QAEvC,EAAA,MAAA;CAAO;;;;AANlB,iBCJU,mBDIU,CAAA,gBCJ0B,SDI1B,CAAA,CAAA,IAAA,ECHxB,0BDGwB,CCHG,ODGH,CAAA,CAAA,ECF7B,ODE6B,CCFrB,QDEqB,CAAA"}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
import { __toESM, require_objectSpread2 } from "../../getErrorShape-BPSzUA7W.mjs";
|
||||
import "../../codes-DagpWZLc.mjs";
|
||||
import "../../tracked-DWInO6EQ.mjs";
|
||||
import { resolveResponse } from "../../resolveResponse-CdASWfAV.mjs";
|
||||
import "../../observable-UMO3vUa_.mjs";
|
||||
|
||||
//#region src/adapters/fetch/fetchRequestHandler.ts
|
||||
var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
|
||||
const trimSlashes = (path) => {
|
||||
path = path.startsWith("/") ? path.slice(1) : path;
|
||||
path = path.endsWith("/") ? path.slice(0, -1) : path;
|
||||
return path;
|
||||
};
|
||||
async function fetchRequestHandler(opts) {
|
||||
const resHeaders = new Headers();
|
||||
const createContext = async (innerOpts) => {
|
||||
var _opts$createContext;
|
||||
return (_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, (0, import_objectSpread2.default)({
|
||||
req: opts.req,
|
||||
resHeaders
|
||||
}, innerOpts));
|
||||
};
|
||||
const url = new URL(opts.req.url);
|
||||
const pathname = trimSlashes(url.pathname);
|
||||
const endpoint = trimSlashes(opts.endpoint);
|
||||
const path = trimSlashes(pathname.slice(endpoint.length));
|
||||
return await resolveResponse((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
|
||||
req: opts.req,
|
||||
createContext,
|
||||
path,
|
||||
error: null,
|
||||
onError(o) {
|
||||
var _opts$onError;
|
||||
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 }));
|
||||
},
|
||||
responseMeta(data) {
|
||||
var _opts$responseMeta;
|
||||
const meta = (_opts$responseMeta = opts.responseMeta) === null || _opts$responseMeta === void 0 ? void 0 : _opts$responseMeta.call(opts, data);
|
||||
if (meta === null || meta === void 0 ? void 0 : meta.headers) {
|
||||
if (meta.headers instanceof Headers) for (const [key, value] of meta.headers.entries()) resHeaders.append(key, value);
|
||||
else
|
||||
/**
|
||||
* @deprecated, delete in v12
|
||||
*/
|
||||
for (const [key, value] of Object.entries(meta.headers)) if (Array.isArray(value)) for (const v of value) resHeaders.append(key, v);
|
||||
else if (typeof value === "string") resHeaders.set(key, value);
|
||||
}
|
||||
return {
|
||||
headers: resHeaders,
|
||||
status: meta === null || meta === void 0 ? void 0 : meta.status
|
||||
};
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
//#endregion
|
||||
export { fetchRequestHandler };
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
+1
@@ -0,0 +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"}
|
||||
+3290
File diff suppressed because it is too large
Load Diff
+58
@@ -0,0 +1,58 @@
|
||||
import "../index.d-BiUz7kM_.cjs";
|
||||
import { CallerOverride, CreateContextCallback, ErrorHandlerOptions, MaybePromise, Simplify, TRPCError } from "../unstable-core-do-not-import.d-Dh9CT5RO.cjs";
|
||||
import "../index.d-CvZXeEyR.cjs";
|
||||
import { RedirectType, notFound as notFound$1 } from "next/navigation";
|
||||
|
||||
//#region src/adapters/next-app-dir/nextAppDirCaller.d.ts
|
||||
|
||||
/**
|
||||
* Create a caller that works with Next.js React Server Components & Server Actions
|
||||
*/
|
||||
declare function nextAppDirCaller<TContext, TMeta>(config: Simplify<{
|
||||
/**
|
||||
* Extract the path from the procedure metadata
|
||||
*/
|
||||
pathExtractor?: (opts: {
|
||||
meta: TMeta;
|
||||
}) => string;
|
||||
/**
|
||||
* Transform form data to a `Record` before passing it to the procedure
|
||||
* @default true
|
||||
*/
|
||||
normalizeFormData?: boolean;
|
||||
/**
|
||||
* Called when an error occurs in the handler
|
||||
*/
|
||||
onError?: (opts: ErrorHandlerOptions<TContext>) => void;
|
||||
} & CreateContextCallback<TContext, () => MaybePromise<TContext>>>): CallerOverride<TContext>;
|
||||
//# sourceMappingURL=nextAppDirCaller.d.ts.map
|
||||
//#endregion
|
||||
//#region src/adapters/next-app-dir/redirect.d.ts
|
||||
/**
|
||||
* Like `next/navigation`'s `redirect()` but throws a `TRPCError` that later will be handled by Next.js
|
||||
* This provides better typesafety than the `next/navigation`'s `redirect()` since the action continues
|
||||
* to execute on the frontend even if Next's `redirect()` has a return type of `never`.
|
||||
* @public
|
||||
* @remark You should only use this if you're also using `nextAppDirCaller`.
|
||||
*/
|
||||
declare const redirect: (url: URL | string, redirectType?: RedirectType) => undefined;
|
||||
//# sourceMappingURL=redirect.d.ts.map
|
||||
//#endregion
|
||||
//#region src/adapters/next-app-dir/notFound.d.ts
|
||||
/**
|
||||
* Like `next/navigation`'s `notFound()` but throws a `TRPCError` that later will be handled by Next.js
|
||||
* @public
|
||||
*/
|
||||
declare const notFound: typeof notFound$1;
|
||||
//# sourceMappingURL=notFound.d.ts.map
|
||||
//#endregion
|
||||
//#region src/adapters/next-app-dir/rethrowNextErrors.d.ts
|
||||
/**
|
||||
* Rethrow errors that should be handled by Next.js
|
||||
*/
|
||||
declare const rethrowNextErrors: (error: TRPCError) => void;
|
||||
//# sourceMappingURL=rethrowNextErrors.d.ts.map
|
||||
|
||||
//#endregion
|
||||
export { nextAppDirCaller as experimental_nextAppDirCaller, notFound as experimental_notFound, redirect as experimental_redirect, rethrowNextErrors };
|
||||
//# sourceMappingURL=next-app-dir.d.cts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"next-app-dir.d.cts","names":[],"sources":["../../src/adapters/next-app-dir/nextAppDirCaller.ts","../../src/adapters/next-app-dir/redirect.ts","../../src/adapters/next-app-dir/notFound.ts","../../src/adapters/next-app-dir/rethrowNextErrors.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAsBA;AAAgC,iBAAhB,gBAAgB,CAAA,QAAA,EAAA,KAAA,CAAA,CAAA,MAAA,EACtB,QADsB,CAAA;EAAA;;;EAeU,aACZ,CAAA,EAAA,CAAA,IAAA,EAAA;IAA6B,IAAA,EAVtB,KAUsB;EAAQ,CAAA,EAArB,GAAA,MAAA;EAAY;;;;EAEzC,iBAAA,CAAA,EAAA,OAAA;;;;ECdJ,OAAA,CAAA,EAAA,CAGZ,IAAA,EDQsB,mBCRtB,CDQ0C,QCR1C,CAAA,EAAA,GAAA,IAAA;CAAA,GDSO,qBCTP,CDS6B,QCT7B,EAAA,GAAA,GDS6C,YCT7C,CDS0D,QCT1D,CAAA,CAAA,CAAA,CAAA,EDWE,cCXF,CDWiB,QCXjB,CAAA;;;;;;;;;;;ADWiB,cCdL,QDcK,EAAA,CAAA,GAAA,ECdY,GDcZ,GAAA,MAAA,EAAA,YAAA,CAAA,ECdyC,YDczC,EAAA,GAAA,SAAA;;;;;;;;cEjCL,iBAAiB;AFe9B;;;;;;cGuBa,2BAA4B"}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
import "../index.d-D4qZxQJh.mjs";
|
||||
import { CallerOverride, CreateContextCallback, ErrorHandlerOptions, MaybePromise, Simplify, TRPCError } from "../unstable-core-do-not-import.d-BdVSvUCr.mjs";
|
||||
import "../index.d-vq_QHko2.mjs";
|
||||
import { RedirectType, notFound as notFound$1 } from "next/navigation";
|
||||
|
||||
//#region src/adapters/next-app-dir/nextAppDirCaller.d.ts
|
||||
|
||||
/**
|
||||
* Create a caller that works with Next.js React Server Components & Server Actions
|
||||
*/
|
||||
declare function nextAppDirCaller<TContext, TMeta>(config: Simplify<{
|
||||
/**
|
||||
* Extract the path from the procedure metadata
|
||||
*/
|
||||
pathExtractor?: (opts: {
|
||||
meta: TMeta;
|
||||
}) => string;
|
||||
/**
|
||||
* Transform form data to a `Record` before passing it to the procedure
|
||||
* @default true
|
||||
*/
|
||||
normalizeFormData?: boolean;
|
||||
/**
|
||||
* Called when an error occurs in the handler
|
||||
*/
|
||||
onError?: (opts: ErrorHandlerOptions<TContext>) => void;
|
||||
} & CreateContextCallback<TContext, () => MaybePromise<TContext>>>): CallerOverride<TContext>;
|
||||
//# sourceMappingURL=nextAppDirCaller.d.ts.map
|
||||
//#endregion
|
||||
//#region src/adapters/next-app-dir/redirect.d.ts
|
||||
/**
|
||||
* Like `next/navigation`'s `redirect()` but throws a `TRPCError` that later will be handled by Next.js
|
||||
* This provides better typesafety than the `next/navigation`'s `redirect()` since the action continues
|
||||
* to execute on the frontend even if Next's `redirect()` has a return type of `never`.
|
||||
* @public
|
||||
* @remark You should only use this if you're also using `nextAppDirCaller`.
|
||||
*/
|
||||
declare const redirect: (url: URL | string, redirectType?: RedirectType) => undefined;
|
||||
//# sourceMappingURL=redirect.d.ts.map
|
||||
//#endregion
|
||||
//#region src/adapters/next-app-dir/notFound.d.ts
|
||||
/**
|
||||
* Like `next/navigation`'s `notFound()` but throws a `TRPCError` that later will be handled by Next.js
|
||||
* @public
|
||||
*/
|
||||
declare const notFound: typeof notFound$1;
|
||||
//# sourceMappingURL=notFound.d.ts.map
|
||||
//#endregion
|
||||
//#region src/adapters/next-app-dir/rethrowNextErrors.d.ts
|
||||
/**
|
||||
* Rethrow errors that should be handled by Next.js
|
||||
*/
|
||||
declare const rethrowNextErrors: (error: TRPCError) => void;
|
||||
//# sourceMappingURL=rethrowNextErrors.d.ts.map
|
||||
|
||||
//#endregion
|
||||
export { nextAppDirCaller as experimental_nextAppDirCaller, notFound as experimental_notFound, redirect as experimental_redirect, rethrowNextErrors };
|
||||
//# sourceMappingURL=next-app-dir.d.mts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"next-app-dir.d.mts","names":[],"sources":["../../src/adapters/next-app-dir/nextAppDirCaller.ts","../../src/adapters/next-app-dir/redirect.ts","../../src/adapters/next-app-dir/notFound.ts","../../src/adapters/next-app-dir/rethrowNextErrors.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAsBA;AAAgC,iBAAhB,gBAAgB,CAAA,QAAA,EAAA,KAAA,CAAA,CAAA,MAAA,EACtB,QADsB,CAAA;EAAA;;;EAeU,aACZ,CAAA,EAAA,CAAA,IAAA,EAAA;IAA6B,IAAA,EAVtB,KAUsB;EAAQ,CAAA,EAArB,GAAA,MAAA;EAAY;;;;EAEzC,iBAAA,CAAA,EAAA,OAAA;;;;ECdJ,OAAA,CAAA,EAAA,CAGZ,IAAA,EDQsB,mBCRtB,CDQ0C,QCR1C,CAAA,EAAA,GAAA,IAAA;CAAA,GDSO,qBCTP,CDS6B,QCT7B,EAAA,GAAA,GDS6C,YCT7C,CDS0D,QCT1D,CAAA,CAAA,CAAA,CAAA,EDWE,cCXF,CDWiB,QCXjB,CAAA;;;;;;;;;;;ADWiB,cCdL,QDcK,EAAA,CAAA,GAAA,ECdY,GDcZ,GAAA,MAAA,EAAA,YAAA,CAAA,ECdyC,YDczC,EAAA,GAAA,SAAA;;;;;;;;cEjCL,iBAAiB;AFe9B;;;;;;cGuBa,2BAA4B"}
|
||||
+3288
File diff suppressed because it is too large
Load Diff
+1
File diff suppressed because one or more lines are too long
+40
@@ -0,0 +1,40 @@
|
||||
const require_getErrorShape = require('../getErrorShape-Ed1OwssN.cjs');
|
||||
const require_codes = require('../codes-BfZsPdy-.cjs');
|
||||
const require_tracked = require('../tracked-DFxm8M2u.cjs');
|
||||
require('../parseTRPCMessage-7Ltmq-Fb.cjs');
|
||||
require('../resolveResponse-BCkjJQIz.cjs');
|
||||
require('../contentTypeParsers-iAFF_pJG.cjs');
|
||||
require('../unstable-core-do-not-import-fsjhEhgh.cjs');
|
||||
require('../observable-B1Nk6r1H.cjs');
|
||||
require('../initTRPC-_cqIfGlH.cjs');
|
||||
const require_node_http = require('../node-http-bPWQbKlA.cjs');
|
||||
|
||||
//#region src/adapters/next.ts
|
||||
var import_objectSpread2 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
|
||||
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_tracked.TRPCError({
|
||||
message: "Query \"trpc\" not found - is the file named `[trpc]`.ts or `[...trpc].ts`?",
|
||||
code: "INTERNAL_SERVER_ERROR"
|
||||
});
|
||||
});
|
||||
await require_node_http.nodeHTTPRequestHandler((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}));
|
||||
}).catch(require_node_http.internal_exceptionHandler((0, import_objectSpread2.default)({
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}, opts)));
|
||||
};
|
||||
}
|
||||
|
||||
//#endregion
|
||||
exports.createNextApiHandler = createNextApiHandler;
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import "../index.d-BiUz7kM_.cjs";
|
||||
import { AnyRouter } from "../unstable-core-do-not-import.d-Dh9CT5RO.cjs";
|
||||
import "../index.d-CvZXeEyR.cjs";
|
||||
import { NodeHTTPCreateContextFnOptions, NodeHTTPHandlerOptions } from "../index.d-fBAdSX6g.cjs";
|
||||
import { NextApiHandler, NextApiHandler as NextApiHandler$1, NextApiRequest, NextApiRequest as NextApiRequest$1, NextApiResponse, NextApiResponse as NextApiResponse$1 } from "next";
|
||||
|
||||
//#region src/adapters/next.d.ts
|
||||
|
||||
type CreateNextContextOptions = NodeHTTPCreateContextFnOptions<NextApiRequest$1, NextApiResponse$1>;
|
||||
/**
|
||||
* Preventing "TypeScript where it's tough not to get "The inferred type of 'xxxx' cannot be named without a reference to [...]"
|
||||
*/
|
||||
|
||||
declare function createNextApiHandler<TRouter extends AnyRouter>(opts: NodeHTTPHandlerOptions<TRouter, NextApiRequest$1, NextApiResponse$1>): NextApiHandler$1;
|
||||
//# sourceMappingURL=next.d.ts.map
|
||||
|
||||
//#endregion
|
||||
export { CreateNextContextOptions, NextApiHandler, NextApiRequest, NextApiResponse, createNextApiHandler };
|
||||
//# sourceMappingURL=next.d.cts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"next.d.cts","names":[],"sources":["../../src/adapters/next.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAsBqE,KAAzD,wBAAA,GAA2B,8BAA8B,CACnE,gBADmE,EAEnE,iBAFmE,CAAA;AAUrE;;;;AACwC,iBADxB,oBACwB,CAAA,gBADa,SACb,CAAA,CAAA,IAAA,EAAhC,sBAAgC,CAAT,OAAS,EAAA,gBAAA,EAAgB,iBAAhB,CAAA,CAAA,EACrC,gBADqC"}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
import "../index.d-D4qZxQJh.mjs";
|
||||
import { AnyRouter } from "../unstable-core-do-not-import.d-BdVSvUCr.mjs";
|
||||
import "../index.d-vq_QHko2.mjs";
|
||||
import { NodeHTTPCreateContextFnOptions, NodeHTTPHandlerOptions } from "../index.d-DhhodpGb.mjs";
|
||||
import { NextApiHandler, NextApiHandler as NextApiHandler$1, NextApiRequest, NextApiRequest as NextApiRequest$1, NextApiResponse, NextApiResponse as NextApiResponse$1 } from "next";
|
||||
|
||||
//#region src/adapters/next.d.ts
|
||||
|
||||
type CreateNextContextOptions = NodeHTTPCreateContextFnOptions<NextApiRequest$1, NextApiResponse$1>;
|
||||
/**
|
||||
* Preventing "TypeScript where it's tough not to get "The inferred type of 'xxxx' cannot be named without a reference to [...]"
|
||||
*/
|
||||
|
||||
declare function createNextApiHandler<TRouter extends AnyRouter>(opts: NodeHTTPHandlerOptions<TRouter, NextApiRequest$1, NextApiResponse$1>): NextApiHandler$1;
|
||||
//# sourceMappingURL=next.d.ts.map
|
||||
|
||||
//#endregion
|
||||
export { CreateNextContextOptions, NextApiHandler, NextApiRequest, NextApiResponse, createNextApiHandler };
|
||||
//# sourceMappingURL=next.d.mts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"next.d.mts","names":[],"sources":["../../src/adapters/next.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAsBqE,KAAzD,wBAAA,GAA2B,8BAA8B,CACnE,gBADmE,EAEnE,iBAFmE,CAAA;AAUrE;;;;AACwC,iBADxB,oBACwB,CAAA,gBADa,SACb,CAAA,CAAA,IAAA,EAAhC,sBAAgC,CAAT,OAAS,EAAA,gBAAA,EAAgB,iBAAhB,CAAA,CAAA,EACrC,gBADqC"}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
import { __toESM, require_objectSpread2 } from "../getErrorShape-BPSzUA7W.mjs";
|
||||
import { run } from "../codes-DagpWZLc.mjs";
|
||||
import { TRPCError } from "../tracked-DWInO6EQ.mjs";
|
||||
import "../parseTRPCMessage-CTow-umk.mjs";
|
||||
import "../resolveResponse-CdASWfAV.mjs";
|
||||
import "../contentTypeParsers-SN4WL9ze.mjs";
|
||||
import "../unstable-core-do-not-import-9NNw8uQM.mjs";
|
||||
import "../observable-UMO3vUa_.mjs";
|
||||
import "../initTRPC-BRf4imah.mjs";
|
||||
import { internal_exceptionHandler, nodeHTTPRequestHandler } from "../node-http-gyWQuCv2.mjs";
|
||||
|
||||
//#region src/adapters/next.ts
|
||||
var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
|
||||
function createNextApiHandler(opts) {
|
||||
return async (req, res) => {
|
||||
let path = "";
|
||||
await run(async () => {
|
||||
path = run(() => {
|
||||
if (typeof req.query["trpc"] === "string") return req.query["trpc"];
|
||||
if (Array.isArray(req.query["trpc"])) return req.query["trpc"].join("/");
|
||||
throw new TRPCError({
|
||||
message: "Query \"trpc\" not found - is the file named `[trpc]`.ts or `[...trpc].ts`?",
|
||||
code: "INTERNAL_SERVER_ERROR"
|
||||
});
|
||||
});
|
||||
await nodeHTTPRequestHandler((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}));
|
||||
}).catch(internal_exceptionHandler((0, import_objectSpread2.default)({
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}, opts)));
|
||||
};
|
||||
}
|
||||
|
||||
//#endregion
|
||||
export { createNextApiHandler };
|
||||
//# sourceMappingURL=next.mjs.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"next.mjs","names":["opts: NodeHTTPHandlerOptions<TRouter, NextApiRequest, NextApiResponse>"],"sources":["../../src/adapters/next.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 { NextApiHandler, NextApiRequest, NextApiResponse } from 'next';\n// @trpc/server\nimport type { AnyRouter } from '../@trpc/server';\n// @trpc/server\nimport { TRPCError } from '../@trpc/server';\n// eslint-disable-next-line no-restricted-imports\nimport { run } from '../unstable-core-do-not-import';\nimport type {\n NodeHTTPCreateContextFnOptions,\n NodeHTTPHandlerOptions,\n} from './node-http';\nimport { internal_exceptionHandler, nodeHTTPRequestHandler } from './node-http';\n\nexport type CreateNextContextOptions = NodeHTTPCreateContextFnOptions<\n NextApiRequest,\n NextApiResponse\n>;\n\n/**\n * Preventing \"TypeScript where it's tough not to get \"The inferred type of 'xxxx' cannot be named without a reference to [...]\"\n */\nexport type { NextApiHandler, NextApiRequest, NextApiResponse } from 'next';\n\nexport function createNextApiHandler<TRouter extends AnyRouter>(\n opts: NodeHTTPHandlerOptions<TRouter, NextApiRequest, NextApiResponse>,\n): NextApiHandler {\n return async (req, res) => {\n let path = '';\n\n await run(async () => {\n path = run(() => {\n if (typeof req.query['trpc'] === 'string') {\n return req.query['trpc'];\n }\n if (Array.isArray(req.query['trpc'])) {\n return req.query['trpc'].join('/');\n }\n throw new TRPCError({\n message:\n 'Query \"trpc\" not found - is the file named `[trpc]`.ts or `[...trpc].ts`?',\n code: 'INTERNAL_SERVER_ERROR',\n });\n });\n\n await nodeHTTPRequestHandler({\n ...(opts as any),\n req,\n res,\n path,\n });\n }).catch(\n internal_exceptionHandler({\n req,\n res,\n path,\n ...opts,\n }),\n );\n };\n}\n"],"mappings":";;;;;;;;;;;;;AAgCA,SAAgB,qBACdA,MACgB;AAChB,QAAO,OAAO,KAAK,QAAQ;EACzB,IAAI,OAAO;AAEX,QAAM,IAAI,YAAY;AACpB,UAAO,IAAI,MAAM;AACf,eAAW,IAAI,MAAM,YAAY,SAC/B,QAAO,IAAI,MAAM;AAEnB,QAAI,MAAM,QAAQ,IAAI,MAAM,QAAQ,CAClC,QAAO,IAAI,MAAM,QAAQ,KAAK,IAAI;AAEpC,UAAM,IAAI,UAAU;KAClB,SACE;KACF,MAAM;IACP;GACF,EAAC;AAEF,SAAM,+FACA;IACJ;IACA;IACA;MACA;EACH,EAAC,CAAC,MACD;GACE;GACA;GACA;KACG,MACH,CACH;CACF;AACF"}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
require('../../getErrorShape-Ed1OwssN.cjs');
|
||||
require('../../codes-BfZsPdy-.cjs');
|
||||
require('../../tracked-DFxm8M2u.cjs');
|
||||
require('../../parseTRPCMessage-7Ltmq-Fb.cjs');
|
||||
require('../../resolveResponse-BCkjJQIz.cjs');
|
||||
require('../../contentTypeParsers-iAFF_pJG.cjs');
|
||||
require('../../unstable-core-do-not-import-fsjhEhgh.cjs');
|
||||
require('../../observable-B1Nk6r1H.cjs');
|
||||
require('../../initTRPC-_cqIfGlH.cjs');
|
||||
const require_node_http = require('../../node-http-bPWQbKlA.cjs');
|
||||
|
||||
exports.createURL = require_node_http.createURL;
|
||||
exports.incomingMessageToRequest = require_node_http.incomingMessageToRequest;
|
||||
exports.internal_exceptionHandler = require_node_http.internal_exceptionHandler;
|
||||
exports.nodeHTTPRequestHandler = require_node_http.nodeHTTPRequestHandler;
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import "../../index.d-BiUz7kM_.cjs";
|
||||
import "../../unstable-core-do-not-import.d-Dh9CT5RO.cjs";
|
||||
import "../../index.d-CvZXeEyR.cjs";
|
||||
import { NodeHTTPCreateContextFn, NodeHTTPCreateContextFnOptions, NodeHTTPCreateContextOption, NodeHTTPHandlerOptions, NodeHTTPRequest, NodeHTTPRequestHandlerOptions, NodeHTTPResponse, createURL, incomingMessageToRequest, internal_exceptionHandler, nodeHTTPRequestHandler } from "../../index.d-fBAdSX6g.cjs";
|
||||
export { NodeHTTPCreateContextFn, NodeHTTPCreateContextFnOptions, NodeHTTPCreateContextOption, NodeHTTPHandlerOptions, NodeHTTPRequest, NodeHTTPRequestHandlerOptions, NodeHTTPResponse, createURL, incomingMessageToRequest, internal_exceptionHandler, nodeHTTPRequestHandler };
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import "../../index.d-D4qZxQJh.mjs";
|
||||
import "../../unstable-core-do-not-import.d-BdVSvUCr.mjs";
|
||||
import "../../index.d-vq_QHko2.mjs";
|
||||
import { NodeHTTPCreateContextFn, NodeHTTPCreateContextFnOptions, NodeHTTPCreateContextOption, NodeHTTPHandlerOptions, NodeHTTPRequest, NodeHTTPRequestHandlerOptions, NodeHTTPResponse, createURL, incomingMessageToRequest, internal_exceptionHandler, nodeHTTPRequestHandler } from "../../index.d-DhhodpGb.mjs";
|
||||
export { NodeHTTPCreateContextFn, NodeHTTPCreateContextFnOptions, NodeHTTPCreateContextOption, NodeHTTPHandlerOptions, NodeHTTPRequest, NodeHTTPRequestHandlerOptions, NodeHTTPResponse, createURL, incomingMessageToRequest, internal_exceptionHandler, nodeHTTPRequestHandler };
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
import "../../getErrorShape-BPSzUA7W.mjs";
|
||||
import "../../codes-DagpWZLc.mjs";
|
||||
import "../../tracked-DWInO6EQ.mjs";
|
||||
import "../../parseTRPCMessage-CTow-umk.mjs";
|
||||
import "../../resolveResponse-CdASWfAV.mjs";
|
||||
import "../../contentTypeParsers-SN4WL9ze.mjs";
|
||||
import "../../unstable-core-do-not-import-9NNw8uQM.mjs";
|
||||
import "../../observable-UMO3vUa_.mjs";
|
||||
import "../../initTRPC-BRf4imah.mjs";
|
||||
import { createURL, incomingMessageToRequest, internal_exceptionHandler, nodeHTTPRequestHandler } from "../../node-http-gyWQuCv2.mjs";
|
||||
|
||||
export { createURL, incomingMessageToRequest, internal_exceptionHandler, nodeHTTPRequestHandler };
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
const require_getErrorShape = require('../getErrorShape-Ed1OwssN.cjs');
|
||||
const require_codes = require('../codes-BfZsPdy-.cjs');
|
||||
require('../tracked-DFxm8M2u.cjs');
|
||||
require('../parseTRPCMessage-7Ltmq-Fb.cjs');
|
||||
require('../resolveResponse-BCkjJQIz.cjs');
|
||||
require('../contentTypeParsers-iAFF_pJG.cjs');
|
||||
require('../unstable-core-do-not-import-fsjhEhgh.cjs');
|
||||
require('../observable-B1Nk6r1H.cjs');
|
||||
require('../initTRPC-_cqIfGlH.cjs');
|
||||
const require_node_http = require('../node-http-bPWQbKlA.cjs');
|
||||
const http = require_getErrorShape.__toESM(require("http"));
|
||||
|
||||
//#region src/adapters/standalone.ts
|
||||
var import_objectSpread2 = require_getErrorShape.__toESM(require_getErrorShape.require_objectSpread2(), 1);
|
||||
function createHandler(opts) {
|
||||
var _opts$basePath;
|
||||
const basePath = (_opts$basePath = opts.basePath) !== null && _opts$basePath !== void 0 ? _opts$basePath : "/";
|
||||
const sliceLength = basePath.length;
|
||||
return (req, res) => {
|
||||
let path = "";
|
||||
require_codes.run(async () => {
|
||||
const url = require_node_http.createURL(req);
|
||||
path = url.pathname.slice(sliceLength);
|
||||
await require_node_http.nodeHTTPRequestHandler((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}));
|
||||
}).catch(require_node_http.internal_exceptionHandler((0, import_objectSpread2.default)({
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}, opts)));
|
||||
};
|
||||
}
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
function createHTTPHandler(opts) {
|
||||
return createHandler(opts);
|
||||
}
|
||||
function createHTTPServer(opts) {
|
||||
return http.default.createServer(createHTTPHandler(opts));
|
||||
}
|
||||
function createHTTP2Handler(opts) {
|
||||
return createHandler(opts);
|
||||
}
|
||||
|
||||
//#endregion
|
||||
exports.createHTTP2Handler = createHTTP2Handler;
|
||||
exports.createHTTPHandler = createHTTPHandler;
|
||||
exports.createHTTPServer = createHTTPServer;
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
import "../index.d-BiUz7kM_.cjs";
|
||||
import { AnyRouter } from "../unstable-core-do-not-import.d-Dh9CT5RO.cjs";
|
||||
import "../index.d-CvZXeEyR.cjs";
|
||||
import { NodeHTTPCreateContextFnOptions, NodeHTTPHandlerOptions, NodeHTTPRequest, NodeHTTPResponse } from "../index.d-fBAdSX6g.cjs";
|
||||
import http from "http";
|
||||
import * as http2 from "http2";
|
||||
|
||||
//#region src/adapters/standalone.d.ts
|
||||
|
||||
type StandaloneHandlerOptions<TRouter extends AnyRouter, TRequest extends NodeHTTPRequest, TResponse extends NodeHTTPResponse> = NodeHTTPHandlerOptions<TRouter, TRequest, TResponse> & {
|
||||
/**
|
||||
* The base path to handle requests for.
|
||||
* This will be sliced from the beginning of the request path
|
||||
* (Do not miss including the trailing slash)
|
||||
* @default '/'
|
||||
* @example '/trpc/'
|
||||
* @example '/trpc/api/'
|
||||
*/
|
||||
basePath?: string;
|
||||
};
|
||||
type CreateHTTPHandlerOptions<TRouter extends AnyRouter> = StandaloneHandlerOptions<TRouter, http.IncomingMessage, http.ServerResponse>;
|
||||
type CreateHTTPContextOptions = NodeHTTPCreateContextFnOptions<http.IncomingMessage, http.ServerResponse>;
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
declare function createHTTPHandler<TRouter extends AnyRouter>(opts: CreateHTTPHandlerOptions<TRouter>): http.RequestListener;
|
||||
declare function createHTTPServer<TRouter extends AnyRouter>(opts: CreateHTTPHandlerOptions<TRouter>): http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>;
|
||||
type CreateHTTP2HandlerOptions<TRouter extends AnyRouter> = StandaloneHandlerOptions<TRouter, http2.Http2ServerRequest, http2.Http2ServerResponse>;
|
||||
type CreateHTTP2ContextOptions = NodeHTTPCreateContextFnOptions<http2.Http2ServerRequest, http2.Http2ServerResponse>;
|
||||
declare function createHTTP2Handler(opts: CreateHTTP2HandlerOptions<AnyRouter>): (req: http2.Http2ServerRequest, res: http2.Http2ServerResponse<http2.Http2ServerRequest>) => void;
|
||||
//#endregion
|
||||
export { CreateHTTP2ContextOptions, CreateHTTP2HandlerOptions, CreateHTTPContextOptions, CreateHTTPHandlerOptions, createHTTP2Handler, createHTTPHandler, createHTTPServer };
|
||||
//# sourceMappingURL=standalone.d.cts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"standalone.d.cts","names":[],"sources":["../../src/adapters/standalone.ts"],"sourcesContent":[],"mappings":";;;;;;;;;KA6BK,wBAIsB,CAAA,gBAHT,SAGS,EAAA,iBAFR,eAEQ,EAAA,kBADP,gBACO,CAAA,GAAvB,sBAAuB,CAAA,OAAA,EAAS,QAAT,EAAmB,SAAnB,CAAA,GAAA;EAAO;;;AAAR;AAa1B;;;;EACkC,QAAO,CAAA,EAAA,MAAA;CAAe;AAAtD,KADU,wBACV,CAAA,gBADmD,SACnD,CAAA,GAAA,wBAAA,CAAyB,OAAzB,EAAkC,IAAA,CAAK,eAAvC,EAAwD,IAAA,CAAK,cAA7D,CAAA;AAAwB,KAEd,wBAAA,GAA2B,8BAFb,CAGxB,IAAA,CAAK,eAHmB,EAIxB,IAAA,CAAK,cAJmB,CAAA;AAE1B;;;AAEE,iBA0Cc,iBA1CT,CAAA,gBA0C2C,SA1C3C,CAAA,CAAA,IAAA,EA2CC,wBA3CD,CA2C0B,OA3C1B,CAAA,CAAA,EA4CJ,IAAA,CAAK,eA5CD;AAFgC,iBAkDvB,gBAlDuB,CAAA,gBAkDU,SAlDV,CAAA,CAAA,IAAA,EAmD/B,wBAnD+B,CAmDN,OAnDM,CAAA,CAAA,EAmDE,IAAA,CAAA,MAnDF,CAAA,OAmDE,IAAA,CAAA,eAnDF,EAAA,OAmDE,IAAA,CAAA,cAnDF,CAAA;AAA8B,KAyDzD,yBAzDyD,CAAA,gBAyDf,SAzDe,CAAA,GA0DnE,wBA1DmE,CA2DjE,OA3DiE,EA4DjE,KAAA,CAAM,kBA5D2D,EA6DjE,KAAA,CAAM,mBA7D2D,CAAA;AA4CrD,KAoBJ,yBAAA,GAA4B,8BApBP,CAqB/B,KAAA,CAAM,kBArByB,EAsB/B,KAAA,CAAM,mBAtByB,CAAA;AAAA,iBAyBjB,kBAAA,CAzBiB,IAAA,EAyBQ,yBAzBR,CAyBkC,SAzBlC,CAAA,CAAA,EAAA,CAAA,GAAA,EAyB4C,KAAA,CAAA,kBAzB5C,EAAA,GAAA,EAyB4C,KAAA,CAAA,mBAzB5C,CAyB4C,KAAA,CAAA,kBAzB5C,CAAA,EAAA,GAAA,IAAA"}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
import "../index.d-D4qZxQJh.mjs";
|
||||
import { AnyRouter } from "../unstable-core-do-not-import.d-BdVSvUCr.mjs";
|
||||
import "../index.d-vq_QHko2.mjs";
|
||||
import { NodeHTTPCreateContextFnOptions, NodeHTTPHandlerOptions, NodeHTTPRequest, NodeHTTPResponse } from "../index.d-DhhodpGb.mjs";
|
||||
import http from "http";
|
||||
import * as http2 from "http2";
|
||||
|
||||
//#region src/adapters/standalone.d.ts
|
||||
|
||||
type StandaloneHandlerOptions<TRouter extends AnyRouter, TRequest extends NodeHTTPRequest, TResponse extends NodeHTTPResponse> = NodeHTTPHandlerOptions<TRouter, TRequest, TResponse> & {
|
||||
/**
|
||||
* The base path to handle requests for.
|
||||
* This will be sliced from the beginning of the request path
|
||||
* (Do not miss including the trailing slash)
|
||||
* @default '/'
|
||||
* @example '/trpc/'
|
||||
* @example '/trpc/api/'
|
||||
*/
|
||||
basePath?: string;
|
||||
};
|
||||
type CreateHTTPHandlerOptions<TRouter extends AnyRouter> = StandaloneHandlerOptions<TRouter, http.IncomingMessage, http.ServerResponse>;
|
||||
type CreateHTTPContextOptions = NodeHTTPCreateContextFnOptions<http.IncomingMessage, http.ServerResponse>;
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
declare function createHTTPHandler<TRouter extends AnyRouter>(opts: CreateHTTPHandlerOptions<TRouter>): http.RequestListener;
|
||||
declare function createHTTPServer<TRouter extends AnyRouter>(opts: CreateHTTPHandlerOptions<TRouter>): http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>;
|
||||
type CreateHTTP2HandlerOptions<TRouter extends AnyRouter> = StandaloneHandlerOptions<TRouter, http2.Http2ServerRequest, http2.Http2ServerResponse>;
|
||||
type CreateHTTP2ContextOptions = NodeHTTPCreateContextFnOptions<http2.Http2ServerRequest, http2.Http2ServerResponse>;
|
||||
declare function createHTTP2Handler(opts: CreateHTTP2HandlerOptions<AnyRouter>): (req: http2.Http2ServerRequest, res: http2.Http2ServerResponse<http2.Http2ServerRequest>) => void;
|
||||
//#endregion
|
||||
export { CreateHTTP2ContextOptions, CreateHTTP2HandlerOptions, CreateHTTPContextOptions, CreateHTTPHandlerOptions, createHTTP2Handler, createHTTPHandler, createHTTPServer };
|
||||
//# sourceMappingURL=standalone.d.mts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"standalone.d.mts","names":[],"sources":["../../src/adapters/standalone.ts"],"sourcesContent":[],"mappings":";;;;;;;;;KA6BK,wBAIsB,CAAA,gBAHT,SAGS,EAAA,iBAFR,eAEQ,EAAA,kBADP,gBACO,CAAA,GAAvB,sBAAuB,CAAA,OAAA,EAAS,QAAT,EAAmB,SAAnB,CAAA,GAAA;EAAO;;;AAAR;AAa1B;;;;EACkC,QAAO,CAAA,EAAA,MAAA;CAAe;AAAtD,KADU,wBACV,CAAA,gBADmD,SACnD,CAAA,GAAA,wBAAA,CAAyB,OAAzB,EAAkC,IAAA,CAAK,eAAvC,EAAwD,IAAA,CAAK,cAA7D,CAAA;AAAwB,KAEd,wBAAA,GAA2B,8BAFb,CAGxB,IAAA,CAAK,eAHmB,EAIxB,IAAA,CAAK,cAJmB,CAAA;AAE1B;;;AAEE,iBA0Cc,iBA1CT,CAAA,gBA0C2C,SA1C3C,CAAA,CAAA,IAAA,EA2CC,wBA3CD,CA2C0B,OA3C1B,CAAA,CAAA,EA4CJ,IAAA,CAAK,eA5CD;AAFgC,iBAkDvB,gBAlDuB,CAAA,gBAkDU,SAlDV,CAAA,CAAA,IAAA,EAmD/B,wBAnD+B,CAmDN,OAnDM,CAAA,CAAA,EAmDE,IAAA,CAAA,MAnDF,CAAA,OAmDE,IAAA,CAAA,eAnDF,EAAA,OAmDE,IAAA,CAAA,cAnDF,CAAA;AAA8B,KAyDzD,yBAzDyD,CAAA,gBAyDf,SAzDe,CAAA,GA0DnE,wBA1DmE,CA2DjE,OA3DiE,EA4DjE,KAAA,CAAM,kBA5D2D,EA6DjE,KAAA,CAAM,mBA7D2D,CAAA;AA4CrD,KAoBJ,yBAAA,GAA4B,8BApBP,CAqB/B,KAAA,CAAM,kBArByB,EAsB/B,KAAA,CAAM,mBAtByB,CAAA;AAAA,iBAyBjB,kBAAA,CAzBiB,IAAA,EAyBQ,yBAzBR,CAyBkC,SAzBlC,CAAA,CAAA,EAAA,CAAA,GAAA,EAyB4C,KAAA,CAAA,kBAzB5C,EAAA,GAAA,EAyB4C,KAAA,CAAA,mBAzB5C,CAyB4C,KAAA,CAAA,kBAzB5C,CAAA,EAAA,GAAA,IAAA"}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
import { __toESM, require_objectSpread2 } from "../getErrorShape-BPSzUA7W.mjs";
|
||||
import { run } from "../codes-DagpWZLc.mjs";
|
||||
import "../tracked-DWInO6EQ.mjs";
|
||||
import "../parseTRPCMessage-CTow-umk.mjs";
|
||||
import "../resolveResponse-CdASWfAV.mjs";
|
||||
import "../contentTypeParsers-SN4WL9ze.mjs";
|
||||
import "../unstable-core-do-not-import-9NNw8uQM.mjs";
|
||||
import "../observable-UMO3vUa_.mjs";
|
||||
import "../initTRPC-BRf4imah.mjs";
|
||||
import { createURL, internal_exceptionHandler, nodeHTTPRequestHandler } from "../node-http-gyWQuCv2.mjs";
|
||||
import http from "http";
|
||||
|
||||
//#region src/adapters/standalone.ts
|
||||
var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
|
||||
function createHandler(opts) {
|
||||
var _opts$basePath;
|
||||
const basePath = (_opts$basePath = opts.basePath) !== null && _opts$basePath !== void 0 ? _opts$basePath : "/";
|
||||
const sliceLength = basePath.length;
|
||||
return (req, res) => {
|
||||
let path = "";
|
||||
run(async () => {
|
||||
const url = createURL(req);
|
||||
path = url.pathname.slice(sliceLength);
|
||||
await nodeHTTPRequestHandler((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}));
|
||||
}).catch(internal_exceptionHandler((0, import_objectSpread2.default)({
|
||||
req,
|
||||
res,
|
||||
path
|
||||
}, opts)));
|
||||
};
|
||||
}
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
function createHTTPHandler(opts) {
|
||||
return createHandler(opts);
|
||||
}
|
||||
function createHTTPServer(opts) {
|
||||
return http.createServer(createHTTPHandler(opts));
|
||||
}
|
||||
function createHTTP2Handler(opts) {
|
||||
return createHandler(opts);
|
||||
}
|
||||
|
||||
//#endregion
|
||||
export { createHTTP2Handler, createHTTPHandler, createHTTPServer };
|
||||
//# sourceMappingURL=standalone.mjs.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"standalone.mjs","names":["opts: StandaloneHandlerOptions<TRouter, TRequest, TResponse>","opts: CreateHTTPHandlerOptions<TRouter>","opts: CreateHTTP2HandlerOptions<AnyRouter>"],"sources":["../../src/adapters/standalone.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\nimport http from 'http';\n// --- http2 ---\nimport type * as http2 from 'http2';\n// @trpc/server\nimport { type AnyRouter } from '../@trpc/server';\n// eslint-disable-next-line no-restricted-imports\nimport { run } from '../unstable-core-do-not-import';\nimport type {\n NodeHTTPCreateContextFnOptions,\n NodeHTTPHandlerOptions,\n NodeHTTPRequest,\n NodeHTTPResponse,\n} from './node-http';\nimport {\n createURL,\n internal_exceptionHandler,\n nodeHTTPRequestHandler,\n} from './node-http';\n\ntype StandaloneHandlerOptions<\n TRouter extends AnyRouter,\n TRequest extends NodeHTTPRequest,\n TResponse extends NodeHTTPResponse,\n> = NodeHTTPHandlerOptions<TRouter, TRequest, TResponse> & {\n /**\n * The base path to handle requests for.\n * This will be sliced from the beginning of the request path\n * (Do not miss including the trailing slash)\n * @default '/'\n * @example '/trpc/'\n * @example '/trpc/api/'\n */\n basePath?: string;\n};\n\n// --- http1 ---\nexport type CreateHTTPHandlerOptions<TRouter extends AnyRouter> =\n StandaloneHandlerOptions<TRouter, http.IncomingMessage, http.ServerResponse>;\n\nexport type CreateHTTPContextOptions = NodeHTTPCreateContextFnOptions<\n http.IncomingMessage,\n http.ServerResponse\n>;\n\nfunction createHandler<\n TRouter extends AnyRouter,\n TRequest extends NodeHTTPRequest,\n TResponse extends NodeHTTPResponse,\n>(\n opts: StandaloneHandlerOptions<TRouter, TRequest, TResponse>,\n): (req: TRequest, res: TResponse) => void {\n const basePath = opts.basePath ?? '/';\n const sliceLength = basePath.length;\n\n return (req, res) => {\n let path = '';\n\n run(async () => {\n const url = createURL(req);\n\n // get procedure(s) path and remove the leading slash\n path = url.pathname.slice(sliceLength);\n\n await nodeHTTPRequestHandler({\n ...(opts as any),\n req,\n res,\n path,\n });\n }).catch(\n internal_exceptionHandler({\n req,\n res,\n path,\n ...opts,\n }),\n );\n };\n}\n\n/**\n * @internal\n */\nexport function createHTTPHandler<TRouter extends AnyRouter>(\n opts: CreateHTTPHandlerOptions<TRouter>,\n): http.RequestListener {\n return createHandler(opts);\n}\n\nexport function createHTTPServer<TRouter extends AnyRouter>(\n opts: CreateHTTPHandlerOptions<TRouter>,\n) {\n return http.createServer(createHTTPHandler(opts));\n}\n\n// --- http2 ---\nexport type CreateHTTP2HandlerOptions<TRouter extends AnyRouter> =\n StandaloneHandlerOptions<\n TRouter,\n http2.Http2ServerRequest,\n http2.Http2ServerResponse\n >;\n\nexport type CreateHTTP2ContextOptions = NodeHTTPCreateContextFnOptions<\n http2.Http2ServerRequest,\n http2.Http2ServerResponse\n>;\n\nexport function createHTTP2Handler(opts: CreateHTTP2HandlerOptions<AnyRouter>) {\n return createHandler(opts);\n}\n"],"mappings":";;;;;;;;;;;;;;AAsDA,SAAS,cAKPA,MACyC;;CACzC,MAAM,6BAAW,KAAK,mEAAY;CAClC,MAAM,cAAc,SAAS;AAE7B,QAAO,CAAC,KAAK,QAAQ;EACnB,IAAI,OAAO;AAEX,MAAI,YAAY;GACd,MAAM,MAAM,UAAU,IAAI;AAG1B,UAAO,IAAI,SAAS,MAAM,YAAY;AAEtC,SAAM,+FACA;IACJ;IACA;IACA;MACA;EACH,EAAC,CAAC,MACD;GACE;GACA;GACA;KACG,MACH,CACH;CACF;AACF;;;;AAKD,SAAgB,kBACdC,MACsB;AACtB,QAAO,cAAc,KAAK;AAC3B;AAED,SAAgB,iBACdA,MACA;AACA,QAAO,KAAK,aAAa,kBAAkB,KAAK,CAAC;AAClD;AAeD,SAAgB,mBAAmBC,MAA4C;AAC7E,QAAO,cAAc,KAAK;AAC3B"}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
require('../getErrorShape-Ed1OwssN.cjs');
|
||||
require('../codes-BfZsPdy-.cjs');
|
||||
require('../tracked-DFxm8M2u.cjs');
|
||||
require('../parseTRPCMessage-7Ltmq-Fb.cjs');
|
||||
require('../resolveResponse-BCkjJQIz.cjs');
|
||||
require('../contentTypeParsers-iAFF_pJG.cjs');
|
||||
require('../unstable-core-do-not-import-fsjhEhgh.cjs');
|
||||
require('../observable-B1Nk6r1H.cjs');
|
||||
require('../initTRPC-_cqIfGlH.cjs');
|
||||
require('../http-DXy3XyhL.cjs');
|
||||
require('../node-http-bPWQbKlA.cjs');
|
||||
require('../observable-BVzLuBs6.cjs');
|
||||
const require_ws = require('../ws-CTzlBSdd.cjs');
|
||||
|
||||
exports.applyWSSHandler = require_ws.applyWSSHandler;
|
||||
exports.getWSConnectionHandler = require_ws.getWSConnectionHandler;
|
||||
exports.handleKeepAlive = require_ws.handleKeepAlive;
|
||||
exports.jsonEncoder = require_ws.jsonEncoder;
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
import "../index.d-BiUz7kM_.cjs";
|
||||
import { AnyRouter, BaseHandlerOptions, CreateContextCallback, MaybePromise, inferRouterContext } from "../unstable-core-do-not-import.d-Dh9CT5RO.cjs";
|
||||
import "../index.d-CvZXeEyR.cjs";
|
||||
import { NodeHTTPCreateContextFnOptions } from "../index.d-fBAdSX6g.cjs";
|
||||
import { IncomingMessage } from "http";
|
||||
import ws from "ws";
|
||||
|
||||
//#region src/adapters/wsEncoder.d.ts
|
||||
|
||||
/**
|
||||
* Encoder for WebSocket wire format.
|
||||
* Encodes outgoing messages and decodes incoming messages.
|
||||
*
|
||||
* @example
|
||||
* ```ts
|
||||
* const customEncoder: Encoder = {
|
||||
* encode: (data) => myFormat.stringify(data),
|
||||
* decode: (data) => myFormat.parse(data),
|
||||
* };
|
||||
* ```
|
||||
*/
|
||||
interface Encoder {
|
||||
/** Encode data for transmission over the wire */
|
||||
encode(data: unknown): string | Uint8Array;
|
||||
/** Decode data received from the wire */
|
||||
decode(data: string | ArrayBuffer | Uint8Array): unknown;
|
||||
}
|
||||
/**
|
||||
* Default JSON encoder - used when no encoder is specified.
|
||||
* This maintains backwards compatibility with existing behavior.
|
||||
*/
|
||||
declare const jsonEncoder: Encoder;
|
||||
//# sourceMappingURL=wsEncoder.d.ts.map
|
||||
//#endregion
|
||||
//#region src/adapters/ws.d.ts
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
type CreateWSSContextFnOptions = NodeHTTPCreateContextFnOptions<IncomingMessage, ws.WebSocket>;
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
type CreateWSSContextFn<TRouter extends AnyRouter> = (opts: CreateWSSContextFnOptions) => MaybePromise<inferRouterContext<TRouter>>;
|
||||
type WSConnectionHandlerOptions<TRouter extends AnyRouter> = BaseHandlerOptions<TRouter, IncomingMessage> & CreateContextCallback<inferRouterContext<TRouter>, CreateWSSContextFn<TRouter>>;
|
||||
/**
|
||||
* Web socket server handler
|
||||
*/
|
||||
type WSSHandlerOptions<TRouter extends AnyRouter> = WSConnectionHandlerOptions<TRouter> & {
|
||||
wss: ws.WebSocketServer;
|
||||
prefix?: string;
|
||||
keepAlive?: {
|
||||
/**
|
||||
* Enable heartbeat messages
|
||||
* @default false
|
||||
*/
|
||||
enabled: boolean;
|
||||
/**
|
||||
* Heartbeat interval in milliseconds
|
||||
* @default 30_000
|
||||
*/
|
||||
pingMs?: number;
|
||||
/**
|
||||
* Terminate the WebSocket if no pong is received after this many milliseconds
|
||||
* @default 5_000
|
||||
*/
|
||||
pongWaitMs?: number;
|
||||
};
|
||||
/**
|
||||
* Disable responding to ping messages from the client
|
||||
* **Not recommended** - this is mainly used for testing
|
||||
* @default false
|
||||
*/
|
||||
dangerouslyDisablePong?: boolean;
|
||||
/**
|
||||
* Custom encoder for wire encoding (e.g. custom binary formats)
|
||||
* @default jsonEncoder
|
||||
*/
|
||||
experimental_encoder?: Encoder;
|
||||
};
|
||||
declare function getWSConnectionHandler<TRouter extends AnyRouter>(opts: WSSHandlerOptions<TRouter>): (client: ws.WebSocket, req: IncomingMessage) => void;
|
||||
/**
|
||||
* Handle WebSocket keep-alive messages
|
||||
*/
|
||||
declare function handleKeepAlive(client: ws.WebSocket, pingMs?: number, pongWaitMs?: number): void;
|
||||
declare function applyWSSHandler<TRouter extends AnyRouter>(opts: WSSHandlerOptions<TRouter>): {
|
||||
broadcastReconnectNotification: () => void;
|
||||
};
|
||||
//#endregion
|
||||
export { CreateWSSContextFn, CreateWSSContextFnOptions, Encoder, WSConnectionHandlerOptions, WSSHandlerOptions, applyWSSHandler, getWSConnectionHandler, handleKeepAlive, jsonEncoder };
|
||||
//# sourceMappingURL=ws.d.cts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ws.d.cts","names":[],"sources":["../../src/adapters/wsEncoder.ts","../../src/adapters/ws.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;AAYA;;;;AAIsC,UAJrB,OAAA,CAIqB;EAAU;EAOnC,MAAA,CAAA,IAAA,EAAA,OAWZ,CAAA,EAAA,MAXyB,GATQ,UAoBjC;;wBAlBuB,cAAc;;ACqCtC;;;;AAAwC,cD9B3B,WC8B2B,ED9Bd,OC8Bc;AAA8B;;;;ADzCtE;;AAEkC,KCuCtB,yBAAA,GAA4B,8BDvCN,CCwChC,eDxCgC,ECyChC,EAAA,CAAG,SDzC6B,CAAA;;;AAEc;AAOnC,KCsCD,kBDtCc,CAAA,gBCsCqB,SD3B9C,CAAA,GAAA,CAAA,IAAA,EC4BO,yBD5BP,EAAA,GC6BI,YD7BJ,CC6BiB,kBD7BjB,CC6BoC,OD7BpC,CAAA,CAAA;KC+BW,2CAA2C,aACrD,mBAAmB,SAAS,mBAC1B,sBACE,mBAAmB,UACnB,mBAAmB;;;AAhBzB;AAAqC,KAsBzB,iBAtByB,CAAA,gBAsBS,SAtBT,CAAA,GAuBnC,0BAvBmC,CAuBR,OAvBQ,CAAA,GAAA;EAAA,GACnC,EAuBO,EAAA,CAAG,eAvBV;EAAe,MACZ,CAAA,EAAA,MAAA;EAAS,SAF0B,CAAA,EAAA;IAA8B;AAQtE;;;IACQ,OAAA,EAAA,OAAA;IAC6B;;;AAApB;IAEL,MAAA,CAAA,EAAA,MAAA;IAA0B;;;;IACpC,UAAA,CAAA,EAAA,MAAA;EAAkB,CAAA;EAEY;;;;AADP;EAQb,sBAAiB,CAAA,EAAA,OAAA;EAAA;;;;EACD,oBAChB,CAAA,EA6Be,OA7Bf;CAAe;AA6BO,iBAGlB,sBAHkB,CAAA,gBAGqB,SAHrB,CAAA,CAAA,IAAA,EAI1B,iBAJ0B,CAIR,OAJQ,CAAA,CAAA,EAAA,CAAA,MAAA,EAUhB,EAAA,CAAG,SAVa,EAAA,GAAA,EAUG,eAVH,EAAA,GAAA,IAAA;AAGlC;;;AAC0B,iBAidV,eAAA,CAjdU,MAAA,EAkdhB,EAAA,CAAG,SAlda,EAAA,MAAA,CAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA;AAAlB,iBAufQ,eAvfR,CAAA,gBAufwC,SAvfxC,CAAA,CAAA,IAAA,EAwfA,iBAxfA,CAwfkB,OAxflB,CAAA,CAAA,EAAA;EAAiB,8BAMJ,EAAA,GAAA,GAAA,IAAA;CAAS"}
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
import "../index.d-D4qZxQJh.mjs";
|
||||
import { AnyRouter, BaseHandlerOptions, CreateContextCallback, MaybePromise, inferRouterContext } from "../unstable-core-do-not-import.d-BdVSvUCr.mjs";
|
||||
import "../index.d-vq_QHko2.mjs";
|
||||
import { NodeHTTPCreateContextFnOptions } from "../index.d-DhhodpGb.mjs";
|
||||
import { IncomingMessage } from "http";
|
||||
import ws from "ws";
|
||||
|
||||
//#region src/adapters/wsEncoder.d.ts
|
||||
|
||||
/**
|
||||
* Encoder for WebSocket wire format.
|
||||
* Encodes outgoing messages and decodes incoming messages.
|
||||
*
|
||||
* @example
|
||||
* ```ts
|
||||
* const customEncoder: Encoder = {
|
||||
* encode: (data) => myFormat.stringify(data),
|
||||
* decode: (data) => myFormat.parse(data),
|
||||
* };
|
||||
* ```
|
||||
*/
|
||||
interface Encoder {
|
||||
/** Encode data for transmission over the wire */
|
||||
encode(data: unknown): string | Uint8Array;
|
||||
/** Decode data received from the wire */
|
||||
decode(data: string | ArrayBuffer | Uint8Array): unknown;
|
||||
}
|
||||
/**
|
||||
* Default JSON encoder - used when no encoder is specified.
|
||||
* This maintains backwards compatibility with existing behavior.
|
||||
*/
|
||||
declare const jsonEncoder: Encoder;
|
||||
//# sourceMappingURL=wsEncoder.d.ts.map
|
||||
//#endregion
|
||||
//#region src/adapters/ws.d.ts
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
type CreateWSSContextFnOptions = NodeHTTPCreateContextFnOptions<IncomingMessage, ws.WebSocket>;
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
type CreateWSSContextFn<TRouter extends AnyRouter> = (opts: CreateWSSContextFnOptions) => MaybePromise<inferRouterContext<TRouter>>;
|
||||
type WSConnectionHandlerOptions<TRouter extends AnyRouter> = BaseHandlerOptions<TRouter, IncomingMessage> & CreateContextCallback<inferRouterContext<TRouter>, CreateWSSContextFn<TRouter>>;
|
||||
/**
|
||||
* Web socket server handler
|
||||
*/
|
||||
type WSSHandlerOptions<TRouter extends AnyRouter> = WSConnectionHandlerOptions<TRouter> & {
|
||||
wss: ws.WebSocketServer;
|
||||
prefix?: string;
|
||||
keepAlive?: {
|
||||
/**
|
||||
* Enable heartbeat messages
|
||||
* @default false
|
||||
*/
|
||||
enabled: boolean;
|
||||
/**
|
||||
* Heartbeat interval in milliseconds
|
||||
* @default 30_000
|
||||
*/
|
||||
pingMs?: number;
|
||||
/**
|
||||
* Terminate the WebSocket if no pong is received after this many milliseconds
|
||||
* @default 5_000
|
||||
*/
|
||||
pongWaitMs?: number;
|
||||
};
|
||||
/**
|
||||
* Disable responding to ping messages from the client
|
||||
* **Not recommended** - this is mainly used for testing
|
||||
* @default false
|
||||
*/
|
||||
dangerouslyDisablePong?: boolean;
|
||||
/**
|
||||
* Custom encoder for wire encoding (e.g. custom binary formats)
|
||||
* @default jsonEncoder
|
||||
*/
|
||||
experimental_encoder?: Encoder;
|
||||
};
|
||||
declare function getWSConnectionHandler<TRouter extends AnyRouter>(opts: WSSHandlerOptions<TRouter>): (client: ws.WebSocket, req: IncomingMessage) => void;
|
||||
/**
|
||||
* Handle WebSocket keep-alive messages
|
||||
*/
|
||||
declare function handleKeepAlive(client: ws.WebSocket, pingMs?: number, pongWaitMs?: number): void;
|
||||
declare function applyWSSHandler<TRouter extends AnyRouter>(opts: WSSHandlerOptions<TRouter>): {
|
||||
broadcastReconnectNotification: () => void;
|
||||
};
|
||||
//#endregion
|
||||
export { CreateWSSContextFn, CreateWSSContextFnOptions, Encoder, WSConnectionHandlerOptions, WSSHandlerOptions, applyWSSHandler, getWSConnectionHandler, handleKeepAlive, jsonEncoder };
|
||||
//# sourceMappingURL=ws.d.mts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ws.d.mts","names":[],"sources":["../../src/adapters/wsEncoder.ts","../../src/adapters/ws.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;AAYA;;;;AAIsC,UAJrB,OAAA,CAIqB;EAAU;EAOnC,MAAA,CAAA,IAAA,EAAA,OAWZ,CAAA,EAAA,MAXyB,GATQ,UAoBjC;;wBAlBuB,cAAc;;ACqCtC;;;;AAAwC,cD9B3B,WC8B2B,ED9Bd,OC8Bc;AAA8B;;;;ADzCtE;;AAEkC,KCuCtB,yBAAA,GAA4B,8BDvCN,CCwChC,eDxCgC,ECyChC,EAAA,CAAG,SDzC6B,CAAA;;;AAEc;AAOnC,KCsCD,kBDtCc,CAAA,gBCsCqB,SD3B9C,CAAA,GAAA,CAAA,IAAA,EC4BO,yBD5BP,EAAA,GC6BI,YD7BJ,CC6BiB,kBD7BjB,CC6BoC,OD7BpC,CAAA,CAAA;KC+BW,2CAA2C,aACrD,mBAAmB,SAAS,mBAC1B,sBACE,mBAAmB,UACnB,mBAAmB;;;AAhBzB;AAAqC,KAsBzB,iBAtByB,CAAA,gBAsBS,SAtBT,CAAA,GAuBnC,0BAvBmC,CAuBR,OAvBQ,CAAA,GAAA;EAAA,GACnC,EAuBO,EAAA,CAAG,eAvBV;EAAe,MACZ,CAAA,EAAA,MAAA;EAAS,SAF0B,CAAA,EAAA;IAA8B;AAQtE;;;IACQ,OAAA,EAAA,OAAA;IAC6B;;;AAApB;IAEL,MAAA,CAAA,EAAA,MAAA;IAA0B;;;;IACpC,UAAA,CAAA,EAAA,MAAA;EAAkB,CAAA;EAEY;;;;AADP;EAQb,sBAAiB,CAAA,EAAA,OAAA;EAAA;;;;EACD,oBAChB,CAAA,EA6Be,OA7Bf;CAAe;AA6BO,iBAGlB,sBAHkB,CAAA,gBAGqB,SAHrB,CAAA,CAAA,IAAA,EAI1B,iBAJ0B,CAIR,OAJQ,CAAA,CAAA,EAAA,CAAA,MAAA,EAUhB,EAAA,CAAG,SAVa,EAAA,GAAA,EAUG,eAVH,EAAA,GAAA,IAAA;AAGlC;;;AAC0B,iBAidV,eAAA,CAjdU,MAAA,EAkdhB,EAAA,CAAG,SAlda,EAAA,MAAA,CAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA;AAAlB,iBAufQ,eAvfR,CAAA,gBAufwC,SAvfxC,CAAA,CAAA,IAAA,EAwfA,iBAxfA,CAwfkB,OAxflB,CAAA,CAAA,EAAA;EAAiB,8BAMJ,EAAA,GAAA,GAAA,IAAA;CAAS"}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
import "../getErrorShape-BPSzUA7W.mjs";
|
||||
import "../codes-DagpWZLc.mjs";
|
||||
import "../tracked-DWInO6EQ.mjs";
|
||||
import "../parseTRPCMessage-CTow-umk.mjs";
|
||||
import "../resolveResponse-CdASWfAV.mjs";
|
||||
import "../contentTypeParsers-SN4WL9ze.mjs";
|
||||
import "../unstable-core-do-not-import-9NNw8uQM.mjs";
|
||||
import "../observable-UMO3vUa_.mjs";
|
||||
import "../initTRPC-BRf4imah.mjs";
|
||||
import "../http-CWyjOa1l.mjs";
|
||||
import "../node-http-gyWQuCv2.mjs";
|
||||
import "../observable-CUiPknO-.mjs";
|
||||
import { applyWSSHandler, getWSConnectionHandler, handleKeepAlive, jsonEncoder } from "../ws-BoiCYrkt.mjs";
|
||||
|
||||
export { applyWSSHandler, getWSConnectionHandler, handleKeepAlive, jsonEncoder };
|
||||
Reference in New Issue
Block a user