happy-dom 8.4.4 → 8.6.0

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.

Potentially problematic release.


This version of happy-dom might be problematic. Click here for more details.

@@ -1,6 +1,7 @@
1
1
  import IEventListener from './IEventListener';
2
2
  import Event from './Event';
3
3
  import IEventTarget from './IEventTarget';
4
+ import IEventListenerOptions from './IEventListenerOptions';
4
5
  /**
5
6
  * Handles events.
6
7
  */
@@ -8,13 +9,18 @@ export default abstract class EventTarget implements IEventTarget {
8
9
  readonly _listeners: {
9
10
  [k: string]: (((event: Event) => void) | IEventListener)[];
10
11
  };
12
+ readonly _listenerOptions: {
13
+ [k: string]: (IEventListenerOptions | null)[];
14
+ };
11
15
  /**
12
16
  * Adds an event listener.
13
17
  *
14
18
  * @param type Event type.
15
19
  * @param listener Listener.
20
+ * @param options An object that specifies characteristics about the event listener.(currently only once)
21
+ * @param options.once
16
22
  */
17
- addEventListener(type: string, listener: ((event: Event) => void) | IEventListener): void;
23
+ addEventListener(type: string, listener: ((event: Event) => void) | IEventListener, options?: IEventListenerOptions): void;
18
24
  /**
19
25
  * Adds an event listener.
20
26
  *
@@ -6,16 +6,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  class EventTarget {
7
7
  constructor() {
8
8
  this._listeners = {};
9
+ this._listenerOptions = {};
9
10
  }
10
11
  /**
11
12
  * Adds an event listener.
12
13
  *
13
14
  * @param type Event type.
14
15
  * @param listener Listener.
16
+ * @param options An object that specifies characteristics about the event listener.(currently only once)
17
+ * @param options.once
15
18
  */
16
- addEventListener(type, listener) {
19
+ addEventListener(type, listener, options) {
17
20
  this._listeners[type] = this._listeners[type] || [];
21
+ this._listenerOptions[type] = this._listenerOptions[type] || [];
18
22
  this._listeners[type].push(listener);
23
+ this._listenerOptions[type].push(options || null);
19
24
  }
20
25
  /**
21
26
  * Adds an event listener.
@@ -28,6 +33,7 @@ class EventTarget {
28
33
  const index = this._listeners[type].indexOf(listener);
29
34
  if (index !== -1) {
30
35
  this._listeners[type].splice(index, 1);
36
+ this._listenerOptions[type].splice(index, 1);
31
37
  }
32
38
  }
33
39
  }
@@ -47,13 +53,18 @@ class EventTarget {
47
53
  this[onEventName].call(this, event);
48
54
  }
49
55
  if (this._listeners[event.type]) {
50
- for (const listener of this._listeners[event.type]) {
56
+ for (let i = 0, max = this._listeners[event.type].length; i < max; i++) {
57
+ const listener = this._listeners[event.type][i];
58
+ const options = this._listenerOptions[event.type][i];
51
59
  if (listener.handleEvent) {
52
60
  listener.handleEvent(event);
53
61
  }
54
62
  else {
55
63
  listener.call(this, event);
56
64
  }
65
+ if (options?.once) {
66
+ this.removeEventListener(event.type, listener);
67
+ }
57
68
  if (event._immediatePropagationStopped) {
58
69
  return !(event.cancelable && event.defaultPrevented);
59
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EventTarget.js","sourceRoot":"","sources":["../../src/event/EventTarget.ts"],"names":[],"mappings":";;AAIA;;GAEG;AACH,MAA8B,WAAW;IAAzC;QACiB,eAAU,GAEtB,EAAE,CAAC;IA6FR,CAAC;IA3FA;;;;;OAKG;IACI,gBAAgB,CAAC,IAAY,EAAE,QAAmD;QACxF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACI,mBAAmB,CACzB,IAAY,EACZ,QAAmD;QAEnD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACvC;SACD;IACF,CAAC;IAED;;;;;OAKG;IACI,aAAa,CAAC,KAAY;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YACnB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;QAE5B,MAAM,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEpD,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,UAAU,EAAE;YAC5C,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACpC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAChC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACnD,IAAqB,QAAS,CAAC,WAAW,EAAE;oBAC1B,QAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBAC9C;qBAAM;oBACmB,QAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;iBACrD;gBACD,IAAI,KAAK,CAAC,4BAA4B,EAAE;oBACvC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;iBACrD;aACD;SACD;QAED,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;OASG;IACI,WAAW,CAAC,IAAY,EAAE,QAAmD;QACnF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;;OASG;IACI,WAAW,CAAC,IAAY,EAAE,QAAmD;QACnF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;CACD;AAhGD,8BAgGC"}
1
+ {"version":3,"file":"EventTarget.js","sourceRoot":"","sources":["../../src/event/EventTarget.ts"],"names":[],"mappings":";;AAKA;;GAEG;AACH,MAA8B,WAAW;IAAzC;QACiB,eAAU,GAEtB,EAAE,CAAC;QACS,qBAAgB,GAE5B,EAAE,CAAC;IA+GR,CAAC;IA7GA;;;;;;;OAOG;IACI,gBAAgB,CACtB,IAAY,EACZ,QAAmD,EACnD,OAA+B;QAE/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAEhE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACI,mBAAmB,CACzB,IAAY,EACZ,QAAmD;QAEnD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAC7C;SACD;IACF,CAAC;IAED;;;;;OAKG;IACI,aAAa,CAAC,KAAY;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YACnB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;QAE5B,MAAM,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEpD,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,UAAU,EAAE;YAC5C,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACpC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAErD,IAAqB,QAAS,CAAC,WAAW,EAAE;oBAC1B,QAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBAC9C;qBAAM;oBACmB,QAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;iBACrD;gBAED,IAAI,OAAO,EAAE,IAAI,EAAE;oBAClB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;iBAC/C;gBAED,IAAI,KAAK,CAAC,4BAA4B,EAAE;oBACvC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;iBACrD;aACD;SACD;QAED,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;OASG;IACI,WAAW,CAAC,IAAY,EAAE,QAAmD;QACnF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;;OASG;IACI,WAAW,CAAC,IAAY,EAAE,QAAmD;QACnF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;CACD;AArHD,8BAqHC"}
@@ -0,0 +1,6 @@
1
+ export default interface IEventListenerOptions {
2
+ once?: boolean;
3
+ capture?: boolean;
4
+ passive?: boolean;
5
+ signal?: unknown;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IEventListenerOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEventListenerOptions.js","sourceRoot":"","sources":["../../src/event/IEventListenerOptions.ts"],"names":[],"mappings":""}
@@ -31,6 +31,7 @@ import HTMLBaseElement from '../nodes/html-base-element/HTMLBaseElement';
31
31
  import HTMLDialogElement from '../nodes/html-dialog-element/HTMLDialogElement';
32
32
  import SVGSVGElement from '../nodes/svg-element/SVGSVGElement';
33
33
  import SVGElement from '../nodes/svg-element/SVGElement';
34
+ import SVGGraphicsElement from '../nodes/svg-element/SVGGraphicsElement';
34
35
  import HTMLScriptElement from '../nodes/html-script-element/HTMLScriptElement';
35
36
  import HTMLImageElement from '../nodes/html-image-element/HTMLImageElement';
36
37
  import DocumentFragment from '../nodes/document-fragment/DocumentFragment';
@@ -149,6 +150,7 @@ export default class Window extends EventTarget implements IWindow {
149
150
  readonly NamedNodeMap: typeof NamedNodeMap;
150
151
  readonly SVGSVGElement: typeof SVGSVGElement;
151
152
  readonly SVGElement: typeof SVGElement;
153
+ readonly SVGGraphicsElement: typeof SVGGraphicsElement;
152
154
  readonly Text: typeof Text;
153
155
  readonly Comment: typeof Comment;
154
156
  readonly ShadowRoot: typeof ShadowRoot;
@@ -56,6 +56,7 @@ const HTMLBaseElement_1 = __importDefault(require("../nodes/html-base-element/HT
56
56
  const HTMLDialogElement_1 = __importDefault(require("../nodes/html-dialog-element/HTMLDialogElement"));
57
57
  const SVGSVGElement_1 = __importDefault(require("../nodes/svg-element/SVGSVGElement"));
58
58
  const SVGElement_1 = __importDefault(require("../nodes/svg-element/SVGElement"));
59
+ const SVGGraphicsElement_1 = __importDefault(require("../nodes/svg-element/SVGGraphicsElement"));
59
60
  const HTMLScriptElement_1 = __importDefault(require("../nodes/html-script-element/HTMLScriptElement"));
60
61
  const HTMLImageElement_1 = __importDefault(require("../nodes/html-image-element/HTMLImageElement"));
61
62
  const Image_1 = __importDefault(require("../nodes/html-image-element/Image"));
@@ -218,6 +219,7 @@ class Window extends EventTarget_1.default {
218
219
  this.NamedNodeMap = NamedNodeMap_1.default;
219
220
  this.SVGSVGElement = SVGSVGElement_1.default;
220
221
  this.SVGElement = SVGElement_1.default;
222
+ this.SVGGraphicsElement = SVGGraphicsElement_1.default;
221
223
  this.Text = Text_1.default;
222
224
  this.Comment = Comment_1.default;
223
225
  this.ShadowRoot = ShadowRoot_1.default;
@@ -1 +1 @@
1
- {"version":3,"file":"Window.js","sourceRoot":"","sources":["../../src/window/Window.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Window.js","sourceRoot":"","sources":["../../src/window/Window.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-dom",
3
- "version": "8.4.4",
3
+ "version": "8.6.0",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/capricorn86/happy-dom",
6
6
  "repository": "https://github.com/capricorn86/happy-dom",
@@ -1,6 +1,7 @@
1
1
  import IEventListener from './IEventListener';
2
2
  import Event from './Event';
3
3
  import IEventTarget from './IEventTarget';
4
+ import IEventListenerOptions from './IEventListenerOptions';
4
5
 
5
6
  /**
6
7
  * Handles events.
@@ -9,16 +10,28 @@ export default abstract class EventTarget implements IEventTarget {
9
10
  public readonly _listeners: {
10
11
  [k: string]: (((event: Event) => void) | IEventListener)[];
11
12
  } = {};
13
+ public readonly _listenerOptions: {
14
+ [k: string]: (IEventListenerOptions | null)[];
15
+ } = {};
12
16
 
13
17
  /**
14
18
  * Adds an event listener.
15
19
  *
16
20
  * @param type Event type.
17
21
  * @param listener Listener.
22
+ * @param options An object that specifies characteristics about the event listener.(currently only once)
23
+ * @param options.once
18
24
  */
19
- public addEventListener(type: string, listener: ((event: Event) => void) | IEventListener): void {
25
+ public addEventListener(
26
+ type: string,
27
+ listener: ((event: Event) => void) | IEventListener,
28
+ options?: IEventListenerOptions
29
+ ): void {
20
30
  this._listeners[type] = this._listeners[type] || [];
31
+ this._listenerOptions[type] = this._listenerOptions[type] || [];
32
+
21
33
  this._listeners[type].push(listener);
34
+ this._listenerOptions[type].push(options || null);
22
35
  }
23
36
 
24
37
  /**
@@ -35,6 +48,7 @@ export default abstract class EventTarget implements IEventTarget {
35
48
  const index = this._listeners[type].indexOf(listener);
36
49
  if (index !== -1) {
37
50
  this._listeners[type].splice(index, 1);
51
+ this._listenerOptions[type].splice(index, 1);
38
52
  }
39
53
  }
40
54
  }
@@ -59,12 +73,20 @@ export default abstract class EventTarget implements IEventTarget {
59
73
  }
60
74
 
61
75
  if (this._listeners[event.type]) {
62
- for (const listener of this._listeners[event.type]) {
76
+ for (let i = 0, max = this._listeners[event.type].length; i < max; i++) {
77
+ const listener = this._listeners[event.type][i];
78
+ const options = this._listenerOptions[event.type][i];
79
+
63
80
  if ((<IEventListener>listener).handleEvent) {
64
81
  (<IEventListener>listener).handleEvent(event);
65
82
  } else {
66
83
  (<(event: Event) => void>listener).call(this, event);
67
84
  }
85
+
86
+ if (options?.once) {
87
+ this.removeEventListener(event.type, listener);
88
+ }
89
+
68
90
  if (event._immediatePropagationStopped) {
69
91
  return !(event.cancelable && event.defaultPrevented);
70
92
  }
@@ -0,0 +1,8 @@
1
+ export default interface IEventListenerOptions {
2
+ once?: boolean;
3
+
4
+ // TODO: Not implemented yet.
5
+ capture?: boolean;
6
+ passive?: boolean;
7
+ signal?: unknown;
8
+ }
@@ -28,6 +28,7 @@ import HTMLBaseElement from '../nodes/html-base-element/HTMLBaseElement';
28
28
  import HTMLDialogElement from '../nodes/html-dialog-element/HTMLDialogElement';
29
29
  import SVGSVGElement from '../nodes/svg-element/SVGSVGElement';
30
30
  import SVGElement from '../nodes/svg-element/SVGElement';
31
+ import SVGGraphicsElement from '../nodes/svg-element/SVGGraphicsElement';
31
32
  import HTMLScriptElement from '../nodes/html-script-element/HTMLScriptElement';
32
33
  import HTMLImageElement from '../nodes/html-image-element/HTMLImageElement';
33
34
  import { default as ImageImplementation } from '../nodes/html-image-element/Image';
@@ -187,6 +188,7 @@ export default class Window extends EventTarget implements IWindow {
187
188
  public readonly NamedNodeMap = NamedNodeMap;
188
189
  public readonly SVGSVGElement = SVGSVGElement;
189
190
  public readonly SVGElement = SVGElement;
191
+ public readonly SVGGraphicsElement = SVGGraphicsElement;
190
192
  public readonly Text = Text;
191
193
  public readonly Comment = Comment;
192
194
  public readonly ShadowRoot = ShadowRoot;