Replace void returns with { success: true } across all API endpoints

- Add successResponseSchema to common.ts for explicit success responses
- Update all auth, me, orgs, and admin procedures to return { success: true }
- Update contract.ts to use successResponseSchema instead of z.void()
- Add ast-grep rule to prevent future z.void() usage in contracts
- Add build:packages script to root package.json
- Fix test file lint errors with eslint-disable comments

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
RevIQ
2026-01-10 16:30:22 +08:00
parent 5e13809c0e
commit 1bf05465c3
31 changed files with 179 additions and 53 deletions

View File

@@ -123,6 +123,8 @@ export const invitesCreate = os.orgs.invites.create
// Send invitation email
const inviterName = context.user.displayName ?? context.user.email;
await sendOrgInviteEmail(email, token, org.displayName, inviterName, role);
return { success: true };
});
/**
@@ -149,6 +151,8 @@ export const invitesCancel = os.orgs.invites.cancel
if (!result.numDeletedRows || result.numDeletedRows === 0n) {
throw new ORPCError("NOT_FOUND", { message: "Invitation not found" });
}
return { success: true };
});
/**
@@ -219,4 +223,6 @@ export const invitesAccept = os.orgs.invites.accept
}
throw error;
}
return { success: true };
});

View File

@@ -39,6 +39,8 @@ export const orgsUpdate = os.orgs.update
.set(updates)
.where("id", "=", org.id)
.execute();
return { success: true };
});
/**
@@ -57,6 +59,8 @@ export const orgsDelete = os.orgs.delete
requireRole(membership, "owner");
await context.db.deleteFrom("orgs").where("id", "=", org.id).execute();
return { success: true };
});
/**
@@ -92,4 +96,6 @@ export const orgsLeave = os.orgs.leave
.where("user_id", "=", context.user.id)
.execute();
});
return { success: true };
});

View File

@@ -95,6 +95,8 @@ export const membersUpdateRole = os.orgs.members.updateRole
.where("id", "=", targetMember.id)
.execute();
});
return { success: true };
});
/**
@@ -155,4 +157,6 @@ export const membersRemove = os.orgs.members.remove
.where("id", "=", targetMember.id)
.execute();
});
return { success: true };
});