emit
Emit an event that will be processed by registered event subscribers.
Import
import { emit } from '@evershop/evershop/lib/event';
Syntax
// Typed event (recommended)
emit<EventName>(name: EventName, data: EventData): Promise<void>
// Untyped event
emit(name: string, data: Record<string, any>): Promise<void>
Parameters
name
Type: string or EventName
The name of the event to emit.
data
Type: Record<string, any> or typed event data
The data to pass to event subscribers.
Return Value
Returns Promise<void>.
Examples
Basic Event
import { emit } from '@evershop/evershop/lib/event';
// Emit a simple event
await emit('customer_registered', {
customer_id: 123,
email: 'customer@example.com'
});
Typed Event (TypeScript)
import { emit } from '@evershop/evershop/lib/event';
// With type safety
await emit<'customer_created'>('customer_created', {
customer_id: 123,
email: 'customer@example.com',
full_name: 'John Doe',
created_at: new Date()
});
Event Processing
Events are stored in the database and processed asynchronously by subscribers:
- Event is inserted into the
eventtable - Event subscribers are triggered
- Each subscriber processes the event independently
Notes
- Events are processed asynchronously
- Event data is stored in the database
- Subscribers are registered during bootstrap
- Multiple subscribers can listen to the same event
- Events are processed in order of subscriber priority
- Use typed events for better TypeScript support
- Common events:
product_created,order_placed,customer_registered, etc.
See Also
- Events and Subscribers - Learn about event subscribers and how to register them.