denik1981
denik1981
TtRPC
Created by denik1981 on 1/25/2023 in #❓-help
Is it ok to use a createCaller() router within ServerSideProps?
To add more context to the post what I'm basically doing is: In the server
// server - appRouter is the API trpc router

export async function createContextInner(opts: CreateInnerContextOptions) {
return {
session: opts.session,
};
}

export type Context = inferAsyncReturnType<typeof createContextInner>

export const caller = async (ctx: Context) =>
appRouter.createCaller(await createContextInner(ctx));
// server - appRouter is the API trpc router

export async function createContextInner(opts: CreateInnerContextOptions) {
return {
session: opts.session,
};
}

export type Context = inferAsyncReturnType<typeof createContextInner>

export const caller = async (ctx: Context) =>
appRouter.createCaller(await createContextInner(ctx));
In ServerSideProps
export async function getServerSideProps(ctx: GetServerSidePropsContext) {
const session = await unstable_getServerSession(
ctx.req,
ctx.res,
authOptions
);

const c = await caller({ session });

// this procedure use the session context object
const user = await c.user.me();

return session
? { redirect: { permanent: false, destination: `/${user.type}/member` } }
: { props: {} };
}
export async function getServerSideProps(ctx: GetServerSidePropsContext) {
const session = await unstable_getServerSession(
ctx.req,
ctx.res,
authOptions
);

const c = await caller({ session });

// this procedure use the session context object
const user = await c.user.me();

return session
? { redirect: { permanent: false, destination: `/${user.type}/member` } }
: { props: {} };
}
2 replies