Skip to content

Commit 6f85c07

Browse files
committed
Changes:
* Added status badge * minor change to `globalListener` * version bump
1 parent b3b5f3f commit 6f85c07

File tree

9 files changed

+32
-30
lines changed

9 files changed

+32
-30
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
# EventListener [![Coverage Status](https://coveralls.io/repos/github/thednp/event-listener/badge.svg?branch=main)](https://coveralls.io/github/thednp/event-listener?branch=main) ![cypress version](https://img.shields.io/badge/cypress-9.6.0-brightgreen) ![typescript version](https://img.shields.io/badge/typescript-4.5.2-brightgreen)
1+
# EventListener [![Coverage Status](https://coveralls.io/repos/github/thednp/event-listener/badge.svg?branch=main)](https://coveralls.io/github/thednp/event-listener?branch=main) ![cypress version](https://img.shields.io/badge/cypress-9.6.0-brightgreen) ![typescript version](https://img.shields.io/badge/typescript-4.5.2-brightgreen) [![ci](https://github.com/thednp/event-listener/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/thednp/event-listener/actions/workflows/ci.yml)
2+
23
Modern event listener for efficient applications based on the [subscribe-publish](https://hackernoon.com/do-you-still-register-window-event-listeners-in-each-component-react-in-example-31a4b1f6f1c8) pattern.
34

45
**EventListener** is less than 900 bytes when minified, but packs a surprising amount of power.

dist/event-listener-es5.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*!
2-
* EventListener v1.0.0 (https://github.com/thednp/event-listener.js)
2+
* EventListener v1.0.1 (https://github.com/thednp/event-listener.js)
33
* Modern event listener for efficient applications based on subscribe-publish pattern.
44
* Copyright 2022 © thednp
55
* Licensed under MIT (https://github.com/thednp/event-listener.js/blob/master/LICENSE)
@@ -22,21 +22,22 @@
2222
function globalListener(e) {
2323
var that = this;
2424
var type = e.type;
25+
var target = e.target;
2526

2627
[].concat( EventRegistry[type] ).forEach(function (elementsMap) {
2728
var element = elementsMap[0];
2829
var listenersMap = elementsMap[1];
29-
[].concat( listenersMap ).forEach(function (listenerMap) {
30-
if (element === that) {
30+
if ([target, that].some(function (el) { return element === el; })) {
31+
[].concat( listenersMap ).forEach(function (listenerMap) {
3132
var listener = listenerMap[0];
3233
var options = listenerMap[1];
3334
listener.apply(element, [e]);
3435

3536
if (options && options.once) {
3637
removeListener(element, type, listener, options);
3738
}
38-
}
39-
});
39+
});
40+
}
4041
});
4142
}
4243

dist/event-listener-es5.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/event-listener.esm.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*!
2-
* EventListener v1.0.0 (https://github.com/thednp/event-listener.js)
2+
* EventListener v1.0.1 (https://github.com/thednp/event-listener.js)
33
* Modern event listener for efficient applications based on subscribe-publish pattern.
44
* Copyright 2022 © thednp
55
* Licensed under MIT (https://github.com/thednp/event-listener.js/blob/master/LICENSE)
@@ -15,20 +15,20 @@ const EventRegistry = {};
1515
*/
1616
function globalListener(e) {
1717
const that = this;
18-
const { type } = e;
18+
const { type, target } = e;
1919

2020
[...EventRegistry[type]].forEach((elementsMap) => {
2121
const [element, listenersMap] = elementsMap;
22-
[...listenersMap].forEach((listenerMap) => {
23-
if (element === that) {
22+
if ([target, that].some((el) => element === el)) {
23+
[...listenersMap].forEach((listenerMap) => {
2424
const [listener, options] = listenerMap;
2525
listener.apply(element, [e]);
2626

2727
if (options && options.once) {
2828
removeListener(element, type, listener, options);
2929
}
30-
}
31-
});
30+
});
31+
}
3232
});
3333
}
3434

dist/event-listener.esm.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/event-listener.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*!
2-
* EventListener v1.0.0 (https://github.com/thednp/event-listener.js)
2+
* EventListener v1.0.1 (https://github.com/thednp/event-listener.js)
33
* Modern event listener for efficient applications based on subscribe-publish pattern.
44
* Copyright 2022 © thednp
55
* Licensed under MIT (https://github.com/thednp/event-listener.js/blob/master/LICENSE)
@@ -21,20 +21,20 @@
2121
*/
2222
function globalListener(e) {
2323
const that = this;
24-
const { type } = e;
24+
const { type, target } = e;
2525

2626
[...EventRegistry[type]].forEach((elementsMap) => {
2727
const [element, listenersMap] = elementsMap;
28-
[...listenersMap].forEach((listenerMap) => {
29-
if (element === that) {
28+
if ([target, that].some((el) => element === el)) {
29+
[...listenersMap].forEach((listenerMap) => {
3030
const [listener, options] = listenerMap;
3131
listener.apply(element, [e]);
3232

3333
if (options && options.once) {
3434
removeListener(element, type, listener, options);
3535
}
36-
}
37-
});
36+
});
37+
}
3838
});
3939
}
4040

dist/event-listener.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@thednp/event-listener",
33
"author": "thednp",
4-
"version": "1.0.0",
4+
"version": "1.0.1",
55
"description": "Modern event listener for efficient applications based on subscribe-publish pattern.",
66
"license": "MIT",
77
"homepage": "https://github.com/thednp/event-listener.js",

src/event-listener.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,20 @@ export { EventRegistry };
1111
*/
1212
export function globalListener(e) {
1313
const that = this;
14-
const { type } = e;
14+
const { type, target } = e;
1515

1616
[...EventRegistry[type]].forEach((elementsMap) => {
1717
const [element, listenersMap] = elementsMap;
18-
[...listenersMap].forEach((listenerMap) => {
19-
if (element === that) {
18+
if ([target, that].some((el) => element === el)) {
19+
[...listenersMap].forEach((listenerMap) => {
2020
const [listener, options] = listenerMap;
2121
listener.apply(element, [e]);
2222

2323
if (options && options.once) {
2424
removeListener(element, type, listener, options);
2525
}
26-
}
27-
});
26+
});
27+
}
2828
});
2929
}
3030

0 commit comments

Comments
 (0)