@carry0987/event-emitter
Advanced tools
Comparing version 1.4.8 to 1.4.9
@@ -127,3 +127,3 @@ class EventEmitter { | ||
// Get all results | ||
const results = this.callbacks[eventName].map(callback => { | ||
const results = this.callbacks[eventName].map((callback) => { | ||
try { | ||
@@ -142,6 +142,8 @@ // Execute callback and capture the result | ||
// Check if any result is a promise | ||
const hasPromise = results.some(result => result instanceof Promise); | ||
const hasPromise = results.some((result) => result instanceof Promise); | ||
// If there is at least one promise, return a promise that resolves when all promises resolve | ||
if (hasPromise) { | ||
return Promise.all(results).then(() => true).catch((e) => { | ||
return Promise.all(results) | ||
.then(() => true) | ||
.catch((e) => { | ||
console.error(`Error handling promises for event: ${eventName}`, e); // Logging error | ||
@@ -177,4 +179,4 @@ return false; | ||
const version = '1.4.8'; | ||
const version = '1.4.9'; | ||
export { EventEmitter, version }; |
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).eventEmitter={})}(this,(function(e){"use strict";e.EventEmitter=class{callbacks={};init(e){e&&!this.callbacks[e]&&(this.callbacks[e]=[])}checkListener(e){if("function"!=typeof e)throw new TypeError("The listener must be a function")}hasEvent(e){return void 0!==this.callbacks[e]}listeners(){return this.callbacks}addListener(e,t){return this.on(e,t)}clearListener(e){return e?this.callbacks[e]=[]:this.callbacks={},this}on(e,t){return this.checkListener(t),this.init(e),this.callbacks[e].push(t),this}off(e,t){t&&this.checkListener(t);const s=e;return this.init(),this.callbacks[s]&&0!==this.callbacks[s].length?(this.callbacks[s]=t?this.callbacks[s].filter((e=>e!==t)):[],this):this}emit(e,...t){const s=e;if(this.init(s),this.callbacks[s].length<=0)return!1;const i=this.callbacks[s].map((e=>{try{const s=e(...t);return s instanceof Promise?s:Promise.resolve(s)}catch(e){return console.error(`Error in event listener for event: ${s}`,e),Promise.resolve()}}));return!i.some((e=>e instanceof Promise))||Promise.all(i).then((()=>!0)).catch((e=>(console.error(`Error handling promises for event: ${s}`,e),!1)))}once(e,t){this.checkListener(t);const s=(...i)=>{const n=t(...i);return this.off(e,s),n instanceof Promise?n:Promise.resolve(n)};return this.on(e,s)}},e.version="1.4.8"})); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).eventEmitter={})}(this,(function(e){"use strict";e.EventEmitter=class{callbacks={};init(e){e&&!this.callbacks[e]&&(this.callbacks[e]=[])}checkListener(e){if("function"!=typeof e)throw new TypeError("The listener must be a function")}hasEvent(e){return void 0!==this.callbacks[e]}listeners(){return this.callbacks}addListener(e,t){return this.on(e,t)}clearListener(e){return e?this.callbacks[e]=[]:this.callbacks={},this}on(e,t){return this.checkListener(t),this.init(e),this.callbacks[e].push(t),this}off(e,t){t&&this.checkListener(t);const s=e;return this.init(),this.callbacks[s]&&0!==this.callbacks[s].length?(this.callbacks[s]=t?this.callbacks[s].filter((e=>e!==t)):[],this):this}emit(e,...t){const s=e;if(this.init(s),this.callbacks[s].length<=0)return!1;const i=this.callbacks[s].map((e=>{try{const s=e(...t);return s instanceof Promise?s:Promise.resolve(s)}catch(e){return console.error(`Error in event listener for event: ${s}`,e),Promise.resolve()}}));return!i.some((e=>e instanceof Promise))||Promise.all(i).then((()=>!0)).catch((e=>(console.error(`Error handling promises for event: ${s}`,e),!1)))}once(e,t){this.checkListener(t);const s=(...i)=>{const n=t(...i);return this.off(e,s),n instanceof Promise?n:Promise.resolve(n)};return this.on(e,s)}},e.version="1.4.9"})); |
{ | ||
"name": "@carry0987/event-emitter", | ||
"version": "1.4.8", | ||
"version": "1.4.9", | ||
"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.", | ||
@@ -41,7 +41,9 @@ "type": "module", | ||
"@rollup/plugin-typescript": "^12.1.1", | ||
"@types/node": "^22.7.7", | ||
"rollup": "^4.24.0", | ||
"@types/node": "^22.9.3", | ||
"prettier": "^3.3.3", | ||
"rollup": "^4.27.4", | ||
"rollup-plugin-dts": "^6.1.1", | ||
"tslib": "^2.8.0", | ||
"vitest": "^2.1.3" | ||
"rollup-plugin-tsconfig-paths": "^1.5.2", | ||
"tslib": "^2.8.1", | ||
"vitest": "^2.1.5" | ||
}, | ||
@@ -53,4 +55,5 @@ "scripts": { | ||
"build:dts": "rollup --config rollup.config.ts --configPlugin typescript --environment BUILD:dts", | ||
"build": "npm run build:js && npm run build:dts" | ||
"build": "npm run build:js && npm run build:dts", | ||
"lint": "prettier --write \"src/**/*.{ts,tsx,scss}\" \"test/**/*.{ts,tsx}\"" | ||
} | ||
} |
20335
269
11