@thednp/event-listener
Advanced tools
Comparing version 2.0.0-alpha2 to 2.0.0-alpha3
{ | ||
"name": "@thednp/event-listener", | ||
"author": "thednp", | ||
"version": "2.0.0alpha2", | ||
"version": "2.0.0alpha3", | ||
"description": "Modern event listener for efficient web applications based on subscribe-publish pattern.", | ||
@@ -9,3 +9,4 @@ "license": "MIT", | ||
"main": "src/index.ts", | ||
"module": "dist/index.cjs.js", | ||
"module": "dist/event-listener.cjs.js", | ||
"esmodule": "dist/event-listener.js", | ||
"esnext": "src/index.js", | ||
@@ -12,0 +13,0 @@ "types": "types/index.d.ts", |
@@ -31,3 +31,3 @@ ## EventListener | ||
```html | ||
<script src="https://cdn.jsdelivr.net/npm/@thednp/event-listener/dist/index.min.js"></script> | ||
<script src="https://cdn.jsdelivr.net/npm/@thednp/event-listener/dist/event-listener.min.js"></script> | ||
``` | ||
@@ -38,3 +38,3 @@ | ||
```js | ||
import Listener from "@thednp/event-listener"; | ||
import Listener from '@thednp/event-listener'; | ||
@@ -44,5 +44,5 @@ // execute a listener once | ||
document, | ||
"DOMContentLoaded", | ||
'DOMContentLoaded', | ||
() => { | ||
console.log("document is now loaded"); | ||
console.log('document is now loaded'); | ||
}, | ||
@@ -54,15 +54,15 @@ { once: true } | ||
function handleMyClick(e) { | ||
if (e.target.tagName === "button") { | ||
if (e.target.tagName === 'button') { | ||
e.preventDefault(); | ||
e.stopImmediatePropagation(); | ||
} | ||
console.log("do something else instead"); | ||
console.log('do something else instead'); | ||
} | ||
Listener.on(document, "click", handleMyClick, false); | ||
Listener.on(document, 'click', handleMyClick, false); | ||
// remove a listener, `EventListener` will get listener options from registry | ||
Listener.off(document, "click", handleMyClick); | ||
Listener.off(document, 'click', handleMyClick); | ||
// add listener to `window`, this listener has no name and cannot be removed | ||
Listener.on(window, "scroll", () => console.log(window.scrollY)); | ||
Listener.on(window, 'scroll', () => console.log(window.scrollY)); | ||
``` | ||
@@ -104,3 +104,3 @@ | ||
```js | ||
import { on } from "@thednp/event-listener"; | ||
import { on } from '@thednp/event-listener'; | ||
@@ -113,3 +113,3 @@ on(document, handleMyClick, true); | ||
```js | ||
import { addListener } from "@thednp/event-listener/src/event-listener"; | ||
import { addListener } from '@thednp/event-listener/src/event-listener'; | ||
@@ -116,0 +116,0 @@ addListener(document, handleMyClick, true); |
@@ -28,2 +28,4 @@ const EventRegistry = {}; | ||
const oneElementMap = oneEventMap.get(element); | ||
if (typeof oneElementMap === 'undefined') | ||
return; | ||
const { size } = oneElementMap; | ||
@@ -50,3 +52,3 @@ oneElementMap.set(listener, options); | ||
}; | ||
const Listener = { | ||
export default { | ||
on: addListener, | ||
@@ -57,3 +59,2 @@ off: removeListener, | ||
}; | ||
export default Listener; | ||
//# sourceMappingURL=index.js.map |
@@ -1,2 +0,2 @@ | ||
import { EventsRegistry } from "./types"; | ||
import { EventsRegistry } from './types'; | ||
@@ -8,3 +8,3 @@ const EventRegistry: EventsRegistry = {}; | ||
/** | ||
* The global event listener. | ||
* The global event listener. This function must be a Function. | ||
* | ||
@@ -39,3 +39,3 @@ */ | ||
eventType: string, | ||
listener: EventListenerObject["handleEvent"], | ||
listener: EventListener, | ||
options?: AddEventListenerOptions | ||
@@ -55,2 +55,4 @@ ): void => { | ||
// get listeners size | ||
if (typeof oneElementMap === 'undefined') return; | ||
const { size } = oneElementMap; | ||
@@ -75,3 +77,3 @@ | ||
eventType: string, | ||
listener: EventListenerObject["handleEvent"], | ||
listener: EventListener, | ||
options?: AddEventListenerOptions | ||
@@ -88,6 +90,4 @@ ): void => { | ||
// unsubscribe second, remove from registry | ||
if (oneElementMap && oneElementMap.has(listener)) | ||
oneElementMap.delete(listener); | ||
if (oneEventMap && (!oneElementMap || !oneElementMap.size)) | ||
oneEventMap.delete(element); | ||
if (oneElementMap && oneElementMap.has(listener)) oneElementMap.delete(listener); | ||
if (oneEventMap && (!oneElementMap || !oneElementMap.size)) oneEventMap.delete(element); | ||
if (!oneEventMap || !oneEventMap.size) delete EventRegistry[eventType]; | ||
@@ -108,3 +108,3 @@ | ||
*/ | ||
const Listener = { | ||
export default { | ||
on: addListener, | ||
@@ -116,2 +116,2 @@ off: removeListener, | ||
export default Listener; | ||
// export default Listener; |
@@ -1,5 +0,3 @@ | ||
export type ListenerObject = Map< | ||
EventListenerObject["handleEvent"], | ||
AddEventListenerOptions | ||
>; | ||
export type ListenerObject = Map<EventListener, AddEventListenerOptions | undefined | false>; | ||
export type EventsRegistry = Record<string, Map<EventTarget, ListenerObject>>; |
@@ -1,14 +0,14 @@ | ||
import { EventsRegistry } from "./types"; | ||
import { EventsRegistry } from './types'; | ||
declare const EventRegistry: EventsRegistry; | ||
export { EventRegistry }; | ||
export declare function globalListener(e: Event): void; | ||
export declare const addListener: (element: EventTarget, eventType: string, listener: EventListenerObject["handleEvent"], options?: AddEventListenerOptions) => void; | ||
export declare const removeListener: (element: EventTarget, eventType: string, listener: EventListenerObject["handleEvent"], options?: AddEventListenerOptions) => void; | ||
declare const Listener: { | ||
on: (element: EventTarget, eventType: string, listener: EventListenerObject["handleEvent"], options?: AddEventListenerOptions) => void; | ||
off: (element: EventTarget, eventType: string, listener: EventListenerObject["handleEvent"], options?: AddEventListenerOptions) => void; | ||
export declare const addListener: (element: EventTarget, eventType: string, listener: EventListener, options?: AddEventListenerOptions) => void; | ||
export declare const removeListener: (element: EventTarget, eventType: string, listener: EventListener, options?: AddEventListenerOptions) => void; | ||
declare const _default: { | ||
on: (element: EventTarget, eventType: string, listener: EventListener, options?: AddEventListenerOptions) => void; | ||
off: (element: EventTarget, eventType: string, listener: EventListener, options?: AddEventListenerOptions) => void; | ||
globalListener: typeof globalListener; | ||
registry: EventsRegistry; | ||
}; | ||
export default Listener; | ||
export default _default; | ||
//# sourceMappingURL=index.d.ts.map |
@@ -1,3 +0,3 @@ | ||
export declare type ListenerObject = Map<EventListenerObject["handleEvent"], AddEventListenerOptions>; | ||
export declare type ListenerObject = Map<EventListener, AddEventListenerOptions | undefined | false>; | ||
export declare type EventsRegistry = Record<string, Map<EventTarget, ListenerObject>>; | ||
//# sourceMappingURL=types.d.ts.map |
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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
45546
337
2