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

metal-events

Package Overview
Dependencies
Maintainers
9
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

metal-events - npm Package Compare versions

Comparing version 2.14.0 to 2.15.0

60

lib/EventEmitter.js

@@ -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 || [];

26

lib/EventEmitterProxy.js

@@ -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};
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