trpc-remix-call
Version:
Trpc adapter for Remix with api handler and server side call.
54 lines (53 loc) • 1.2 kB
JavaScript
// src/index.ts
import { fetchRequestHandler } from "@trpc/server/adapters/fetch";
var createRemixCaller = ({
caller,
adapter,
onContextReady
}) => async (request) => {
const ctx = await adapter(request);
if (onContextReady) {
await onContextReady(ctx);
}
return caller(ctx);
};
var createSafeRemixCaller = ({
caller,
adapter,
onContextReady,
formatError
}) => {
const remixCaller = createRemixCaller({ caller, adapter, onContextReady });
return async (request, callBack) => {
try {
const caller2 = await remixCaller(request);
const data = await callBack(caller2);
return { success: true, data, error: null };
} catch (err) {
const error = await formatError(err);
return { success: false, error, data: null };
}
};
};
var createTrpcRemixHandler = ({
router,
adapter,
onContextReady,
endpoint
}) => async (args) => {
const ctx = await adapter(args.request);
if (onContextReady) {
await onContextReady(ctx);
}
return fetchRequestHandler({
endpoint,
req: args.request,
router,
createContext: () => ctx
});
};
export {
createRemixCaller,
createSafeRemixCaller,
createTrpcRemixHandler
};