[PR #5857] [CLOSED] feat: add typed event emitter #23181

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

📋 Pull Request Information

Original PR: https://github.com/better-auth/better-auth/pull/5857
Author: @jslno
Created: 11/8/2025
Status: Closed

Base: canaryHead: feat/events


📝 Commits (5)

📊 Changes

14 files changed (+134 additions, -2 deletions)

View changed files

📝 packages/better-auth/src/__snapshots__/init.test.ts.snap (+5 -0)
📝 packages/better-auth/src/api/routes/callback.ts (+4 -0)
📝 packages/better-auth/src/api/routes/email-verification.ts (+1 -0)
📝 packages/better-auth/src/api/routes/reset-password.ts (+1 -0)
📝 packages/better-auth/src/api/routes/sign-in.ts (+6 -0)
📝 packages/better-auth/src/api/routes/sign-out.ts (+2 -0)
📝 packages/better-auth/src/api/routes/sign-up.ts (+4 -0)
📝 packages/better-auth/src/auth.ts (+9 -1)
📝 packages/better-auth/src/init.ts (+7 -1)
packages/better-auth/src/utils/events.ts (+22 -0)
📝 packages/core/src/types/context.ts (+6 -0)
packages/core/src/types/events.ts (+52 -0)
📝 packages/core/src/types/index.ts (+5 -0)
📝 packages/core/src/types/plugin.ts (+10 -0)

📄 Description

Related: #5673

Introduces a built in event emitter.
Unlike hooks, it allows multiple independent listeners to subscribe to the same event from anywhere in userland.


Summary by cubic

Adds a built-in, typed event emitter to BetterAuth and emits default auth lifecycle events (signIn, signOut, signUp, verifyEmail, passwordReset). Apps and plugins can subscribe from anywhere with strong types.

  • New Features
    • Added EventEmitter/EventMixin with default events and plugin-extensible types.
    • Exposed auth.event and wired the emitter into AuthContext/init.
    • Emitting events in core routes: sign-in, sign-out, sign-up, email verification, and password reset.

Written for commit e3602b4be7. Summary will update automatically on new commits.


🔄 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/5857 **Author:** [@jslno](https://github.com/jslno) **Created:** 11/8/2025 **Status:** ❌ Closed **Base:** `canary` ← **Head:** `feat/events` --- ### 📝 Commits (5) - [`2dda68f`](https://github.com/better-auth/better-auth/commit/2dda68f8a148b1a58c86e3c727415ae36a1b967a) feat: events - [`1e0aa8c`](https://github.com/better-auth/better-auth/commit/1e0aa8cd89ea41a94eb7c80e346eaec9ac5720a7) chore: emit default events - [`7960986`](https://github.com/better-auth/better-auth/commit/7960986d048a8ec2d0fb9ca8050cf6573ec4801f) chore: fix types - [`9b04151`](https://github.com/better-auth/better-auth/commit/9b04151658f42515fdafedad9df05f72126c32ad) chore: fix linting - [`e3602b4`](https://github.com/better-auth/better-auth/commit/e3602b4be79f78bddf458820a9d92e5a194b10da) chore: update init snapshot ### 📊 Changes **14 files changed** (+134 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `packages/better-auth/src/__snapshots__/init.test.ts.snap` (+5 -0) 📝 `packages/better-auth/src/api/routes/callback.ts` (+4 -0) 📝 `packages/better-auth/src/api/routes/email-verification.ts` (+1 -0) 📝 `packages/better-auth/src/api/routes/reset-password.ts` (+1 -0) 📝 `packages/better-auth/src/api/routes/sign-in.ts` (+6 -0) 📝 `packages/better-auth/src/api/routes/sign-out.ts` (+2 -0) 📝 `packages/better-auth/src/api/routes/sign-up.ts` (+4 -0) 📝 `packages/better-auth/src/auth.ts` (+9 -1) 📝 `packages/better-auth/src/init.ts` (+7 -1) ➕ `packages/better-auth/src/utils/events.ts` (+22 -0) 📝 `packages/core/src/types/context.ts` (+6 -0) ➕ `packages/core/src/types/events.ts` (+52 -0) 📝 `packages/core/src/types/index.ts` (+5 -0) 📝 `packages/core/src/types/plugin.ts` (+10 -0) </details> ### 📄 Description Related: #5673 Introduces a built in event emitter. Unlike hooks, it allows multiple independent listeners to subscribe to the same event from anywhere in userland. <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds a built-in, typed event emitter to BetterAuth and emits default auth lifecycle events (signIn, signOut, signUp, verifyEmail, passwordReset). Apps and plugins can subscribe from anywhere with strong types. - **New Features** - Added EventEmitter/EventMixin with default events and plugin-extensible types. - Exposed auth.event and wired the emitter into AuthContext/init. - Emitting events in core routes: sign-in, sign-out, sign-up, email verification, and password reset. <sup>Written for commit e3602b4be79f78bddf458820a9d92e5a194b10da. Summary will update automatically on new commits.</sup> <!-- 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:32:11 -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#23181