@thednp/shorty 2.0.0-alpha18 → 2.0.0-alpha20

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@thednp/shorty",
3
- "version": "2.0.0alpha18",
3
+ "version": "2.0.0alpha20",
4
4
  "description": "TypeScript shorties for the web",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./dist/shorty.js",
@@ -37,9 +37,9 @@
37
37
  "@types/istanbul-lib-instrument": "^1.7.4",
38
38
  "@typescript-eslint/eslint-plugin": "^5.62.0",
39
39
  "@typescript-eslint/parser": "^5.62.0",
40
- "cypress": "^12.17.4",
40
+ "cypress": "^13.1.0",
41
41
  "dts-bundle-generator": "^8.0.1",
42
- "eslint": "^8.48.0",
42
+ "eslint": "^8.49.0",
43
43
  "eslint-plugin-jsdoc": "^46.5.1",
44
44
  "eslint-plugin-prefer-arrow": "^1.2.3",
45
45
  "eslint-plugin-prettier": "^4.2.1",
@@ -65,7 +65,8 @@
65
65
  "format": "prettier --write \"src/**/*.ts\"",
66
66
  "lint:ts": "eslint -c .eslintrc.cjs --ext .ts src",
67
67
  "fix:ts": "eslint -c .eslintrc.cjs --ext .ts src --fix",
68
- "build": "pnpm lint:ts && vite build && pnpm dts",
68
+ "check:ts": "tsc -noEmit",
69
+ "build": "pnpm check:ts && pnpm lint:ts && vite build && pnpm dts",
69
70
  "dts": "dts-bundle-generator --config ./dts.config.ts"
70
71
  }
71
72
  }
package/src/event/off.ts CHANGED
@@ -1,16 +1,14 @@
1
- import { NativeEventTypes, PossibleEventTarget, SupportedEventHandler } from '../interface/event';
2
-
3
1
  /**
4
2
  * Remove eventListener from an `EventTarget` object.
5
3
  */
