Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

nise

Package Overview
Dependencies
Maintainers
4
Versions
59
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nise - npm Package Compare versions

Comparing version 1.2.7 to 1.3.0

90

lib/event/event-target.js
"use strict";
function flattenOptions(options) {
if (options !== Object(options)) {
return {
capture: Boolean(options),
once: false,
passive: false
};
}
return {
capture: Boolean(options.capture),
once: Boolean(options.once),
passive: Boolean(options.passive)
};
}
function not(fn) {
return function () {
return !fn.apply(this, arguments);
};
}
function hasListenerFilter(listener, capture) {
return function (listenerSpec) {
return listenerSpec.capture === capture
&& listenerSpec.listener === listener;
};
}
var EventTarget = {
addEventListener: function addEventListener(event, listener) {
// https://dom.spec.whatwg.org/#dom-eventtarget-addeventlistener
addEventListener: function addEventListener(event, listener, providedOptions) {
// 3. Let capture, passive, and once be the result of flattening more options.
// Flatten property before executing step 2,
// feture detection is usually based on registering handler with options object,
// that has getter defined
// addEventListener("load", () => {}, {
// get once() { supportsOnce = true; }
// });
var options = flattenOptions(providedOptions);
// 2. If callback is null, then return.
if (listener == null) {
return;
}
this.eventListeners = this.eventListeners || {};
this.eventListeners[event] = this.eventListeners[event] || [];
if (this.eventListeners[event].indexOf(listener) === -1) {
this.eventListeners[event].push(listener);
// 4. If context object’s associated list of event listener
// does not contain an event listener whose type is type,
// callback is callback, and capture is capture, then append
// a new event listener to it, whose type is type, callback is
// callback, capture is capture, passive is passive, and once is once.
if (!this.eventListeners[event].some(hasListenerFilter(listener, options.capture))) {
this.eventListeners[event].push({
listener: listener,
capture: options.capture,
once: options.once
});
}
},
removeEventListener: function removeEventListener(event, listener) {
var listeners = this.eventListeners && this.eventListeners[event] || [];
var index = listeners.indexOf(listener);
if (index === -1) {
// https://dom.spec.whatwg.org/#dom-eventtarget-removeeventlistener
removeEventListener: function removeEventListener(event, listener, providedOptions) {
if (!this.eventListeners || !this.eventListeners[event]) {
return;
}
listeners.splice(index, 1);
// 2. Let capture be the result of flattening options.
var options = flattenOptions(providedOptions);
// 3. If there is an event listener in the associated list of
// event listeners whose type is type, callback is callback,
// and capture is capture, then set that event listener’s
// removed to true and remove it from the associated list of event listeners.
this.eventListeners[event] = this.eventListeners[event]
.filter(not(hasListenerFilter(listener, options.capture)));
},
dispatchEvent: function dispatchEvent(event) {
if (!this.eventListeners || !this.eventListeners[event.type]) {
return Boolean(event.defaultPrevented);
}
var self = this;
var type = event.type;
var listeners = self.eventListeners && self.eventListeners[type] || [];
var listeners = self.eventListeners[type];
listeners.forEach(function (listener) {
// Remove listeners, that should be dispatched once
// before running dispatch loop to avoid nested dispatch issues
self.eventListeners[type] = listeners.filter(function (listenerSpec) {
return !listenerSpec.once;
});
listeners.forEach(function (listenerSpec) {
var listener = listenerSpec.listener;
if (typeof listener === "function") {

@@ -37,3 +103,3 @@ listener.call(self, event);

return !!event.defaultPrevented;
return Boolean(event.defaultPrevented);
}

@@ -40,0 +106,0 @@ };

2

package.json
{
"name": "nise",
"version": "1.2.7",
"version": "1.3.0",
"description": "Fake XHR and server",

@@ -5,0 +5,0 @@ "keywords": [

Sorry, the diff of this file is too big to display

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