UNPKG

@trpc/server

Version:

The tRPC server library

65 lines (62 loc) 2.07 kB
import '../../unstable-core-do-not-import/rpc/codes.mjs'; import { resolveResponse } from '../../unstable-core-do-not-import/http/resolveResponse.mjs'; import '../../unstable-core-do-not-import/rootConfig.mjs'; import '../../vendor/unpromise/unpromise.mjs'; import '../../unstable-core-do-not-import/stream/utils/disposable.mjs'; import { getPlanner } from './getPlanner.mjs'; function awsLambdaRequestHandler(opts) { return async (event, context)=>{ const planner = getPlanner(event); const createContext = async (innerOpts)=>{ return await opts.createContext?.({ event, context, ...innerOpts }); }; const response = await resolveResponse({ ...opts, createContext, req: planner.request, path: planner.path, error: null, onError (o) { opts?.onError?.({ ...o, req: event }); } }); return await planner.toResult(response); }; } function awsLambdaStreamingRequestHandler(opts) { return async (event, responseStream, context)=>{ const planner = getPlanner(event); if (!planner.toStream) { throw new Error('Streaming is not supported for this event version'); } const createContext = async (innerOpts)=>{ return await opts.createContext?.({ event, context, ...innerOpts }); }; const response = await resolveResponse({ ...opts, createContext, req: planner.request, path: planner.path, error: null, onError (o) { opts?.onError?.({ ...o, req: event }); } }); await planner.toStream(response, responseStream); }; } export { awsLambdaRequestHandler, awsLambdaStreamingRequestHandler };