@wiggindev/utils 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wiggindev/utils",
3
3
  "description": "Various utilities that I use in my projects",
4
- "version": "0.1.2",
4
+ "version": "0.1.3",
5
5
  "author": {
6
6
  "name": "Andrew Wiggin",
7
7
  "email": "andrew@wiggin.dev",
package/src/element.ts CHANGED
@@ -1,33 +1,27 @@
1
1
  import { EventListener, EventName, DomEventListener } from './events';
2
2
 
3
- type ElementEventName = EventName<HTMLElementEventMap>;
4
- type ElementEventListener<E extends ElementEventName> = EventListener<
5
- HTMLElementEventMap,
6
- E
7
- >;
8
-
9
- export const on = <E extends ElementEventName>(
3
+ export const on = <E extends EventName<HTMLElementEventMap>>(
10
4
  element: HTMLElement,
11
5
  event: E,
12
- listener: ElementEventListener<E>
6
+ listener: EventListener<HTMLElementEventMap, E>
13
7
  ) => {
14
8
  element.addEventListener(event, listener as DomEventListener);
15
9
  };
16
10
 
17
- export const off = <E extends ElementEventName>(
11
+ export const off = <E extends EventName<HTMLElementEventMap>>(
18
12
  element: HTMLElement,
19
13
  event: E,
20
- listener: ElementEventListener<E>
14
+ listener: EventListener<HTMLElementEventMap, E>
21
15
  ) => {
22
16
  element.removeEventListener(event, listener as DomEventListener);
23
17
  };
24
18
 
25
- export const once = <E extends ElementEventName>(
19
+ export const once = <E extends EventName<HTMLElementEventMap>>(
26
20
  element: HTMLElement,
27
21
  event: E,
28
- listener: ElementEventListener<E>
22
+ listener: EventListener<HTMLElementEventMap, E>
29
23
  ) => {
30
- const wrappedListener: ElementEventListener<E> = e => {
24
+ const wrappedListener: EventListener<HTMLElementEventMap, E> = e => {
31
25
  listener(e);
32
26
  off(element, event, wrappedListener);
33
27
  };
package/src/window.ts CHANGED
@@ -1,30 +1,24 @@
1
1
  import { EventListener, EventName, DomEventListener } from './events';
2
2
 
3
- type WindowEventName = EventName<WindowEventMap>;
4
- type WindowEventListener<E extends WindowEventName> = EventListener<
5
- WindowEventMap,
6
- E
7
- >;
8
-
9
- export const on = <E extends WindowEventName>(
3
+ export const on = <E extends EventName<WindowEventMap>>(
10
4
  event: E,
11
- listener: WindowEventListener<E>
5
+ listener: EventListener<WindowEventMap, E>
12
6
  ) => {
13
7
  window.addEventListener(event, listener as DomEventListener);
14
8
  };
15
9
 
16
- export const off = <E extends WindowEventName>(
10
+ export const off = <E extends EventName<WindowEventMap>>(
17
11
  event: E,
18
- listener: WindowEventListener<E>
12
+ listener: EventListener<WindowEventMap, E>
19
13
  ) => {
20
14
  window.removeEventListener(event, listener as DomEventListener);
21
15
  };
22
16
 
23
- export const once = <E extends WindowEventName>(
17
+ export const once = <E extends EventName<WindowEventMap>>(
24
18
  event: E,
25
- listener: WindowEventListener<E>
19
+ listener: EventListener<WindowEventMap, E>
26
20
  ) => {
27
- const wrappedListener: WindowEventListener<E> = e => {
21
+ const wrappedListener: EventListener<WindowEventMap, E> = e => {
28
22
  listener(e);
29
23
  off(event, wrappedListener);
30
24
  };