MayankM
tRPC3y ago
Mayank

Question: Is there a way to have a base interface for Trpc router?

Hi, So I am trying to see if there is way to keep methods inside trpc routes consistent,

Like in case of classes you could define an interface with required functions. Is there a way to do this in Trpc router aswell?

Like ex:

interface A { function X(L: string){} }

class B implements A {} // error missing function X


Similarly I would like to know if its possible to do with trpc router routes aswell. As I have multiple routes with similar methods.


What i tried

interface MyMethods {
  stateSubscribe: (
    input: undefined,
    opts: { onData: (state: string) => void },
  ) => void;
}

export const campaignRouter = createTRPCRouter<MyMethods>({
  createCampaign: protectedProcedure.query(({ ctx }) => {
    throw new TRPCError({
      message: "Not implemented",
      code: "NOT_IMPLEMENTED",
    });
  }),
  stateSubscribe: protectedProcedure.query(({ ctx }) => {
    throw new TRPCError({
      message: "Not implemented",
      code: "NOT_IMPLEMENTED",
    });
  }),
});


Any help would be wonderful.
Was this page helpful?