@agentlib/utils
Common utilities for AgentLIB — shared helpers and event system used across packages.Installation
Overview
The@agentlib/utils package provides low-level utilities used throughout AgentLIB:
- EventEmitter: Type-safe, async event emitter
- Shared helper functions
- Common types
@agentlib/core.
EventEmitter
A fully typed, async-first event emitter used by agents, orchestrators, and other components.Quick Start
Type Safety
API Reference
on(event, handler)
Subscribe to an event:
this (chainable)
once(event, handler)
Subscribe to an event once (auto-unsubscribes after first call):
this (chainable)
off(event, handler)
Unsubscribe from an event:
this (chainable)
emit(event, payload)
Emit an event asynchronously (waits for all handlers):
Promise<void>
emitSync(event, payload)
Emit an event synchronously (fire-and-forget):
void
Usage Examples
Basic Events
Async Handlers
Error Handling
Method Chaining
Unsubscribing
One-Time Events
Integration with AgentLIB
Agents extendEventEmitter:
EventEmitter:
Types
EventMap
Defines the shape of your event system:EventHandler
Function signature for event handlers:Best Practices
-
Always define event types:
-
Use
awaitwithemitfor critical events: -
Use
emitSyncfor fire-and-forget events: -
Handle errors in async handlers:
-
Clean up listeners:
Requirements
- Node.js: >= 18.0.0
- No dependencies
Exports
Classes
EventEmitter<TEvents>- Generic event emitter
Types
EventMap- Event definition map typeEventHandler<T>- Event handler function type
Related Packages
- @agentlib/core - Uses EventEmitter for agents
- @agentlib/orchestrator - Uses EventEmitter for orchestration