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

remitter

Package Overview
Dependencies
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

remitter - npm Package Compare versions

Comparing version

to
0.2.9

5

dist/remitter.d.ts

@@ -10,2 +10,3 @@ declare type RemitterDatalessEventName<TConfig> = {

private readonly relayListeners_;
private onceListeners_?;
/**

@@ -21,2 +22,6 @@ * Emit an event to `eventName` listeners.

/**
* Add a one-time listener to the eventName.
*/
once<TEventName extends RemitterEventNames<TConfig>>(eventName: TEventName, listener: RemitterListener<TConfig, TEventName>): RemitterDisposer;
/**
* Remove a listener from the eventName.

@@ -23,0 +28,0 @@ */

66

dist/remitter.js

@@ -9,4 +9,12 @@ "use strict";

emit(eventName, eventData) {
var _a;
(_a = this.a.get(eventName)) == null ? void 0 : _a.forEach((listener) => listener(eventData));
const listeners = this.a.get(eventName);
if (listeners) {
for (const listener of listeners) {
try {
listener(eventData);
} catch (e) {
console.error(e);
}
}
}
}

@@ -21,3 +29,5 @@ on(eventName, listener) {

if (listeners.size === 1) {
this.b.forEach((listener2) => listener2.d(eventName));
for (const listener2 of this.b) {
listener2.e(eventName);
}
}

@@ -28,9 +38,23 @@ return () => {

}
once(eventName, listener) {
const onceListener = (eventData) => {
this.off(eventName, listener);
return listener(eventData);
};
this.c = this.c || /* @__PURE__ */ new WeakMap();
this.c.set(listener, onceListener);
return this.on(eventName, onceListener);
}
off(eventName, listener) {
var _a;
const listeners = this.a.get(eventName);
if (listeners) {
const result = listeners.delete(listener);
const result = listeners.delete(
((_a = this.c) == null ? void 0 : _a.get(listener)) || listener
);
if (listeners.size <= 0) {
this.a.delete(eventName);
this.b.forEach((listener2) => listener2.c(eventName));
for (const listener2 of this.b) {
listener2.d(eventName);
}
}

@@ -55,5 +79,5 @@ return result;

let count = 0;
this.a.forEach((listeners) => {
for (const listeners of this.a.values()) {
count += listeners.size;
});
}
return count;

@@ -66,10 +90,18 @@ }

const relayListener = {
d: (name) => {
e: (name) => {
if (name === eventName) {
disposer = start(this);
try {
disposer = start(this);
} catch (e) {
console.error(e);
}
}
},
c: (name) => {
d: (name) => {
if (disposer && (!name || name === eventName)) {
disposer();
try {
disposer();
} catch (e) {
console.error(e);
}
}

@@ -79,10 +111,8 @@ }

this.b.add(relayListener);
if ((((_a = this.a.get(eventName)) == null ? void 0 : _a.size) || 0) > 0) {
disposer = start(this);
if ((_a = this.a.get(eventName)) == null ? void 0 : _a.size) {
relayListener.e(eventName);
}
return () => {
this.b.delete(relayListener);
if (disposer) {
disposer();
}
relayListener.d();
};

@@ -92,3 +122,5 @@ }

this.clear();
this.b.forEach((listener) => listener.c());
for (const listener of this.b) {
listener.d();
}
this.b.clear();

@@ -95,0 +127,0 @@ }

{
"name": "remitter",
"version": "0.2.8",
"version": "0.2.9",
"private": false,

@@ -5,0 +5,0 @@ "description": "A TypeScript friendly event emitter with easy re-emitting events.",

@@ -16,3 +16,3 @@ # remitter

A TypeScript friendly event emitter with easy re-emitting events.
A tiny TypeScript friendly event emitter that supports easy re-emitting events.

@@ -41,4 +41,10 @@ ## Install

remitter.count("event1"); // 1
remitter.once("event1", value => {
console.log("event1-once", value);
});
remitter.count("event1"); // 2
remitter.emit("event1", "hello"); // logs "event1 hello" and "event1-once hello"
remitter.emit("event1", "hello"); // logs "event1 hello"

@@ -59,3 +65,3 @@

You may tap into other events which will be lazy-executed when listener count of an event name grows from 0 to 1 and be disposed when listener count drops from 1 to 0.
You may tap into other events easily with `remit`. It is lazy-executed when listener count of the event name grows from 0 to 1. It is disposed when listener count of the event name drops from 1 to 0.

@@ -62,0 +68,0 @@ ```js

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet