metal-events
Advanced tools
Comparing version 2.14.0 to 2.15.0
@@ -27,3 +27,2 @@ 'use strict'; | ||
* EventEmitter utility. | ||
* @constructor | ||
* @extends {Disposable} | ||
@@ -35,2 +34,5 @@ */ | ||
/** | ||
* EventEmitter constructor | ||
*/ | ||
function EventEmitter() { | ||
@@ -95,3 +97,3 @@ _classCallCheck(this, EventEmitter); | ||
* @param {!Function} listener | ||
* @param {boolean} opt_default Flag indicating if this listener is a default | ||
* @param {boolean} defaultListener Flag indicating if this listener is a default | ||
* action for this event. Default actions are run last, and only if no previous | ||
@@ -104,3 +106,3 @@ * listener call `preventDefault()` on the received event facade. | ||
key: 'addListener', | ||
value: function addListener(event, listener, opt_default) { | ||
value: function addListener(event, listener, defaultListener) { | ||
this.validateListener_(listener); | ||
@@ -110,3 +112,3 @@ | ||
for (var i = 0; i < events.length; i++) { | ||
this.addSingleListener_(events[i], listener, opt_default); | ||
this.addSingleListener_(events[i], listener, defaultListener); | ||
} | ||
@@ -121,7 +123,6 @@ | ||
* @param {!Function} listener | ||
* @param {boolean} opt_default Flag indicating if this listener is a default | ||
* @param {boolean} defaultListener Flag indicating if this listener is a default | ||
* action for this event. Default actions are run last, and only if no previous | ||
* listener call `preventDefault()` on the received event facade. | ||
* @return {!EventHandle} Can be used to remove the listener. | ||
* @param {Function=} opt_origin The original function that was added as a | ||
* @param {Function=} origin The original function that was added as a | ||
* listener, if there is any. | ||
@@ -133,9 +134,9 @@ * @protected | ||
key: 'addSingleListener_', | ||
value: function addSingleListener_(event, listener, opt_default, opt_origin) { | ||
value: function addSingleListener_(event, listener, defaultListener, origin) { | ||
this.runListenerHandlers_(event); | ||
if (opt_default || opt_origin) { | ||
if (defaultListener || origin) { | ||
listener = { | ||
default: opt_default, | ||
default: defaultListener, | ||
fn: listener, | ||
origin: opt_origin | ||
origin: origin | ||
}; | ||
@@ -195,3 +196,3 @@ } | ||
var args = _metal.array.slice(arguments, 1); | ||
var args = _metal.array.slice(arguments, 1); // eslint-disable-line | ||
this.runListeners_(listeners, args, this.buildFacade_(event)); | ||
@@ -284,2 +285,5 @@ return true; | ||
/** | ||
* | ||
*/ | ||
function handlerInternal() { | ||
@@ -289,3 +293,3 @@ if (--amount === 0) { | ||
} | ||
listener.apply(self, arguments); | ||
listener.apply(self, arguments); // eslint-disable-line | ||
} | ||
@@ -309,3 +313,4 @@ | ||
var fn = listenerObj.fn || listenerObj; | ||
return fn === listener || listenerObj.origin && listenerObj.origin === listener; | ||
return fn === listener || listenerObj.origin && listenerObj.origin === listener // eslint-disable-line | ||
; | ||
} | ||
@@ -316,3 +321,3 @@ | ||
* Caution: changes array indices in the listener array behind the listener. | ||
* @param {!(Array|string)} events | ||
* @param {!(Array|string)} event | ||
* @param {!Function} listener | ||
@@ -348,3 +353,3 @@ * @return {!Object} Returns emitter, so calls can be chained. | ||
value: function on() { | ||
return this.addListener.apply(this, arguments); | ||
return this.addListener.apply(this, arguments); // eslint-disable-line | ||
} | ||
@@ -355,3 +360,3 @@ | ||
* instance. | ||
* @param {!function()} | ||
* @param {!function()} handler | ||
*/ | ||
@@ -362,3 +367,3 @@ | ||
value: function onListener(handler) { | ||
this.listenerHandlers_ = this.addHandler_(this.listenerHandlers_, handler); | ||
this.listenerHandlers_ = this.addHandler_(this.listenerHandlers_, handler); // eslint-disable-line | ||
} | ||
@@ -384,3 +389,3 @@ | ||
* especially when it's on an emitter that you didn't create. | ||
* @param {(Array|string)=} opt_events | ||
* @param {(Array|string)=} event | ||
* @return {!Object} Returns emitter, so calls can be chained. | ||
@@ -391,6 +396,6 @@ */ | ||
key: 'removeAllListeners', | ||
value: function removeAllListeners(opt_events) { | ||
value: function removeAllListeners(event) { | ||
if (this.events_) { | ||
if (opt_events) { | ||
var events = this.toEventsArray_(opt_events); | ||
if (event) { | ||
var events = this.toEventsArray_(event); | ||
for (var i = 0; i < events.length; i++) { | ||
@@ -438,3 +443,3 @@ this.events_[events[i]] = null; | ||
value: function removeListener() { | ||
return this.off.apply(this, arguments); | ||
return this.off.apply(this, arguments); // eslint-disable-line | ||
} | ||
@@ -464,3 +469,3 @@ | ||
* @param {!Array} args | ||
* @param (Object) facade | ||
* @param {Object} facade | ||
* @protected | ||
@@ -544,2 +549,9 @@ */ | ||
/** | ||
* Converts to an array | ||
* @param {Object} val | ||
* @return {Array} | ||
*/ | ||
function toArray(val) { | ||
@@ -546,0 +558,0 @@ val = val || []; |
@@ -22,9 +22,2 @@ 'use strict'; | ||
* emitter will mean listening to it on the origin emitter as well. | ||
* @param {EventEmitter} originEmitter Events originated on this emitter | ||
* will be fired for the target emitter's listeners as well. | ||
* @param {EventEmitter} targetEmitter Event listeners attached to this emitter | ||
* will also be triggered when the event is fired by the origin emitter. | ||
* @param {Object} opt_blacklist Optional blacklist of events that should not be | ||
* proxied. | ||
* @constructor | ||
* @extends {Disposable} | ||
@@ -35,3 +28,12 @@ */ | ||
function EventEmitterProxy(originEmitter, targetEmitter, opt_blacklist, opt_whitelist) { | ||
/** | ||
* @param {EventEmitter} originEmitter Events originated on this emitter | ||
* will be fired for the target emitter's listeners as well. | ||
* @param {EventEmitter} targetEmitter Event listeners attached to this emitter | ||
* will also be triggered when the event is fired by the origin emitter. | ||
* @param {Object} blacklist Optional blacklist of events that should not be | ||
* proxied. | ||
* @param {Object} whitelist | ||
*/ | ||
function EventEmitterProxy(originEmitter, targetEmitter, blacklist, whitelist) { | ||
_classCallCheck(this, EventEmitterProxy); | ||
@@ -46,3 +48,3 @@ | ||
_this.blacklist_ = opt_blacklist; | ||
_this.blacklist_ = blacklist; | ||
@@ -86,3 +88,3 @@ /** | ||
*/ | ||
_this.whitelist_ = opt_whitelist; | ||
_this.whitelist_ = whitelist; | ||
@@ -129,3 +131,5 @@ _this.startProxy_(); | ||
value: function emitOnTarget_() { | ||
this.targetEmitter_.emit.apply(this.targetEmitter_, arguments); | ||
var _targetEmitter_; | ||
(_targetEmitter_ = this.targetEmitter_).emit.apply(_targetEmitter_, arguments); | ||
} | ||
@@ -132,0 +136,0 @@ |
@@ -23,6 +23,2 @@ 'use strict'; | ||
* That responsibility is for the code that holds a reference to it. | ||
* @param {!EventEmitter} emitter Emitter the event was subscribed to. | ||
* @param {string} event The name of the event that was subscribed to. | ||
* @param {!Function} listener The listener subscribed to the event. | ||
* @constructor | ||
* @extends {Disposable} | ||
@@ -33,2 +29,8 @@ */ | ||
/** | ||
* EventHandle constructor | ||
* @param {!EventEmitter} emitter Emitter the event was subscribed to. | ||
* @param {string} event The name of the event that was subscribed to. | ||
* @param {!Function} listener The listener subscribed to the event. | ||
*/ | ||
function EventHandle(emitter, event, listener) { | ||
@@ -35,0 +37,0 @@ _classCallCheck(this, EventHandle); |
@@ -20,3 +20,2 @@ 'use strict'; | ||
* listeners from different EventEmitter instances. | ||
* @constructor | ||
* @extends {Disposable} | ||
@@ -27,2 +26,5 @@ */ | ||
/** | ||
* EventHandler constructor | ||
*/ | ||
function EventHandler() { | ||
@@ -53,4 +55,8 @@ _classCallCheck(this, EventHandler); | ||
value: function add() { | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
for (var i = 0; i < arguments.length; i++) { | ||
this.eventHandles_.push(arguments[i]); | ||
this.eventHandles_.push(args[i]); | ||
} | ||
@@ -57,0 +63,0 @@ } |
{ | ||
"name": "metal-events", | ||
"version": "2.14.0", | ||
"version": "2.15.0", | ||
"description": "Classes responsible for emitting and listening to events", | ||
@@ -25,3 +25,3 @@ "license": "BSD", | ||
"dependencies": { | ||
"metal": "^2.14.0" | ||
"metal": "^2.15.0" | ||
}, | ||
@@ -28,0 +28,0 @@ "devDependencies": { |
# metal-events | ||
Classes responsible for emitting and listening to events. | ||
See [https://metaljs.com/](https://metaljs.com/) for documentation. |
'use strict'; | ||
import { array, Disposable, isFunction, isString } from 'metal'; | ||
import {array, Disposable, isFunction, isString} from 'metal'; | ||
import EventHandle from './EventHandle'; | ||
@@ -10,6 +10,8 @@ | ||
* EventEmitter utility. | ||
* @constructor | ||
* @extends {Disposable} | ||
*/ | ||
class EventEmitter extends Disposable { | ||
/** | ||
* EventEmitter constructor | ||
*/ | ||
constructor() { | ||
@@ -67,3 +69,3 @@ super(); | ||
* @param {!Function} listener | ||
* @param {boolean} opt_default Flag indicating if this listener is a default | ||
* @param {boolean} defaultListener Flag indicating if this listener is a default | ||
* action for this event. Default actions are run last, and only if no previous | ||
@@ -73,3 +75,3 @@ * listener call `preventDefault()` on the received event facade. | ||
*/ | ||
addListener(event, listener, opt_default) { | ||
addListener(event, listener, defaultListener) { | ||
this.validateListener_(listener); | ||
@@ -79,3 +81,3 @@ | ||
for (let i = 0; i < events.length; i++) { | ||
this.addSingleListener_(events[i], listener, opt_default); | ||
this.addSingleListener_(events[i], listener, defaultListener); | ||
} | ||
@@ -90,17 +92,16 @@ | ||
* @param {!Function} listener | ||
* @param {boolean} opt_default Flag indicating if this listener is a default | ||
* @param {boolean} defaultListener Flag indicating if this listener is a default | ||
* action for this event. Default actions are run last, and only if no previous | ||
* listener call `preventDefault()` on the received event facade. | ||
* @return {!EventHandle} Can be used to remove the listener. | ||
* @param {Function=} opt_origin The original function that was added as a | ||
* @param {Function=} origin The original function that was added as a | ||
* listener, if there is any. | ||
* @protected | ||
*/ | ||
addSingleListener_(event, listener, opt_default, opt_origin) { | ||
addSingleListener_(event, listener, defaultListener, origin) { | ||
this.runListenerHandlers_(event); | ||
if (opt_default || opt_origin) { | ||
if (defaultListener || origin) { | ||
listener = { | ||
default: opt_default, | ||
default: defaultListener, | ||
fn: listener, | ||
origin: opt_origin | ||
origin: origin, | ||
}; | ||
@@ -125,3 +126,3 @@ } | ||
target: this, | ||
type: event | ||
type: event, | ||
}; | ||
@@ -152,3 +153,3 @@ return facade; | ||
const args = array.slice(arguments, 1); | ||
const args = array.slice(arguments, 1); // eslint-disable-line | ||
this.runListeners_(listeners, args, this.buildFacade_(event)); | ||
@@ -166,3 +167,5 @@ return true; | ||
const directListeners = toArray(this.events_ && this.events_[event]); | ||
return directListeners.concat(toArray(this.events_ && this.events_['*'])); | ||
return directListeners.concat( | ||
toArray(this.events_ && this.events_['*']) | ||
); | ||
} | ||
@@ -187,3 +190,3 @@ | ||
return this.getRawListeners_(event).map( | ||
listener => listener.fn ? listener.fn : listener | ||
listener => (listener.fn ? listener.fn : listener) | ||
); | ||
@@ -228,2 +231,5 @@ } | ||
/** | ||
* | ||
*/ | ||
function handlerInternal() { | ||
@@ -233,3 +239,3 @@ if (--amount === 0) { | ||
} | ||
listener.apply(self, arguments); | ||
listener.apply(self, arguments); // eslint-disable-line | ||
} | ||
@@ -250,4 +256,6 @@ | ||
const fn = listenerObj.fn || listenerObj; | ||
return fn === listener || | ||
(listenerObj.origin && listenerObj.origin === listener); | ||
return ( | ||
fn === listener || | ||
(listenerObj.origin && listenerObj.origin === listener) // eslint-disable-line | ||
); | ||
} | ||
@@ -258,3 +266,3 @@ | ||
* Caution: changes array indices in the listener array behind the listener. | ||
* @param {!(Array|string)} events | ||
* @param {!(Array|string)} event | ||
* @param {!Function} listener | ||
@@ -287,3 +295,3 @@ * @return {!Object} Returns emitter, so calls can be chained. | ||
on() { | ||
return this.addListener.apply(this, arguments); | ||
return this.addListener.apply(this, arguments); // eslint-disable-line | ||
} | ||
@@ -294,6 +302,9 @@ | ||
* instance. | ||
* @param {!function()} | ||
* @param {!function()} handler | ||
*/ | ||
onListener(handler) { | ||
this.listenerHandlers_ = this.addHandler_(this.listenerHandlers_, handler); | ||
this.listenerHandlers_ = this.addHandler_( | ||
this.listenerHandlers_, | ||
handler | ||
); // eslint-disable-line | ||
} | ||
@@ -316,9 +327,9 @@ | ||
* especially when it's on an emitter that you didn't create. | ||
* @param {(Array|string)=} opt_events | ||
* @param {(Array|string)=} event | ||
* @return {!Object} Returns emitter, so calls can be chained. | ||
*/ | ||
removeAllListeners(opt_events) { | ||
removeAllListeners(event) { | ||
if (this.events_) { | ||
if (opt_events) { | ||
const events = this.toEventsArray_(opt_events); | ||
if (event) { | ||
const events = this.toEventsArray_(event); | ||
for (let i = 0; i < events.length; i++) { | ||
@@ -360,3 +371,3 @@ this.events_[events[i]] = null; | ||
removeListener() { | ||
return this.off.apply(this, arguments); | ||
return this.off.apply(this, arguments); // eslint-disable-line | ||
} | ||
@@ -383,3 +394,3 @@ | ||
* @param {!Array} args | ||
* @param (Object) facade | ||
* @param {Object} facade | ||
* @protected | ||
@@ -448,2 +459,7 @@ */ | ||
/** | ||
* Converts to an array | ||
* @param {Object} val | ||
* @return {Array} | ||
*/ | ||
function toArray(val) { | ||
@@ -450,0 +466,0 @@ val = val || []; |
'use strict'; | ||
import { Disposable } from 'metal'; | ||
import {Disposable} from 'metal'; | ||
@@ -10,13 +10,15 @@ /** | ||
* emitter will mean listening to it on the origin emitter as well. | ||
* @param {EventEmitter} originEmitter Events originated on this emitter | ||
* will be fired for the target emitter's listeners as well. | ||
* @param {EventEmitter} targetEmitter Event listeners attached to this emitter | ||
* will also be triggered when the event is fired by the origin emitter. | ||
* @param {Object} opt_blacklist Optional blacklist of events that should not be | ||
* proxied. | ||
* @constructor | ||
* @extends {Disposable} | ||
*/ | ||
class EventEmitterProxy extends Disposable { | ||
constructor(originEmitter, targetEmitter, opt_blacklist, opt_whitelist) { | ||
/** | ||
* @param {EventEmitter} originEmitter Events originated on this emitter | ||
* will be fired for the target emitter's listeners as well. | ||
* @param {EventEmitter} targetEmitter Event listeners attached to this emitter | ||
* will also be triggered when the event is fired by the origin emitter. | ||
* @param {Object} blacklist Optional blacklist of events that should not be | ||
* proxied. | ||
* @param {Object} whitelist | ||
*/ | ||
constructor(originEmitter, targetEmitter, blacklist, whitelist) { | ||
super(); | ||
@@ -29,3 +31,3 @@ | ||
*/ | ||
this.blacklist_ = opt_blacklist; | ||
this.blacklist_ = blacklist; | ||
@@ -69,3 +71,3 @@ /** | ||
*/ | ||
this.whitelist_ = opt_whitelist; | ||
this.whitelist_ = whitelist; | ||
@@ -100,4 +102,4 @@ this.startProxy_(); | ||
*/ | ||
emitOnTarget_() { | ||
this.targetEmitter_.emit.apply(this.targetEmitter_, arguments); | ||
emitOnTarget_(...args) { | ||
this.targetEmitter_.emit(...args); | ||
} | ||
@@ -137,5 +139,6 @@ | ||
setOriginEmitter(originEmitter) { | ||
const events = this.originEmitter_ && this.proxiedEvents_ ? | ||
Object.keys(this.proxiedEvents_) : | ||
this.pendingEvents_; | ||
const events = | ||
this.originEmitter_ && this.proxiedEvents_ | ||
? Object.keys(this.proxiedEvents_) | ||
: this.pendingEvents_; | ||
this.originEmitter_ = originEmitter; | ||
@@ -142,0 +145,0 @@ if (events) { |
'use strict'; | ||
import { Disposable } from 'metal'; | ||
import {Disposable} from 'metal'; | ||
@@ -11,9 +11,11 @@ /** | ||
* That responsibility is for the code that holds a reference to it. | ||
* @param {!EventEmitter} emitter Emitter the event was subscribed to. | ||
* @param {string} event The name of the event that was subscribed to. | ||
* @param {!Function} listener The listener subscribed to the event. | ||
* @constructor | ||
* @extends {Disposable} | ||
*/ | ||
class EventHandle extends Disposable { | ||
/** | ||
* EventHandle constructor | ||
* @param {!EventEmitter} emitter Emitter the event was subscribed to. | ||
* @param {string} event The name of the event that was subscribed to. | ||
* @param {!Function} listener The listener subscribed to the event. | ||
*/ | ||
constructor(emitter, event, listener) { | ||
@@ -20,0 +22,0 @@ super(); |
'use strict'; | ||
import { Disposable } from 'metal'; | ||
import {Disposable} from 'metal'; | ||
@@ -8,6 +8,8 @@ /** | ||
* listeners from different EventEmitter instances. | ||
* @constructor | ||
* @extends {Disposable} | ||
*/ | ||
class EventHandler extends Disposable { | ||
/** | ||
* EventHandler constructor | ||
*/ | ||
constructor() { | ||
@@ -30,5 +32,5 @@ super(); | ||
*/ | ||
add() { | ||
add(...args) { | ||
for (let i = 0; i < arguments.length; i++) { | ||
this.eventHandles_.push(arguments[i]); | ||
this.eventHandles_.push(args[i]); | ||
} | ||
@@ -35,0 +37,0 @@ } |
@@ -9,2 +9,2 @@ 'use strict'; | ||
export default EventEmitter; | ||
export { EventEmitter, EventEmitterProxy, EventHandle, EventHandler }; | ||
export {EventEmitter, EventEmitterProxy, EventHandle, EventHandler}; |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
52752
1518
6
Updatedmetal@^2.15.0