New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@carry0987/event-emitter

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@carry0987/event-emitter - npm Package Compare versions

Comparing version 1.1.0 to 1.1.1

12

dist/index.d.ts

@@ -7,9 +7,9 @@ type EventArgs<T> = [T] extends [(...args: infer U) => any] ? U : [T] extends [void] ? [] : [T];

listeners(): {
[event: string]: ((...args: any[]) => void)[];
[event: string]: ((...args: any[]) => void | Promise<void>)[];
};
addListener<EventName extends keyof EventTypes>(event: EventName, listener: (...args: EventArgs<EventTypes[EventName]>) => void): EventEmitter<EventTypes>;
on<EventName extends keyof EventTypes>(event: EventName, listener: (...args: EventArgs<EventTypes[EventName]>) => void): EventEmitter<EventTypes>;
off<EventName extends keyof EventTypes>(event: EventName, listener: (...args: EventArgs<EventTypes[EventName]>) => void): EventEmitter<EventTypes>;
emit<EventName extends keyof EventTypes>(event: EventName, ...args: EventArgs<EventTypes[EventName]>): boolean;
once<EventName extends keyof EventTypes>(event: EventName, listener: (...args: EventArgs<EventTypes[EventName]>) => void): EventEmitter<EventTypes>;
addListener<EventName extends keyof EventTypes>(event: EventName, listener: (...args: EventArgs<EventTypes[EventName]>) => void | Promise<void>): EventEmitter<EventTypes>;
on<EventName extends keyof EventTypes>(event: EventName, listener: (...args: EventArgs<EventTypes[EventName]>) => void | Promise<void>): EventEmitter<EventTypes>;
off<EventName extends keyof EventTypes>(event: EventName, listener: (...args: EventArgs<EventTypes[EventName]>) => void | Promise<void>): EventEmitter<EventTypes>;
emit<EventName extends keyof EventTypes>(event: EventName, ...args: EventArgs<EventTypes[EventName]>): Promise<boolean>;
once<EventName extends keyof EventTypes>(event: EventName, listener: (...args: EventArgs<EventTypes[EventName]>) => void | Promise<void>): EventEmitter<EventTypes>;
}

@@ -16,0 +16,0 @@

@@ -30,3 +30,3 @@ class EventEmitter {

}
emit(event, ...args) {
async emit(event, ...args) {
const eventName = event;

@@ -37,3 +37,4 @@ // Initialize the event

if (this.callbacks[eventName].length > 0) {
this.callbacks[eventName].forEach((value) => value(...args));
// Execute all callbacks and wait for them to complete if they are promises
await Promise.all(this.callbacks[eventName].map(async (value) => await value(...args)));
return true;

@@ -44,4 +45,4 @@ }

once(event, listener) {
const onceListener = (...args) => {
listener(...args);
const onceListener = async (...args) => {
await listener(...args);
this.off(event, onceListener);

@@ -53,4 +54,4 @@ };

const version = '1.1.0';
const version = '1.1.1';
export { EventEmitter, version };
{
"name": "@carry0987/event-emitter",
"version": "1.1.0",
"version": "1.1.1",
"description": "EventEmitter is a TypeScript library that provides a simple yet powerful event-handling mechanism. It allows you to define and manage events in your application.",

@@ -5,0 +5,0 @@ "type": "module",

@@ -10,2 +10,3 @@ # EventEmitter-JS

- Flexible event management
- Support for both synchronous and asynchronous event listeners

@@ -85,17 +86,31 @@ ## Installation

### Using Asynchronous Event Listeners
Add asynchronous event listeners using the `on` or `once` method:
```typescript
emitter.on('greet', async (message) => {
await new Promise(resolve => setTimeout(resolve, 1000));
console.log(`Async Listener: ${message}`);
});
emitter.emit('greet', 'Hello, async world!').then(() => {
console.log('All async listeners have been called.');
});
```
## API
### `on(event: EventName, listener: (...args: any[]) => void): EventEmitter`
### `on(event: EventName, listener: (...args: any[]) => void | Promise<void>): EventEmitter`
Registers an event listener for the specified event.
### `off(event: EventName, listener: (...args: any[]) => void): EventEmitter`
### `off(event: EventName, listener: (...args: any[]) => void | Promise<void>): EventEmitter`
Removes the specified event listener.
### `emit(event: EventName, ...args: any[]): boolean`
Emits the specified event, calling all registered listeners with the provided arguments.
### `emit(event: EventName, ...args: any[]): Promise<boolean>`
Emits the specified event, calling all registered listeners with the provided arguments. Returns a promise that resolves to `true` if there were listeners, and `false` otherwise.
### `once(event: EventName, listener: (...args: any[]) => void): EventEmitter`
### `once(event: EventName, listener: (...args: any[]) => void | Promise<void>): EventEmitter`
Registers a one-time event listener for the specified event. The listener will be called at most once after being added.
### `listeners(): { [event: string]: ((...args: any[]) => void)[] }`
### `listeners(): { [event: string]: ((...args: any[]) => void | Promise<void>)[] }`
Returns an object containing all registered event listeners.

@@ -102,0 +117,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc