Type of createServerSideHelpers?

Nnehalist4/16/2023
I'm currently trying to implement a helper for getServerSideProps to reduce duplication. It's still wip, but I'm encountering a problem I can't figure out:

export async function createServerSideProps(
  ctx: GetServerSidePropsContext,
  callback: (helpers/**: ???? */) => Record<string, any>
) {
  const helpers = createServerSideHelpers({
    router: appRouter,
    ctx: {
      user: await getServerSession(ctx.req, ctx.res, authOptions),
    },
    transformer: superjson,
  });

  const props = callback(helpers);

  return {
    props,
  };
}


What's the type of helpers in the callback?
Nnehalist4/16/2023
Figured it out myself:

export async function createServerSideProps(
  ctx: GetServerSidePropsContext,
  callback: (
    helpers: DecoratedProcedureSSGRecord<AppRouter>
  ) => Record<string, any>
) {
  const helpers = createServerSideHelpers({
    router: appRouter,
    ctx: {
      user: await getServerSession(ctx.req, ctx.res, authOptions),
    },
    transformer: superjson,
  });

  const props = await callback(helpers);

  return {
    props: {
      trpcState: helpers.dehydrate(),
      ...props,
    },
  };
}
Bbigshot8245/2/2023
Hello bro.. How do you implement this and where did you put the code? I just got an error "PrismaClient is unable to be run in the browser" [next js]
Bbigshot8245/2/2023
this is how I apply. @nehalist
Nnehalist5/2/2023
seems like somewhere in your code you're referencing prisma on the client
Bbigshot8245/2/2023
hmMmMm... I'll take a look on that and let you know 👍