@sapphire/event-iterator 1.7.3-pr-725.55b1ff7b.0 → 1.7.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/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ # [@sapphire/event-iterator@1.7.3](https://github.com/sapphiredev/utilities/compare/@sapphire/event-iterator@1.7.2...@sapphire/event-iterator@1.7.3) - (2024-11-02)
6
+
7
+ ## 🏠 Refactor
8
+
9
+ - Resolve several sonar issues ([ba915f9](https://github.com/sapphiredev/utilities/commit/ba915f93ce0907828ba17b2d5ae009631ceb860d)) ([#823](https://github.com/sapphiredev/utilities/pull/823) by @favna)
10
+
11
+ ## 🐛 Bug Fixes
12
+
13
+ - **deps:** Update all non-major dependencies ([083376a](https://github.com/sapphiredev/utilities/commit/083376aac55094dbeddb5194e8a8f0d794b8cceb)) ([#763](https://github.com/sapphiredev/utilities/pull/763) by @renovate[bot])
14
+ - **deps:** Update all non-major dependencies ([e7fdc5d](https://github.com/sapphiredev/utilities/commit/e7fdc5db3632a7f90292ef3978898da32730343a)) ([#752](https://github.com/sapphiredev/utilities/pull/752) by @renovate[bot])
15
+
16
+ ## 📝 Documentation
17
+
18
+ - **readme:** Fix readme table of contents ([c60e8bd](https://github.com/sapphiredev/utilities/commit/c60e8bd9fc89156cf973871597ec3f0ef0308c08))
19
+ - **event-iterator:** Fix tsdoc comments ([85e1063](https://github.com/sapphiredev/utilities/commit/85e1063b72187dbaf00e2be15a1ea4d2d91b43a0))
20
+
5
21
  # [@sapphire/event-iterator@1.7.2](https://github.com/sapphiredev/utilities/compare/@sapphire/event-iterator@1.7.2...@sapphire/event-iterator@1.7.2) - (2024-01-19)
6
22
 
7
23
  ## 🐛 Bug Fixes
package/README.md CHANGED
@@ -7,7 +7,6 @@
7
7
  **Turns event emitter events into async iterators.**
8
8
 
9
9
  [![GitHub](https://img.shields.io/github/license/sapphiredev/utilities)](https://github.com/sapphiredev/utilities/blob/main/LICENSE.md)
10
- [![codecov](https://codecov.io/gh/sapphiredev/utilities/branch/main/graph/badge.svg?token=OEGIV6RFDO)](https://codecov.io/gh/sapphiredev/utilities)
11
10
  [![npm bundle size](https://img.shields.io/bundlephobia/min/@sapphire/event-iterator?logo=webpack&style=flat-square)](https://bundlephobia.com/result?p=@sapphire/event-iterator)
12
11
  [![npm](https://img.shields.io/npm/v/@sapphire/event-iterator?color=crimson&logo=npm&style=flat-square)](https://www.npmjs.com/package/@sapphire/event-iterator)
13
12
 
@@ -21,7 +20,7 @@
21
20
  - [Usage](#usage)
22
21
  - [Basic Usage](#basic-usage)
23
22
  - [Buy us some doughnuts](#buy-us-some-doughnuts)
24
- - [Contributors](#contributors-%E2%9C%A8)
23
+ - [Contributors](#contributors)
25
24
 
26
25
  ## Description
27
26
 
@@ -1,33 +1,19 @@
1
1
  'use strict';
2
2
 
3
3
  var __defProp = Object.defineProperty;
4
+ var __typeError = (msg) => {
5
+ throw TypeError(msg);
6
+ };
4
7
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
8
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
- var __publicField = (obj, key, value) => {
7
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
- return value;
9
- };
10
- var __accessCheck = (obj, member, msg) => {
11
- if (!member.has(obj))
12
- throw TypeError("Cannot " + msg);
13
- };
14
- var __privateGet = (obj, member, getter) => {
15
- __accessCheck(obj, member, "read from private field");
16
- return getter ? getter.call(obj) : member.get(obj);
17
- };
18
- var __privateAdd = (obj, member, value) => {
19
- if (member.has(obj))
20
- throw TypeError("Cannot add the same private member more than once");
21
- member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
22
- };
23
- var __privateSet = (obj, member, value, setter) => {
24
- __accessCheck(obj, member, "write to private field");
25
- setter ? setter.call(obj, value) : member.set(obj, value);
26
- return value;
27
- };
9
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
11
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
12
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
13
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
28
14
  var __privateWrapper = (obj, member, setter, getter) => ({
29
15
  set _(value) {
30
- __privateSet(obj, member, value, setter);
16
+ __privateSet(obj, member, value);
31
17
  },
32
18
  get _() {
33
19
  return __privateGet(obj, member, getter);
@@ -40,7 +26,6 @@ var _EventIterator = class _EventIterator {
40
26
  /**
41
27
  * @param emitter The event emitter to listen to.
42
28
  * @param event The event we're listening for to receives values from.
43
- * @param limit The amount of values to receive before ending the iterator.
44
29
  * @param options Any extra options.
45
30
  */
46
31
  constructor(emitter, event, options = {}) {
@@ -63,7 +48,7 @@ var _EventIterator = class _EventIterator {
63
48
  /**
64
49
  * The amount of idle time in ms before moving on.
65
50
  */
66
- __privateAdd(this, _idle, void 0);
51
+ __privateAdd(this, _idle);
67
52
  /**
68
53
  * The queue of received values.
69
54
  */
@@ -75,7 +60,7 @@ var _EventIterator = class _EventIterator {
75
60
  /**
76
61
  * The limit before ending the EventIterator.
77
62
  */
78
- __privateAdd(this, _limit, void 0);
63
+ __privateAdd(this, _limit);
79
64
  /**
80
65
  * The timer to track when this will idle out.
81
66
  */
@@ -83,18 +68,16 @@ var _EventIterator = class _EventIterator {
83
68
  /**
84
69
  * The push handler with context bound to the instance.
85
70
  */
86
- __privateAdd(this, _push, void 0);
71
+ __privateAdd(this, _push);
87
72
  this.emitter = emitter;
88
73
  this.event = event;
89
74
  __privateSet(this, _limit, options.limit ?? Infinity);
90
75
  __privateSet(this, _idle, options.idle);
91
76
  this.filter = options.filter ?? (() => true);
92
- if (__privateGet(this, _idle))
93
- __privateSet(this, _idleTimer, setTimeout(this.end.bind(this), __privateGet(this, _idle)));
77
+ if (__privateGet(this, _idle)) __privateSet(this, _idleTimer, setTimeout(this.end.bind(this), __privateGet(this, _idle)));
94
78
  __privateSet(this, _push, this.push.bind(this));
95
79
  const maxListeners = this.emitter.getMaxListeners();
96
- if (maxListeners !== 0)
97
- this.emitter.setMaxListeners(maxListeners + 1);
80
+ if (maxListeners !== 0) this.emitter.setMaxListeners(maxListeners + 1);
98
81
  this.emitter.on(this.event, __privateGet(this, _push));
99
82
  }
100
83
  /**
@@ -107,14 +90,12 @@ var _EventIterator = class _EventIterator {
107
90
  * Ends the EventIterator.
108
91
  */
109
92
  end() {
110
- if (__privateGet(this, _ended))
111
- return;
93
+ if (__privateGet(this, _ended)) return;
112
94
  __privateSet(this, _ended, true);
113
95
  __privateSet(this, _queue, []);
114
96
  this.emitter.off(this.event, __privateGet(this, _push));
115
97
  const maxListeners = this.emitter.getMaxListeners();
116
- if (maxListeners !== 0)
117
- this.emitter.setMaxListeners(maxListeners - 1);
98
+ if (maxListeners !== 0) this.emitter.setMaxListeners(maxListeners - 1);
118
99
  }
119
100
  /**
120
101
  * The next value that's received from the EventEmitter.
@@ -122,17 +103,13 @@ var _EventIterator = class _EventIterator {
122
103
  async next() {
123
104
  if (__privateGet(this, _queue).length) {
124
105
  const value = __privateGet(this, _queue).shift();
125
- if (!this.filter(value))
126
- return this.next();
127
- if (++__privateWrapper(this, _passed)._ >= __privateGet(this, _limit))
128
- this.end();
129
- if (__privateGet(this, _idleTimer))
130
- __privateGet(this, _idleTimer).refresh();
106
+ if (!this.filter(value)) return this.next();
107
+ if (++__privateWrapper(this, _passed)._ >= __privateGet(this, _limit)) this.end();
108
+ if (__privateGet(this, _idleTimer)) __privateGet(this, _idleTimer).refresh();
131
109
  return { done: false, value };
132
110
  }
133
111
  if (__privateGet(this, _ended)) {
134
- if (__privateGet(this, _idleTimer))
135
- clearTimeout(__privateGet(this, _idleTimer));
112
+ if (__privateGet(this, _idleTimer)) clearTimeout(__privateGet(this, _idleTimer));
136
113
  return { done: true, value: void 0 };
137
114
  }
138
115
  return new Promise((resolve) => {
@@ -144,8 +121,7 @@ var _EventIterator = class _EventIterator {
144
121
  }, __privateGet(this, _idle));
145
122
  }
146
123
  this.emitter.once(this.event, () => {
147
- if (idleTimer)
148
- clearTimeout(idleTimer);
124
+ if (idleTimer) clearTimeout(idleTimer);
149
125
  resolve(this.next());
150
126
  });
151
127
  });
@@ -188,5 +164,5 @@ __name(_EventIterator, "EventIterator");
188
164
  var EventIterator = _EventIterator;
189
165
 
190
166
  exports.EventIterator = EventIterator;
191
- //# sourceMappingURL=out.js.map
167
+ //# sourceMappingURL=index.cjs.map
192
168
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EventEmitter } from 'node:events';\n\n/**\n * A filter for an EventIterator.\n */\nexport type EventIteratorFilter<V> = (value: V) => boolean;\n\n/**\n * Options to be passed to an EventIterator.\n */\nexport interface EventIteratorOptions<V> {\n\t/**\n\t * The filter.\n\t */\n\tfilter?: EventIteratorFilter<V>;\n\n\t/**\n\t * The timeout in ms before ending the EventIterator.\n\t */\n\tidle?: number;\n\n\t/**\n\t * The limit of events that pass the filter to iterate.\n\t */\n\tlimit?: number;\n}\n\n/**\n * An EventIterator, used for asynchronously iterating over received values.\n */\nexport class EventIterator<V extends unknown[]> implements AsyncIterableIterator<V> {\n\t/**\n\t * The emitter to listen to.\n\t */\n\tpublic readonly emitter: EventEmitter;\n\n\t/**\n\t * The event the event iterator is listening for to receive values from.\n\t */\n\tpublic readonly event: string;\n\n\t/**\n\t * The filter used to filter out values.\n\t */\n\tpublic filter: EventIteratorFilter<V>;\n\n\t/**\n\t * Whether or not the EventIterator has ended.\n\t */\n\t#ended = false;\n\n\t/**\n\t * The amount of idle time in ms before moving on.\n\t */\n\t#idle?: number;\n\n\t/**\n\t * The queue of received values.\n\t */\n\t#queue: V[] = [];\n\n\t/**\n\t * The amount of events that have passed the filter.\n\t */\n\t#passed = 0;\n\n\t/**\n\t * The limit before ending the EventIterator.\n\t */\n\t#limit: number;\n\n\t/**\n\t * The timer to track when this will idle out.\n\t */\n\t#idleTimer: NodeJS.Timeout | undefined | null = null;\n\n\t/**\n\t * The push handler with context bound to the instance.\n\t */\n\t#push: (this: EventIterator<V>, ...value: V) => void;\n\n\t/**\n\t * @param emitter The event emitter to listen to.\n\t * @param event The event we're listening for to receives values from.\n\t * @param limit The amount of values to receive before ending the iterator.\n\t * @param options Any extra options.\n\t */\n\tpublic constructor(emitter: EventEmitter, event: string, options: EventIteratorOptions<V> = {}) {\n\t\tthis.emitter = emitter;\n\t\tthis.event = event;\n\t\tthis.#limit = options.limit ?? Infinity;\n\t\tthis.#idle = options.idle;\n\t\tthis.filter = options.filter ?? ((): boolean => true);\n\n\t\t// This timer is to idle out on lack of valid responses\n\t\tif (this.#idle) this.#idleTimer = setTimeout(this.end.bind(this), this.#idle);\n\n\t\tthis.#push = this.push.bind(this);\n\t\tconst maxListeners = this.emitter.getMaxListeners();\n\t\tif (maxListeners !== 0) this.emitter.setMaxListeners(maxListeners + 1);\n\n\t\tthis.emitter.on(this.event, this.#push);\n\t}\n\n\t/**\n\t * Whether or not the EventIterator has ended.\n\t */\n\tpublic get ended(): boolean {\n\t\treturn this.#ended;\n\t}\n\n\t/**\n\t * Ends the EventIterator.\n\t */\n\tpublic end(): void {\n\t\tif (this.#ended) return;\n\t\tthis.#ended = true;\n\t\tthis.#queue = [];\n\n\t\tthis.emitter.off(this.event, this.#push);\n\t\tconst maxListeners = this.emitter.getMaxListeners();\n\t\tif (maxListeners !== 0) this.emitter.setMaxListeners(maxListeners - 1);\n\t}\n\n\t/**\n\t * The next value that's received from the EventEmitter.\n\t */\n\tpublic async next(): Promise<IteratorResult<V>> {\n\t\t// If there are elements in the queue, return an undone response:\n\t\tif (this.#queue.length) {\n\t\t\tconst value = this.#queue.shift()!;\n\t\t\tif (!this.filter(value)) return this.next();\n\t\t\tif (++this.#passed >= this.#limit) this.end();\n\t\t\tif (this.#idleTimer) this.#idleTimer.refresh();\n\t\t\treturn { done: false, value };\n\t\t}\n\n\t\t// If the iterator ended, clean-up timer and return a done response:\n\t\tif (this.#ended) {\n\t\t\tif (this.#idleTimer) clearTimeout(this.#idleTimer);\n\t\t\treturn { done: true, value: undefined as never };\n\t\t}\n\n\t\t// Listen for a new element from the emitter:\n\t\treturn new Promise<IteratorResult<V>>((resolve) => {\n\t\t\tlet idleTimer: NodeJS.Timeout | undefined | null = null;\n\n\t\t\t// If there is an idle time set, we will create a temporary timer,\n\t\t\t// which will cause the iterator to end if no new elements are received:\n\t\t\tif (this.#idle) {\n\t\t\t\tidleTimer = setTimeout(() => {\n\t\t\t\t\tthis.end();\n\t\t\t\t\tresolve(this.next());\n\t\t\t\t}, this.#idle);\n\t\t\t}\n\n\t\t\t// Once it has received at least one value, we will clear the timer (if defined),\n\t\t\t// and resolve with the new value:\n\t\t\tthis.emitter.once(this.event, () => {\n\t\t\t\tif (idleTimer) clearTimeout(idleTimer);\n\t\t\t\tresolve(this.next());\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Handles what happens when you break or return from a loop.\n\t */\n\tpublic return(): Promise<IteratorResult<V>> {\n\t\tthis.end();\n\t\treturn Promise.resolve({ done: true, value: undefined as never });\n\t}\n\n\t/**\n\t * Handles what happens when you encounter an error in a loop.\n\t */\n\tpublic throw(): Promise<IteratorResult<V>> {\n\t\tthis.end();\n\t\treturn Promise.resolve({ done: true, value: undefined as never });\n\t}\n\n\t/**\n\t * The symbol allowing EventIterators to be used in for-await-of loops.\n\t */\n\tpublic [Symbol.asyncIterator](): AsyncIterableIterator<V> {\n\t\treturn this;\n\t}\n\n\t/**\n\t * Pushes a value into the queue.\n\t */\n\tprotected push(...value: V): void {\n\t\tthis.#queue.push(value);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import type { EventEmitter } from 'node:events';\n\n/**\n * A filter for an EventIterator.\n */\nexport type EventIteratorFilter<V> = (value: V) => boolean;\n\n/**\n * Options to be passed to an EventIterator.\n */\nexport interface EventIteratorOptions<V> {\n\t/**\n\t * The filter.\n\t */\n\tfilter?: EventIteratorFilter<V>;\n\n\t/**\n\t * The timeout in ms before ending the EventIterator.\n\t */\n\tidle?: number;\n\n\t/**\n\t * The limit of events that pass the filter to iterate.\n\t */\n\tlimit?: number;\n}\n\n/**\n * An EventIterator, used for asynchronously iterating over received values.\n */\nexport class EventIterator<V extends unknown[]> implements AsyncIterableIterator<V> {\n\t/**\n\t * The emitter to listen to.\n\t */\n\tpublic readonly emitter: EventEmitter;\n\n\t/**\n\t * The event the event iterator is listening for to receive values from.\n\t */\n\tpublic readonly event: string;\n\n\t/**\n\t * The filter used to filter out values.\n\t */\n\tpublic filter: EventIteratorFilter<V>;\n\n\t/**\n\t * Whether or not the EventIterator has ended.\n\t */\n\t#ended = false;\n\n\t/**\n\t * The amount of idle time in ms before moving on.\n\t */\n\treadonly #idle?: number;\n\n\t/**\n\t * The queue of received values.\n\t */\n\t#queue: V[] = [];\n\n\t/**\n\t * The amount of events that have passed the filter.\n\t */\n\t#passed = 0;\n\n\t/**\n\t * The limit before ending the EventIterator.\n\t */\n\treadonly #limit: number;\n\n\t/**\n\t * The timer to track when this will idle out.\n\t */\n\treadonly #idleTimer: NodeJS.Timeout | undefined | null = null;\n\n\t/**\n\t * The push handler with context bound to the instance.\n\t */\n\treadonly #push: (this: EventIterator<V>, ...value: V) => void;\n\n\t/**\n\t * @param emitter The event emitter to listen to.\n\t * @param event The event we're listening for to receives values from.\n\t * @param options Any extra options.\n\t */\n\tpublic constructor(emitter: EventEmitter, event: string, options: EventIteratorOptions<V> = {}) {\n\t\tthis.emitter = emitter;\n\t\tthis.event = event;\n\t\tthis.#limit = options.limit ?? Infinity;\n\t\tthis.#idle = options.idle;\n\t\tthis.filter = options.filter ?? ((): boolean => true);\n\n\t\t// This timer is to idle out on lack of valid responses\n\t\tif (this.#idle) this.#idleTimer = setTimeout(this.end.bind(this), this.#idle);\n\n\t\tthis.#push = this.push.bind(this);\n\t\tconst maxListeners = this.emitter.getMaxListeners();\n\t\tif (maxListeners !== 0) this.emitter.setMaxListeners(maxListeners + 1);\n\n\t\tthis.emitter.on(this.event, this.#push);\n\t}\n\n\t/**\n\t * Whether or not the EventIterator has ended.\n\t */\n\tpublic get ended(): boolean {\n\t\treturn this.#ended;\n\t}\n\n\t/**\n\t * Ends the EventIterator.\n\t */\n\tpublic end(): void {\n\t\tif (this.#ended) return;\n\t\tthis.#ended = true;\n\t\tthis.#queue = [];\n\n\t\tthis.emitter.off(this.event, this.#push);\n\t\tconst maxListeners = this.emitter.getMaxListeners();\n\t\tif (maxListeners !== 0) this.emitter.setMaxListeners(maxListeners - 1);\n\t}\n\n\t/**\n\t * The next value that's received from the EventEmitter.\n\t */\n\tpublic async next(): Promise<IteratorResult<V>> {\n\t\t// If there are elements in the queue, return an undone response:\n\t\tif (this.#queue.length) {\n\t\t\tconst value = this.#queue.shift()!;\n\t\t\tif (!this.filter(value)) return this.next();\n\t\t\tif (++this.#passed >= this.#limit) this.end();\n\t\t\tif (this.#idleTimer) this.#idleTimer.refresh();\n\t\t\treturn { done: false, value };\n\t\t}\n\n\t\t// If the iterator ended, clean-up timer and return a done response:\n\t\tif (this.#ended) {\n\t\t\tif (this.#idleTimer) clearTimeout(this.#idleTimer);\n\t\t\treturn { done: true, value: undefined as never };\n\t\t}\n\n\t\t// Listen for a new element from the emitter:\n\t\treturn new Promise<IteratorResult<V>>((resolve) => {\n\t\t\tlet idleTimer: NodeJS.Timeout | undefined | null = null;\n\n\t\t\t// If there is an idle time set, we will create a temporary timer,\n\t\t\t// which will cause the iterator to end if no new elements are received:\n\t\t\tif (this.#idle) {\n\t\t\t\tidleTimer = setTimeout(() => {\n\t\t\t\t\tthis.end();\n\t\t\t\t\tresolve(this.next());\n\t\t\t\t}, this.#idle);\n\t\t\t}\n\n\t\t\t// Once it has received at least one value, we will clear the timer (if defined),\n\t\t\t// and resolve with the new value:\n\t\t\tthis.emitter.once(this.event, () => {\n\t\t\t\tif (idleTimer) clearTimeout(idleTimer);\n\t\t\t\tresolve(this.next());\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Handles what happens when you break or return from a loop.\n\t */\n\tpublic return(): Promise<IteratorResult<V>> {\n\t\tthis.end();\n\t\treturn Promise.resolve({ done: true, value: undefined as never });\n\t}\n\n\t/**\n\t * Handles what happens when you encounter an error in a loop.\n\t */\n\tpublic throw(): Promise<IteratorResult<V>> {\n\t\tthis.end();\n\t\treturn Promise.resolve({ done: true, value: undefined as never });\n\t}\n\n\t/**\n\t * The symbol allowing EventIterators to be used in for-await-of loops.\n\t */\n\tpublic [Symbol.asyncIterator](): AsyncIterableIterator<V> {\n\t\treturn this;\n\t}\n\n\t/**\n\t * Pushes a value into the queue.\n\t */\n\tprotected push(...value: V): void {\n\t\tthis.#queue.push(value);\n\t}\n}\n"]}
@@ -41,7 +41,6 @@ declare class EventIterator<V extends unknown[]> implements AsyncIterableIterato
41
41
  /**
42
42
  * @param emitter The event emitter to listen to.
43
43
  * @param event The event we're listening for to receives values from.
44
- * @param limit The amount of values to receive before ending the iterator.
45
44
  * @param options Any extra options.
46
45
  */
47
46
  constructor(emitter: EventEmitter, event: string, options?: EventIteratorOptions<V>);
@@ -41,7 +41,6 @@ declare class EventIterator<V extends unknown[]> implements AsyncIterableIterato
41
41
  /**
42
42
  * @param emitter The event emitter to listen to.
43
43
  * @param event The event we're listening for to receives values from.
44
- * @param limit The amount of values to receive before ending the iterator.
45
44
  * @param options Any extra options.
46
45
  */
47
46
  constructor(emitter: EventEmitter, event: string, options?: EventIteratorOptions<V>);
@@ -1,31 +1,17 @@
1
1
  var __defProp = Object.defineProperty;
2
+ var __typeError = (msg) => {
3
+ throw TypeError(msg);
4
+ };
2
5
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
6
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
- var __publicField = (obj, key, value) => {
5
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
- return value;
7
- };
8
- var __accessCheck = (obj, member, msg) => {
9
- if (!member.has(obj))
10
- throw TypeError("Cannot " + msg);
11
- };
12
- var __privateGet = (obj, member, getter) => {
13
- __accessCheck(obj, member, "read from private field");
14
- return getter ? getter.call(obj) : member.get(obj);
15
- };
16
- var __privateAdd = (obj, member, value) => {
17
- if (member.has(obj))
18
- throw TypeError("Cannot add the same private member more than once");
19
- member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
20
- };
21
- var __privateSet = (obj, member, value, setter) => {
22
- __accessCheck(obj, member, "write to private field");
23
- setter ? setter.call(obj, value) : member.set(obj, value);
24
- return value;
25
- };
7
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
9
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
10
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
11
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
26
12
  var __privateWrapper = (obj, member, setter, getter) => ({
27
13
  set _(value) {
28
- __privateSet(obj, member, value, setter);
14
+ __privateSet(obj, member, value);
29
15
  },
30
16
  get _() {
31
17
  return __privateGet(obj, member, getter);
@@ -38,7 +24,6 @@ var _EventIterator = class _EventIterator {
38
24
  /**
39
25
  * @param emitter The event emitter to listen to.
40
26
  * @param event The event we're listening for to receives values from.
41
- * @param limit The amount of values to receive before ending the iterator.
42
27
  * @param options Any extra options.
43
28
  */
44
29
  constructor(emitter, event, options = {}) {
@@ -61,7 +46,7 @@ var _EventIterator = class _EventIterator {
61
46
  /**
62
47
  * The amount of idle time in ms before moving on.
63
48
  */
64
- __privateAdd(this, _idle, void 0);
49
+ __privateAdd(this, _idle);
65
50
  /**
66
51
  * The queue of received values.
67
52
  */
@@ -73,7 +58,7 @@ var _EventIterator = class _EventIterator {
73
58
  /**
74
59
  * The limit before ending the EventIterator.
75
60
  */
76
- __privateAdd(this, _limit, void 0);
61
+ __privateAdd(this, _limit);
77
62
  /**
78
63
  * The timer to track when this will idle out.
79
64
  */
@@ -81,18 +66,16 @@ var _EventIterator = class _EventIterator {
81
66
  /**
82
67
  * The push handler with context bound to the instance.
83
68
  */
84
- __privateAdd(this, _push, void 0);
69
+ __privateAdd(this, _push);
85
70
  this.emitter = emitter;
86
71
  this.event = event;
87
72
  __privateSet(this, _limit, options.limit ?? Infinity);
88
73
  __privateSet(this, _idle, options.idle);
89
74
  this.filter = options.filter ?? (() => true);
90
- if (__privateGet(this, _idle))
91
- __privateSet(this, _idleTimer, setTimeout(this.end.bind(this), __privateGet(this, _idle)));
75
+ if (__privateGet(this, _idle)) __privateSet(this, _idleTimer, setTimeout(this.end.bind(this), __privateGet(this, _idle)));
92
76
  __privateSet(this, _push, this.push.bind(this));
93
77
  const maxListeners = this.emitter.getMaxListeners();
94
- if (maxListeners !== 0)
95
- this.emitter.setMaxListeners(maxListeners + 1);
78
+ if (maxListeners !== 0) this.emitter.setMaxListeners(maxListeners + 1);
96
79
  this.emitter.on(this.event, __privateGet(this, _push));
97
80
  }
98
81
  /**
@@ -105,14 +88,12 @@ var _EventIterator = class _EventIterator {
105
88
  * Ends the EventIterator.
106
89
  */
107
90
  end() {
108
- if (__privateGet(this, _ended))
109
- return;
91
+ if (__privateGet(this, _ended)) return;
110
92
  __privateSet(this, _ended, true);
111
93
  __privateSet(this, _queue, []);
112
94
  this.emitter.off(this.event, __privateGet(this, _push));
113
95
  const maxListeners = this.emitter.getMaxListeners();
114
- if (maxListeners !== 0)
115
- this.emitter.setMaxListeners(maxListeners - 1);
96
+ if (maxListeners !== 0) this.emitter.setMaxListeners(maxListeners - 1);
116
97
  }
117
98
  /**
118
99
  * The next value that's received from the EventEmitter.
@@ -120,17 +101,13 @@ var _EventIterator = class _EventIterator {
120
101
  async next() {
121
102
  if (__privateGet(this, _queue).length) {
122
103
  const value = __privateGet(this, _queue).shift();
123
- if (!this.filter(value))
124
- return this.next();
125
- if (++__privateWrapper(this, _passed)._ >= __privateGet(this, _limit))
126
- this.end();
127
- if (__privateGet(this, _idleTimer))
128
- __privateGet(this, _idleTimer).refresh();
104
+ if (!this.filter(value)) return this.next();
105
+ if (++__privateWrapper(this, _passed)._ >= __privateGet(this, _limit)) this.end();
106
+ if (__privateGet(this, _idleTimer)) __privateGet(this, _idleTimer).refresh();
129
107
  return { done: false, value };
130
108
  }
131
109
  if (__privateGet(this, _ended)) {
132
- if (__privateGet(this, _idleTimer))
133
- clearTimeout(__privateGet(this, _idleTimer));
110
+ if (__privateGet(this, _idleTimer)) clearTimeout(__privateGet(this, _idleTimer));
134
111
  return { done: true, value: void 0 };
135
112
  }
136
113
  return new Promise((resolve) => {
@@ -142,8 +119,7 @@ var _EventIterator = class _EventIterator {
142
119
  }, __privateGet(this, _idle));
143
120
  }
144
121
  this.emitter.once(this.event, () => {
145
- if (idleTimer)
146
- clearTimeout(idleTimer);
122
+ if (idleTimer) clearTimeout(idleTimer);
147
123
  resolve(this.next());
148
124
  });
149
125
  });
@@ -186,5 +162,5 @@ __name(_EventIterator, "EventIterator");
186
162
  var EventIterator = _EventIterator;
187
163
 
188
164
  export { EventIterator };
189
- //# sourceMappingURL=out.js.map
165
+ //# sourceMappingURL=index.mjs.map
190
166
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AA8BO,IAAM,iBAAN,MAAM,eAAuE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyD5E,YAAY,SAAuB,OAAe,UAAmC,CAAC,GAAG;AArDhG;AAAA;AAAA;AAAA,wBAAgB;AAKhB;AAAA;AAAA;AAAA,wBAAgB;AAKhB;AAAA;AAAA;AAAA,wBAAO;AAKP;AAAA;AAAA;AAAA,+BAAS;AAKT;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA,+BAAc,CAAC;AAKf;AAAA;AAAA;AAAA,gCAAU;AAKV;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA,mCAAgD;AAKhD;AAAA;AAAA;AAAA;AASC,SAAK,UAAU;AACf,SAAK,QAAQ;AACb,uBAAK,QAAS,QAAQ,SAAS;AAC/B,uBAAK,OAAQ,QAAQ;AACrB,SAAK,SAAS,QAAQ,WAAW,MAAe;AAGhD,QAAI,mBAAK;AAAO,yBAAK,YAAa,WAAW,KAAK,IAAI,KAAK,IAAI,GAAG,mBAAK,MAAK;AAE5E,uBAAK,OAAQ,KAAK,KAAK,KAAK,IAAI;AAChC,UAAM,eAAe,KAAK,QAAQ,gBAAgB;AAClD,QAAI,iBAAiB;AAAG,WAAK,QAAQ,gBAAgB,eAAe,CAAC;AAErE,SAAK,QAAQ,GAAG,KAAK,OAAO,mBAAK,MAAK;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAW,QAAiB;AAC3B,WAAO,mBAAK;AAAA,EACb;AAAA;AAAA;AAAA;AAAA,EAKO,MAAY;AAClB,QAAI,mBAAK;AAAQ;AACjB,uBAAK,QAAS;AACd,uBAAK,QAAS,CAAC;AAEf,SAAK,QAAQ,IAAI,KAAK,OAAO,mBAAK,MAAK;AACvC,UAAM,eAAe,KAAK,QAAQ,gBAAgB;AAClD,QAAI,iBAAiB;AAAG,WAAK,QAAQ,gBAAgB,eAAe,CAAC;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,OAAmC;AAE/C,QAAI,mBAAK,QAAO,QAAQ;AACvB,YAAM,QAAQ,mBAAK,QAAO,MAAM;AAChC,UAAI,CAAC,KAAK,OAAO,KAAK;AAAG,eAAO,KAAK,KAAK;AAC1C,UAAW,EAAL,uBAAK,SAAL,KAAgB,mBAAK;AAAQ,aAAK,IAAI;AAC5C,UAAI,mBAAK;AAAY,2BAAK,YAAW,QAAQ;AAC7C,aAAO,EAAE,MAAM,OAAO,MAAM;AAAA,IAC7B;AAGA,QAAI,mBAAK,SAAQ;AAChB,UAAI,mBAAK;AAAY,qBAAa,mBAAK,WAAU;AACjD,aAAO,EAAE,MAAM,MAAM,OAAO,OAAmB;AAAA,IAChD;AAGA,WAAO,IAAI,QAA2B,CAAC,YAAY;AAClD,UAAI,YAA+C;AAInD,UAAI,mBAAK,QAAO;AACf,oBAAY,WAAW,MAAM;AAC5B,eAAK,IAAI;AACT,kBAAQ,KAAK,KAAK,CAAC;AAAA,QACpB,GAAG,mBAAK,MAAK;AAAA,MACd;AAIA,WAAK,QAAQ,KAAK,KAAK,OAAO,MAAM;AACnC,YAAI;AAAW,uBAAa,SAAS;AACrC,gBAAQ,KAAK,KAAK,CAAC;AAAA,MACpB,CAAC;AAAA,IACF,CAAC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKO,SAAqC;AAC3C,SAAK,IAAI;AACT,WAAO,QAAQ,QAAQ,EAAE,MAAM,MAAM,OAAO,OAAmB,CAAC;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA,EAKO,QAAoC;AAC1C,SAAK,IAAI;AACT,WAAO,QAAQ,QAAQ,EAAE,MAAM,MAAM,OAAO,OAAmB,CAAC;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA,EAKA,CAAQ,OAAO,aAAa,IAA8B;AACzD,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKU,QAAQ,OAAgB;AACjC,uBAAK,QAAO,KAAK,KAAK;AAAA,EACvB;AACD;AAjJC;AAKA;AAKA;AAKA;AAKA;AAKA;AAKA;AAjDmF;AAA7E,IAAM,gBAAN","sourcesContent":["import type { EventEmitter } from 'node:events';\n\n/**\n * A filter for an EventIterator.\n */\nexport type EventIteratorFilter<V> = (value: V) => boolean;\n\n/**\n * Options to be passed to an EventIterator.\n */\nexport interface EventIteratorOptions<V> {\n\t/**\n\t * The filter.\n\t */\n\tfilter?: EventIteratorFilter<V>;\n\n\t/**\n\t * The timeout in ms before ending the EventIterator.\n\t */\n\tidle?: number;\n\n\t/**\n\t * The limit of events that pass the filter to iterate.\n\t */\n\tlimit?: number;\n}\n\n/**\n * An EventIterator, used for asynchronously iterating over received values.\n */\nexport class EventIterator<V extends unknown[]> implements AsyncIterableIterator<V> {\n\t/**\n\t * The emitter to listen to.\n\t */\n\tpublic readonly emitter: EventEmitter;\n\n\t/**\n\t * The event the event iterator is listening for to receive values from.\n\t */\n\tpublic readonly event: string;\n\n\t/**\n\t * The filter used to filter out values.\n\t */\n\tpublic filter: EventIteratorFilter<V>;\n\n\t/**\n\t * Whether or not the EventIterator has ended.\n\t */\n\t#ended = false;\n\n\t/**\n\t * The amount of idle time in ms before moving on.\n\t */\n\t#idle?: number;\n\n\t/**\n\t * The queue of received values.\n\t */\n\t#queue: V[] = [];\n\n\t/**\n\t * The amount of events that have passed the filter.\n\t */\n\t#passed = 0;\n\n\t/**\n\t * The limit before ending the EventIterator.\n\t */\n\t#limit: number;\n\n\t/**\n\t * The timer to track when this will idle out.\n\t */\n\t#idleTimer: NodeJS.Timeout | undefined | null = null;\n\n\t/**\n\t * The push handler with context bound to the instance.\n\t */\n\t#push: (this: EventIterator<V>, ...value: V) => void;\n\n\t/**\n\t * @param emitter The event emitter to listen to.\n\t * @param event The event we're listening for to receives values from.\n\t * @param limit The amount of values to receive before ending the iterator.\n\t * @param options Any extra options.\n\t */\n\tpublic constructor(emitter: EventEmitter, event: string, options: EventIteratorOptions<V> = {}) {\n\t\tthis.emitter = emitter;\n\t\tthis.event = event;\n\t\tthis.#limit = options.limit ?? Infinity;\n\t\tthis.#idle = options.idle;\n\t\tthis.filter = options.filter ?? ((): boolean => true);\n\n\t\t// This timer is to idle out on lack of valid responses\n\t\tif (this.#idle) this.#idleTimer = setTimeout(this.end.bind(this), this.#idle);\n\n\t\tthis.#push = this.push.bind(this);\n\t\tconst maxListeners = this.emitter.getMaxListeners();\n\t\tif (maxListeners !== 0) this.emitter.setMaxListeners(maxListeners + 1);\n\n\t\tthis.emitter.on(this.event, this.#push);\n\t}\n\n\t/**\n\t * Whether or not the EventIterator has ended.\n\t */\n\tpublic get ended(): boolean {\n\t\treturn this.#ended;\n\t}\n\n\t/**\n\t * Ends the EventIterator.\n\t */\n\tpublic end(): void {\n\t\tif (this.#ended) return;\n\t\tthis.#ended = true;\n\t\tthis.#queue = [];\n\n\t\tthis.emitter.off(this.event, this.#push);\n\t\tconst maxListeners = this.emitter.getMaxListeners();\n\t\tif (maxListeners !== 0) this.emitter.setMaxListeners(maxListeners - 1);\n\t}\n\n\t/**\n\t * The next value that's received from the EventEmitter.\n\t */\n\tpublic async next(): Promise<IteratorResult<V>> {\n\t\t// If there are elements in the queue, return an undone response:\n\t\tif (this.#queue.length) {\n\t\t\tconst value = this.#queue.shift()!;\n\t\t\tif (!this.filter(value)) return this.next();\n\t\t\tif (++this.#passed >= this.#limit) this.end();\n\t\t\tif (this.#idleTimer) this.#idleTimer.refresh();\n\t\t\treturn { done: false, value };\n\t\t}\n\n\t\t// If the iterator ended, clean-up timer and return a done response:\n\t\tif (this.#ended) {\n\t\t\tif (this.#idleTimer) clearTimeout(this.#idleTimer);\n\t\t\treturn { done: true, value: undefined as never };\n\t\t}\n\n\t\t// Listen for a new element from the emitter:\n\t\treturn new Promise<IteratorResult<V>>((resolve) => {\n\t\t\tlet idleTimer: NodeJS.Timeout | undefined | null = null;\n\n\t\t\t// If there is an idle time set, we will create a temporary timer,\n\t\t\t// which will cause the iterator to end if no new elements are received:\n\t\t\tif (this.#idle) {\n\t\t\t\tidleTimer = setTimeout(() => {\n\t\t\t\t\tthis.end();\n\t\t\t\t\tresolve(this.next());\n\t\t\t\t}, this.#idle);\n\t\t\t}\n\n\t\t\t// Once it has received at least one value, we will clear the timer (if defined),\n\t\t\t// and resolve with the new value:\n\t\t\tthis.emitter.once(this.event, () => {\n\t\t\t\tif (idleTimer) clearTimeout(idleTimer);\n\t\t\t\tresolve(this.next());\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Handles what happens when you break or return from a loop.\n\t */\n\tpublic return(): Promise<IteratorResult<V>> {\n\t\tthis.end();\n\t\treturn Promise.resolve({ done: true, value: undefined as never });\n\t}\n\n\t/**\n\t * Handles what happens when you encounter an error in a loop.\n\t */\n\tpublic throw(): Promise<IteratorResult<V>> {\n\t\tthis.end();\n\t\treturn Promise.resolve({ done: true, value: undefined as never });\n\t}\n\n\t/**\n\t * The symbol allowing EventIterators to be used in for-await-of loops.\n\t */\n\tpublic [Symbol.asyncIterator](): AsyncIterableIterator<V> {\n\t\treturn this;\n\t}\n\n\t/**\n\t * Pushes a value into the queue.\n\t */\n\tprotected push(...value: V): void {\n\t\tthis.#queue.push(value);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import type { EventEmitter } from 'node:events';\n\n/**\n * A filter for an EventIterator.\n */\nexport type EventIteratorFilter<V> = (value: V) => boolean;\n\n/**\n * Options to be passed to an EventIterator.\n */\nexport interface EventIteratorOptions<V> {\n\t/**\n\t * The filter.\n\t */\n\tfilter?: EventIteratorFilter<V>;\n\n\t/**\n\t * The timeout in ms before ending the EventIterator.\n\t */\n\tidle?: number;\n\n\t/**\n\t * The limit of events that pass the filter to iterate.\n\t */\n\tlimit?: number;\n}\n\n/**\n * An EventIterator, used for asynchronously iterating over received values.\n */\nexport class EventIterator<V extends unknown[]> implements AsyncIterableIterator<V> {\n\t/**\n\t * The emitter to listen to.\n\t */\n\tpublic readonly emitter: EventEmitter;\n\n\t/**\n\t * The event the event iterator is listening for to receive values from.\n\t */\n\tpublic readonly event: string;\n\n\t/**\n\t * The filter used to filter out values.\n\t */\n\tpublic filter: EventIteratorFilter<V>;\n\n\t/**\n\t * Whether or not the EventIterator has ended.\n\t */\n\t#ended = false;\n\n\t/**\n\t * The amount of idle time in ms before moving on.\n\t */\n\treadonly #idle?: number;\n\n\t/**\n\t * The queue of received values.\n\t */\n\t#queue: V[] = [];\n\n\t/**\n\t * The amount of events that have passed the filter.\n\t */\n\t#passed = 0;\n\n\t/**\n\t * The limit before ending the EventIterator.\n\t */\n\treadonly #limit: number;\n\n\t/**\n\t * The timer to track when this will idle out.\n\t */\n\treadonly #idleTimer: NodeJS.Timeout | undefined | null = null;\n\n\t/**\n\t * The push handler with context bound to the instance.\n\t */\n\treadonly #push: (this: EventIterator<V>, ...value: V) => void;\n\n\t/**\n\t * @param emitter The event emitter to listen to.\n\t * @param event The event we're listening for to receives values from.\n\t * @param options Any extra options.\n\t */\n\tpublic constructor(emitter: EventEmitter, event: string, options: EventIteratorOptions<V> = {}) {\n\t\tthis.emitter = emitter;\n\t\tthis.event = event;\n\t\tthis.#limit = options.limit ?? Infinity;\n\t\tthis.#idle = options.idle;\n\t\tthis.filter = options.filter ?? ((): boolean => true);\n\n\t\t// This timer is to idle out on lack of valid responses\n\t\tif (this.#idle) this.#idleTimer = setTimeout(this.end.bind(this), this.#idle);\n\n\t\tthis.#push = this.push.bind(this);\n\t\tconst maxListeners = this.emitter.getMaxListeners();\n\t\tif (maxListeners !== 0) this.emitter.setMaxListeners(maxListeners + 1);\n\n\t\tthis.emitter.on(this.event, this.#push);\n\t}\n\n\t/**\n\t * Whether or not the EventIterator has ended.\n\t */\n\tpublic get ended(): boolean {\n\t\treturn this.#ended;\n\t}\n\n\t/**\n\t * Ends the EventIterator.\n\t */\n\tpublic end(): void {\n\t\tif (this.#ended) return;\n\t\tthis.#ended = true;\n\t\tthis.#queue = [];\n\n\t\tthis.emitter.off(this.event, this.#push);\n\t\tconst maxListeners = this.emitter.getMaxListeners();\n\t\tif (maxListeners !== 0) this.emitter.setMaxListeners(maxListeners - 1);\n\t}\n\n\t/**\n\t * The next value that's received from the EventEmitter.\n\t */\n\tpublic async next(): Promise<IteratorResult<V>> {\n\t\t// If there are elements in the queue, return an undone response:\n\t\tif (this.#queue.length) {\n\t\t\tconst value = this.#queue.shift()!;\n\t\t\tif (!this.filter(value)) return this.next();\n\t\t\tif (++this.#passed >= this.#limit) this.end();\n\t\t\tif (this.#idleTimer) this.#idleTimer.refresh();\n\t\t\treturn { done: false, value };\n\t\t}\n\n\t\t// If the iterator ended, clean-up timer and return a done response:\n\t\tif (this.#ended) {\n\t\t\tif (this.#idleTimer) clearTimeout(this.#idleTimer);\n\t\t\treturn { done: true, value: undefined as never };\n\t\t}\n\n\t\t// Listen for a new element from the emitter:\n\t\treturn new Promise<IteratorResult<V>>((resolve) => {\n\t\t\tlet idleTimer: NodeJS.Timeout | undefined | null = null;\n\n\t\t\t// If there is an idle time set, we will create a temporary timer,\n\t\t\t// which will cause the iterator to end if no new elements are received:\n\t\t\tif (this.#idle) {\n\t\t\t\tidleTimer = setTimeout(() => {\n\t\t\t\t\tthis.end();\n\t\t\t\t\tresolve(this.next());\n\t\t\t\t}, this.#idle);\n\t\t\t}\n\n\t\t\t// Once it has received at least one value, we will clear the timer (if defined),\n\t\t\t// and resolve with the new value:\n\t\t\tthis.emitter.once(this.event, () => {\n\t\t\t\tif (idleTimer) clearTimeout(idleTimer);\n\t\t\t\tresolve(this.next());\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Handles what happens when you break or return from a loop.\n\t */\n\tpublic return(): Promise<IteratorResult<V>> {\n\t\tthis.end();\n\t\treturn Promise.resolve({ done: true, value: undefined as never });\n\t}\n\n\t/**\n\t * Handles what happens when you encounter an error in a loop.\n\t */\n\tpublic throw(): Promise<IteratorResult<V>> {\n\t\tthis.end();\n\t\treturn Promise.resolve({ done: true, value: undefined as never });\n\t}\n\n\t/**\n\t * The symbol allowing EventIterators to be used in for-await-of loops.\n\t */\n\tpublic [Symbol.asyncIterator](): AsyncIterableIterator<V> {\n\t\treturn this;\n\t}\n\n\t/**\n\t * Pushes a value into the queue.\n\t */\n\tprotected push(...value: V): void {\n\t\tthis.#queue.push(value);\n\t}\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapphire/event-iterator",
3
- "version": "1.7.3-pr-725.55b1ff7b.0",
3
+ "version": "1.7.3",
4
4
  "description": "Turns event emitter events into async iterators.",
5
5
  "author": "@sapphire",
6
6
  "license": "MIT",
@@ -23,14 +23,14 @@
23
23
  "test": "vitest run",
24
24
  "lint": "eslint src tests --ext ts --fix -c ../../.eslintrc",
25
25
  "build": "tsup && yarn build:rename-cjs-index",
26
- "build:rename-cjs-index": "tsx --tsconfig ../../scripts/tsconfig.json ../../scripts/rename-cjs-index.cts",
26
+ "build:rename-cjs-index": "tsx ../../scripts/rename-cjs-index.cts",
27
27
  "docs": "typedoc-json-parser",
28
28
  "prepack": "yarn build",
29
29
  "bump": "cliff-jumper",
30
30
  "check-update": "cliff-jumper --dry-run"
31
31
  },
32
32
  "dependencies": {
33
- "tslib": "^2.6.2"
33
+ "tslib": "^2.8.1"
34
34
  },
35
35
  "repository": {
36
36
  "type": "git",
@@ -61,13 +61,13 @@
61
61
  "access": "public"
62
62
  },
63
63
  "devDependencies": {
64
- "@favware/cliff-jumper": "^3.0.1",
65
- "@vitest/coverage-v8": "^1.4.0",
66
- "tsup": "^8.0.2",
67
- "tsx": "^4.7.1",
68
- "typedoc": "^0.25.12",
69
- "typedoc-json-parser": "^9.0.1",
70
- "typescript": "^5.4.2",
71
- "vitest": "^1.4.0"
64
+ "@favware/cliff-jumper": "^5.0.0",
65
+ "@vitest/coverage-v8": "^2.1.4",
66
+ "tsup": "^8.3.5",
67
+ "tsx": "^4.19.2",
68
+ "typedoc": "^0.25.13",
69
+ "typedoc-json-parser": "^10.1.6",
70
+ "typescript": "~5.4.5",
71
+ "vitest": "^2.1.4"
72
72
  }
73
73
  }