[PR #5216] [CLOSED] fix(organization): remove explicit undefined from optional types and add schema type annotations #22760

Closed
opened 2026-04-15 21:15:38 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/better-auth/better-auth/pull/5216
Author: @notsliver
Created: 10/10/2025
Status: Closed

Base: canaryHead: fix/organization-undefined-removal


📝 Commits (2)

  • fda34e0 fix(organization): remove explicit undefined from optional types and add schema type annotations
  • a8be532 refactor(organization): improve code formatting and maintainability in organization routes and schemas

📊 Changes

5 files changed (+15 additions, -14 deletions)

View changed files

📝 packages/better-auth/src/plugins/organization/organization.ts (+4 -3)
📝 packages/better-auth/src/plugins/organization/routes/crud-access-control.ts (+7 -7)
📝 packages/better-auth/src/plugins/organization/routes/crud-invites.ts (+1 -1)
📝 packages/better-auth/src/plugins/organization/routes/crud-members.ts (+2 -2)
📝 packages/better-auth/src/plugins/organization/routes/crud-org.ts (+1 -1)

📄 Description

Users no longer need workarounds like declaration: false or as ReturnType<typeof betterAuth> type assertions. The plugin now works correctly with:

dynamicAccessControl enabled
additionalFields in organization schema
exactOptionalPropertyTypes: true in tsconfig


Summary by cubic

Removed explicit undefined from optional types and added schema type annotations in the organization plugin to avoid undefined spreads and fix TypeScript compatibility. This resolves type issues with dynamic access control and additionalFields and works with exactOptionalPropertyTypes enabled.

  • Bug Fixes
    • Typed teamSchema, organizationRoleSchema, and schema as BetterAuthPluginDBSchema to prevent undefined when spreading.
    • Cleaned endpoint metadata ($Infer) to use optional fields without “| undefined” (e.g., organizationId, teamId, roleName).
    • Ensured routes work with dynamicAccessControl and additionalFields.
    • Fixes #5119 and #5122.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/better-auth/better-auth/pull/5216 **Author:** [@notsliver](https://github.com/notsliver) **Created:** 10/10/2025 **Status:** ❌ Closed **Base:** `canary` ← **Head:** `fix/organization-undefined-removal` --- ### 📝 Commits (2) - [`fda34e0`](https://github.com/better-auth/better-auth/commit/fda34e0ec3a941f9886b4a9f697bd4fb2bde0f23) fix(organization): remove explicit undefined from optional types and add schema type annotations - [`a8be532`](https://github.com/better-auth/better-auth/commit/a8be5324b644c634a684c247b9ea0b7485a063e4) refactor(organization): improve code formatting and maintainability in organization routes and schemas ### 📊 Changes **5 files changed** (+15 additions, -14 deletions) <details> <summary>View changed files</summary> 📝 `packages/better-auth/src/plugins/organization/organization.ts` (+4 -3) 📝 `packages/better-auth/src/plugins/organization/routes/crud-access-control.ts` (+7 -7) 📝 `packages/better-auth/src/plugins/organization/routes/crud-invites.ts` (+1 -1) 📝 `packages/better-auth/src/plugins/organization/routes/crud-members.ts` (+2 -2) 📝 `packages/better-auth/src/plugins/organization/routes/crud-org.ts` (+1 -1) </details> ### 📄 Description Users no longer need workarounds like `declaration: false` or `as ReturnType<typeof betterAuth>` type assertions. The plugin now works correctly with: dynamicAccessControl enabled additionalFields in organization schema exactOptionalPropertyTypes: true in tsconfig - Fixed [Issue #5119](https://github.com/better-auth/better-auth/issues/5119) - Fixed [Issue #5122](https://github.com/better-auth/better-auth/issues/5122) <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Removed explicit undefined from optional types and added schema type annotations in the organization plugin to avoid undefined spreads and fix TypeScript compatibility. This resolves type issues with dynamic access control and additionalFields and works with exactOptionalPropertyTypes enabled. - **Bug Fixes** - Typed teamSchema, organizationRoleSchema, and schema as BetterAuthPluginDBSchema to prevent undefined when spreading. - Cleaned endpoint metadata ($Infer) to use optional fields without “| undefined” (e.g., organizationId, teamId, roleName). - Ensured routes work with dynamicAccessControl and additionalFields. - Fixes #5119 and #5122. <!-- End of auto-generated description by cubic. --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-15 21:15:38 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/better-auth#22760