type GetProceduresRecusivelyAndAssignPermissions<T extends AnyRouter> = {
[K in keyof T]: T[K] extends AnyProcedure
? { permissions: string[] }
: T[K] extends AnyRouter
? GetProceduresRecusivelyAndAssignPermissions<T[K]>
: never;
};
const permissions: GetProceduresRecusivelyAndAssignPermissions<
typeof appRouter
> = {
example: { getData: { permissions: ["canGetData"] } },
};
type GetProceduresRecusivelyAndAssignPermissions<T extends AnyRouter> = {
[K in keyof T]: T[K] extends AnyProcedure
? { permissions: string[] }
: T[K] extends AnyRouter
? GetProceduresRecusivelyAndAssignPermissions<T[K]>
: never;
};
const permissions: GetProceduresRecusivelyAndAssignPermissions<
typeof appRouter
> = {
example: { getData: { permissions: ["canGetData"] } },
};