From d0fb9f3255d8e08c9bea7e9d83770dfb0b110989 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 1 Dec 2018 20:39:18 +0100 Subject: [PATCH] Add regex group trigger support --- Event/EventManager.js | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/Event/EventManager.js b/Event/EventManager.js index 3575cae..f155e25 100644 --- a/Event/EventManager.js +++ b/Event/EventManager.js @@ -111,7 +111,43 @@ */ trigger (group, id = '', data = null) { - if (!this.callbacks.hasOwnProperty(group) || Math.abs(Date.now() - this.callbacks[group].lastRun) < 500) { + if (this.callbacks.hasOwnProperty(group)) { + return this.triggerSingleEvent(); + } + + const allGroups = Object.keys(this.callbacks), + regex = new RegExp($group), + length = allGroups.length; + + let result = false; + + for (let i = 0; i < length; ++i) { + if (regex.test(allGroups[i])) { + result = result && this.triggerSingleEvent(allGroups[i], id, data); + } + } + + return result; + }; + + /** + * Trigger event finished + * + * Executes the callback specified for this group if all events are finished + * + * @param {string|int} group Group id + * @param {string|int} [id] Event id + * @param {Object} [data] Data for event + * + * @return {boolean} + * + * @method + * + * @since 1.0.0 + */ + triggerSingleEvent (group, id = '', data = null) + { + if (Math.abs(Date.now() - this.callbacks[group].lastRun) < 500) { return false; }