6
- const off = <T extends PossibleEventTarget>(
4
+ const off = <T extends EventTarget, L = EventListener>(
7
5
  element: T,
8
- eventName: NativeEventTypes,
9
- listener: EventListenerObject & SupportedEventHandler<T>,
6
+ eventName: string,
7
+ listener: L,
10
8
  options?: AddEventListenerOptions,
11
9
  ) => {
12
10
  const ops = options || false;
13
- element.removeEventListener(eventName, listener, ops);
11
+ element.removeEventListener(eventName, listener as EventListenerOrEventListenerObject, ops);
14
12
  };
15
13
 
16
14
  export default off;
package/src/event/on.ts CHANGED
@@ -1,16 +1,14 @@
1
- import { NativeEventTypes, PossibleEventTarget, SupportedEventHandler } from '../interface/event';
2
-
3
1
  /**
4
2
  * Add eventListener to an `EventTarget` object.
5
3
  */
6
- const on = <T extends PossibleEventTarget>(
4
+ const on = <T extends EventTarget, L = EventListener>(
7
5
  element: T,
8
- eventName: NativeEventTypes,
9
- listener: EventListenerObject & SupportedEventHandler<T>,
6
+ eventName: string,
7
+ listener: L,
10
8
  options?: AddEventListenerOptions,
11
9
  ) => {
12
10
  const ops = options || false;
13
- element.addEventListener(eventName, listener, ops);
11
+ element.addEventListener(eventName, listener as EventListenerOrEventListenerObject, ops);
14
12
  };
15
13
 
16
14
  export default on;
package/src/event/one.ts CHANGED
@@ -1,43 +1,26 @@
1
- import {
2
- EventHandler,
3
- NativeEvent,
4
- NativeEventTypes,
5
- PossibleEventTarget,
6
- SupportedEventHandler,
7
- } from '../interface/event';
8
-
9
1
  import on from './on';
10
2
  import off from './off';
3
+ import { NativeEventHandler } from '../interface/event';
11
4
 
12
5
  /**
13
6
  * Add an `eventListener` to an `EventTarget`
14
7
  * element and remove it once callback is called.
15
8
  */
16
- const one = <T extends PossibleEventTarget>(
9
+ const one = <T extends EventTarget, L = EventListener>(
17
10
  element: T,
18
- eventName: NativeEventTypes,
19
- listener: SupportedEventHandler<T>,
11
+ eventName: string,
12
+ listener: L,
20
13
  options?: AddEventListenerOptions,
21
14
  ) => {
22
15
  /** Wrap the listener for easy on -> off */
23
- const handlerWrapper = (e: NativeEvent): void => {
16
+ const handlerWrapper: NativeEventHandler<T> = e => {
24
17
  /* istanbul ignore else */
25
18
  if (e.target === element || e.currentTarget === element) {
26
- (listener as EventHandler<typeof e>).apply(element, [e]);
27
- off(
28
- element,
29
- eventName,
30
- handlerWrapper as unknown as EventListenerObject & SupportedEventHandler<T>,
31
- options,
32
- );
19
+ (listener as NativeEventHandler<T>).apply(element, [e]);
20
+ off(element, eventName, handlerWrapper, options);
33
21
  }
34
22
  };
35
- on(
36
- element,
37
- eventName,
38
- handlerWrapper as unknown as EventListenerObject & SupportedEventHandler<T>,
39
- options,
40
- );
23
+ on(element, eventName, handlerWrapper, options);
41
24
  };
42
25
 
43
26
  export default one;
package/src/index.ts CHANGED
@@ -476,3 +476,5 @@ export {
476
476
  removeAttributeNS,
477
477
  version,
478
478
  };
479
+
480
+ export * from './interface/event.d';
@@ -25,9 +25,9 @@ interface AbstractView {
25
25
  // Event System
26
26
  // ----------------------------------------------------------------------
27
27
  // E = EventObject, C = e.currentTarget, T = e.target
28
- interface BaseEvent<E = unknown, C = unknown, T = unknown> {
29
- nativeEvent: Event & E;
30
- currentTarget: C & EventTarget;
28
+ interface BaseEvent<E = Event, C = unknown, T = unknown> {
29
+ nativeEvent: E;
30
+ currentTarget: C | null;
31
31
  target: T & EventTarget;
32
32
  bubbles: boolean;
33
33
  cancelable: boolean;
@@ -40,7 +40,7 @@ interface BaseEvent<E = unknown, C = unknown, T = unknown> {
40
40
  isPropagationStopped(): boolean;
41
41
  persist(): void;
42
42
  timeStamp: number;
43
- type: string & NativeEventTypes;
43
+ type: string;
44
44
  }
45
45
 
46
46
  /**
@@ -50,10 +50,10 @@ interface BaseEvent<E = unknown, C = unknown, T = unknown> {
50
50
  * This might be a child element to the element on which the event listener is registered.
51
51
  * If you thought this should be `EventTarget & T`, see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/11508#issuecomment-256045682
52
52
  */
53
- type NativeEvent<T = PossibleEventTarget, E = Event> = BaseEvent<E, EventTarget & T, EventTarget>;
53
+ type NativeEvent<T = Element, E = Event> = BaseEvent<E, T, T>;
54
54
 
55
55
  interface ClipboardEvent<T = Element> extends NativeEvent<T, NativeClipboardEvent> {
56
- clipboardData?: DataTransfer;
56
+ clipboardData: DataTransfer;
57
57
  }
58
58
 
59
59
  interface CompositionEvent<T = Element> extends NativeEvent<T, NativeCompositionEvent> {
@@ -89,7 +89,7 @@ interface ChangeEvent<T = FormControl> extends FormEvent<T> {
89
89
  target: EventTarget & T;
90
90
  }
91
91
 
92
- export type ModifierKey =
92
+ type ModifierKey =
93
93
  | 'Alt'
94
94
  | 'AltGraph'
95
95
  | 'CapsLock'
@@ -193,116 +193,26 @@ interface TransitionEvent<T = Element> extends NativeEvent<T, NativeTransitionEv
193
193
  //
194
194
  // Event Handler Types
195
195
  // ----------------------------------------------------------------------
196
- type EventHandler<E extends NativeEvent<unknown, unknown>> = // (this: unknown & EventTarget, event: E): void;
197
- (event: E) => void;
198
- type NativeEventHandler<T = Element> = EventHandler<NativeEvent<T>>;
199
- type ClipboardEventHandler<T = Element> = EventHandler<ClipboardEvent<T>>;
200
- type CompositionEventHandler<T = Element> = EventHandler<CompositionEvent<T>>;
201
- type DragEventHandler<T = Element> = EventHandler<DragEvent<T>>;
202
- type FocusEventHandler<T = Element> = EventHandler<FocusEvent<T>>;
203
- type FormEventHandler<T = Element> = EventHandler<FormEvent<T>>;
204
- type ChangeEventHandler<T = Element> = EventHandler<ChangeEvent<T>>;
205
- type KeyboardEventHandler<T = Element> = EventHandler<KeyboardEvent<T>>;
206
- type MouseEventHandler<T = Element> = EventHandler<MouseEvent<T>>;
207
- type TouchEventHandler<T = Element> = EventHandler<TouchEvent<T>>;
208
- type PointerEventHandler<T = Element> = EventHandler<PointerEvent<T>>;
209
- type UIEventHandler<T = Element> = EventHandler<UIEvent<T>>;
210
- type WheelEventHandler<T = Element> = EventHandler<WheelEvent<T>>;
211
- type AnimationEventHandler<T = Element> = EventHandler<AnimationEvent<T>>;
212
- type TransitionEventHandler<T = Element> = EventHandler<TransitionEvent<T>>;
213
-
214
- type SupportedEventObject<T> =
215
- | NativeEvent<T>
216
- | ClipboardEvent<T>
217
- | CompositionEvent<T>
218
- | DragEvent<T>
219
- | FocusEvent<T>
220
- | FormEvent<T>
221
- | ChangeEvent<T>
222
- | KeyboardEvent<T>
223
- | MouseEvent<T>
224
- | TouchEvent<T>
225
- | PointerEvent<T>
226
- | UIEvent<T>
227
- | WheelEvent<T>
228
- | AnimationEvent<T>
229
- | TransitionEvent<T>;
230
-
231
- type SupportedEventHandler<T> =
232
- | NativeEventHandler<T>
233
- | ClipboardEventHandler<T>
234
- | CompositionEventHandler<T>
235
- | DragEventHandler<T>
236
- | FocusEventHandler<T>
237
- | FormEventHandler<T>
238
- | ChangeEventHandler<T>
239
- | KeyboardEventHandler<T>
240
- | MouseEventHandler<T>
241
- | TouchEventHandler<T>
242
- | PointerEventHandler<T>
243
- | UIEventHandler<T>
244
- | WheelEventHandler<T>
245
- | AnimationEventHandler<T>
246
- | TransitionEventHandler<T>;
247
-
248
- type NativeEventTypes =
249
- | 'DOMContentLoaded'
250
- | 'DOMMouseScroll'
251
- | 'abort'
252
- | 'beforeunload'
253
- | 'blur'
254
- | 'change'
255
- | 'click'
256
- | 'contextmenu'
257
- | 'dblclick'
258
- | 'error'
259
- | 'focus'
260
- | 'focusin'
261
- | 'focusout'
262
- | 'gesturechange'
263
- | 'gestureend'
264
- | 'gesturestart'
265
- | 'hover'
266
- | 'keydown'
267
- | 'keypress'
268
- | 'keyup'
269
- | 'load'
270
- | 'mousedown'
271
- | 'mouseenter'
272
- | 'mousein'
273
- | 'mouseleave'
274
- | 'mousemove'
275
- | 'mouseout'
276
- | 'mouseover'
277
- | 'mouseup'
278
- | 'mousewheel'
279
- | 'move'
280
- | 'orientationchange'
281
- | 'pointercancel'
282
- | 'pointerdown'
283
- | 'pointerleave'
284
- | 'pointermove'
285
- | 'pointerup'
286
- | 'readystatechange'
287
- | 'reset'
288
- | 'resize'
289
- | 'scroll'
290
- | 'select'
291
- | 'selectend'
292
- | 'selectstart'
293
- | 'submit'
294
- | 'touchcancel'
295
- | 'touchend'
296
- | 'touchmove'
297
- | 'touchstart'
298
- | 'unload';
196
+ // (this: unknown & EventTarget, event: E): void;
197
+ type EventHandler<T = Element, E = Event | NativeEvent<T>> = (event: E) => void;
198
+ type NativeEventHandler<T = Element> = EventHandler<T, NativeEvent<T>>;
199
+ type ClipboardEventHandler<T = Element> = EventHandler<T, ClipboardEvent<T>>;
200
+ type CompositionEventHandler<T = Element> = EventHandler<T, CompositionEvent<T>>;
201
+ type DragEventHandler<T = Element> = EventHandler<T, DragEvent<T>>;
202
+ type FocusEventHandler<T = Element> = EventHandler<T, FocusEvent<T>>;
203
+ type FormEventHandler<T = Element> = EventHandler<T, FormEvent<T>>;
204
+ type ChangeEventHandler<T = Element> = EventHandler<T, ChangeEvent<T>>;
205
+ type KeyboardEventHandler<T = Element> = EventHandler<T, KeyboardEvent<T>>;
206
+ type MouseEventHandler<T = Element> = EventHandler<T, MouseEvent<T>>;
207
+ type TouchEventHandler<T = Element> = EventHandler<T, TouchEvent<T>>;
208
+ type PointerEventHandler<T = Element> = EventHandler<T, PointerEvent<T>>;
209
+ type UIEventHandler<T = Element> = EventHandler<T, UIEvent<T>>;
210
+ type WheelEventHandler<T = Element> = EventHandler<T, WheelEvent<T>>;
211
+ type AnimationEventHandler<T = Element> = EventHandler<T, AnimationEvent<T>>;
212
+ type TransitionEventHandler<T = Element> = EventHandler<T, TransitionEvent<T>>;
299
213
  type PossibleEventTarget = EventTarget & (Element | Document | Window);
300
214
 
301
215
  export {
302
- SupportedEventObject,
303
- SupportedEventHandler,
304
- EventHandler,
305
- NativeEventTypes,
306
216
  NativeEvent,
307
217
  ClipboardEvent,
308
218
  CompositionEvent,