From f1373a167b3171eda6812ffb9b15c991c908f1f5 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Mon, 29 Dec 2014 22:47:05 +0300 Subject: [PATCH] some refactoring... Signed-off-by: Alex A. Naanou --- index.js | 47 ++++++++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/index.js b/index.js index cfbc9ee..f8cb9c1 100644 --- a/index.js +++ b/index.js @@ -4,6 +4,28 @@ * **********************************************************************/ +// Clear event cache... +// +// This is added as a method to the emitter passed to guaranteeEvents(..)... +// +// NOTE: his has the same event names semantics as guaranteeEvents(..) +// NOTE: for more info see docs for guaranteeEvents(..) +function clearGuaranteedQueue(names){ + names = names == '*' ? Object.keys(this._guaranteed_queue) + : typeof(names) == typeof('str') ? names.split(/\s+/g) + : names + + var that = this + names.forEach(function(name){ + if(name in that._guaranteed_queue){ + that._guaranteed_queue[name] = [] + } + }) + + return this +} + + // Guarantee that every event handler gets every event... // // guaranteeEvents('event', emitter) @@ -28,29 +50,12 @@ // // NOTE: the seen stack might get quite big, this is not recommended for // long running emitters... -// -var guaranteeEvents = -module.exports = -function(names, emitter){ +function guaranteeEvents(names, emitter){ names = typeof(names) == typeof('str') ? names.split(/\s+/g) : names // add ability to clear the queue... if(emitter.clearGuaranteedQueue == null){ - emitter.clearGuaranteedQueue = function(names){ - names = names == '*' ? Object.keys(this._guaranteed_queue) - : typeof(names) == typeof('str') ? names.split(/\s+/g) - : names - - var that = this - names.forEach(function(name){ - if(name in that._guaranteed_queue){ - that._guaranteed_queue[name] = [] - } - }) - - return this - } - + emitter.clearGuaranteedQueue = clearGuaranteedQueue emitter._guaranteed_queue = {} } @@ -81,6 +86,10 @@ function(names, emitter){ } +// this is the only thing we are exporting... +module.exports = guaranteeEvents + + /********************************************************************** * vim:set ts=4 sw=4 : */