
Security News
High Salaries No Longer Enough to Attract Top Cybersecurity Talent
A survey of 500 cybersecurity pros reveals high pay isn't enough—lack of growth and flexibility is driving attrition and risking organizational security.
event-target-shim
Advanced tools
The event-target-shim npm package provides a cross-platform, shim implementation of the EventTarget interface, allowing developers to use a consistent API for event handling across different environments. It supports the standard addEventListener, removeEventListener, and dispatchEvent methods, along with custom event types. This makes it useful for projects that need to handle events in both browser and non-browser environments, such as Node.js applications or web components.
Basic Event Handling
This demonstrates how to create an instance of EventTarget, add an event listener for a custom event type, and then dispatch an event of that type. It's the basic usage for handling custom events.
const EventTargetShim = require('event-target-shim');
const myEventTarget = new EventTargetShim();
myEventTarget.addEventListener('customEvent', function(event) {
console.log(`Received: ${event.type}`);
});
myEventTarget.dispatchEvent(new EventTargetShim.Event('customEvent'));
Using Options for addEventListener
This example shows how to use the `once` option with `addEventListener` to automatically remove the event listener after it has been invoked once, demonstrating the package's support for event listener options.
const EventTargetShim = require('event-target-shim');
const myEventTarget = new EventTargetShim();
myEventTarget.addEventListener('customEvent', function(event) {
console.log(`Received: ${event.type}`);
}, { once: true });
myEventTarget.dispatchEvent(new EventTargetShim.Event('customEvent'));
myEventTarget.dispatchEvent(new EventTargetShim.Event('customEvent'));
EventEmitter3 is a high-performance event emitter. While event-target-shim mimics the EventTarget interface specifically, EventEmitter3 provides a more general-purpose event handling mechanism. It doesn't follow the browser's EventTarget API as closely but offers a lightweight, fast solution for event management.
Wolfy87's EventEmitter is another alternative for event handling, offering a similar set of functionalities to event-target-shim but with a different API. It provides a more object-oriented approach to event handling, with features like namespaced events, which can be particularly useful in complex applications. Compared to event-target-shim, it might offer more flexibility in certain scenarios but doesn't aim to replicate the EventTarget interface directly.
An implementation of WHATWG EventTarget
interface and WHATWG Event
interface. This implementation supports constructor, passive
, once
, and signal
.
This implementation is designed ...
Use npm or a compatible tool.
npm install event-target-shim
import { EventTarget, Event } from "event-target-shim";
// constructor (was added to the standard on 8 Jul 2017)
const myNode = new EventTarget();
// passive flag (was added to the standard on 6 Jan 2016)
myNode.addEventListener(
"hello",
(e) => {
e.preventDefault(); // ignored and print warning on console.
},
{ passive: true }
);
// once flag (was added to the standard on 15 Apr 2016)
myNode.addEventListener("hello", listener, { once: true });
myNode.dispatchEvent(new Event("hello")); // remove the listener after call.
// signal (was added to the standard on 4 Dec 2020)
const ac = new AbortController();
myNode.addEventListener("hello", listener, { signal: ac.signal });
ac.abort(); // remove the listener.
import {} from "event-target-shim/es5"
instead. It's a transpiled code by babel. It depends on @baebl/runtime
(^7.12.0
) package.AbortController
class was added to the standard on 14 Jul 2017. If you want the shim of that, use abort-controller package.See docs/reference.md.
See GitHub releases.
Contributing is welcome ❤️
Please use GitHub issues/PRs.
npm install
installs dependencies for development.npm test
runs tests and measures code coverage.npm run watch:mocha
runs tests on each file change.FAQs
An implementation of WHATWG EventTarget interface.
The npm package event-target-shim receives a total of 14,880,357 weekly downloads. As such, event-target-shim popularity was classified as popular.
We found that event-target-shim demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A survey of 500 cybersecurity pros reveals high pay isn't enough—lack of growth and flexibility is driving attrition and risking organizational security.
Product
Socket, the leader in open source security, is now available on Google Cloud Marketplace for simplified procurement and enhanced protection against supply chain attacks.
Security News
Corepack will be phased out from future Node.js releases following a TSC vote.