@libp2p/interface 2.10.2 → 2.10.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/dist/index.min.js +1 -1
- package/dist/index.min.js.map +3 -3
- package/dist/src/index.d.ts +4 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/keys.d.ts +9 -8
- package/dist/src/keys.d.ts.map +1 -1
- package/dist/src/keys.js.map +1 -1
- package/dist/src/peer-discovery.d.ts +1 -1
- package/dist/src/peer-discovery.d.ts.map +1 -1
- package/dist/src/peer-store.d.ts +17 -9
- package/dist/src/peer-store.d.ts.map +1 -1
- package/dist/src/peer-store.js.map +1 -1
- package/dist/src/pubsub.d.ts +1 -1
- package/dist/src/pubsub.d.ts.map +1 -1
- package/dist/src/stream-handler.d.ts +2 -1
- package/dist/src/stream-handler.d.ts.map +1 -1
- package/dist/src/transport.d.ts +1 -1
- package/dist/src/transport.d.ts.map +1 -1
- package/dist/typedoc-urls.json +1 -6
- package/package.json +4 -9
- package/src/index.ts +4 -5
- package/src/keys.ts +9 -8
- package/src/peer-discovery.ts +1 -1
- package/src/peer-store.ts +19 -9
- package/src/pubsub.ts +1 -1
- package/src/stream-handler.ts +2 -1
- package/src/transport.ts +1 -1
- package/dist/src/event-target.d.ts +0 -36
- package/dist/src/event-target.d.ts.map +0 -1
- package/dist/src/event-target.js +0 -55
- package/dist/src/event-target.js.map +0 -1
- package/dist/src/events.browser.d.ts +0 -5
- package/dist/src/events.browser.d.ts.map +0 -1
- package/dist/src/events.browser.js +0 -5
- package/dist/src/events.browser.js.map +0 -1
- package/dist/src/events.d.ts +0 -6
- package/dist/src/events.d.ts.map +0 -1
- package/dist/src/events.js +0 -13
- package/dist/src/events.js.map +0 -1
- package/src/event-target.ts +0 -106
- package/src/events.browser.ts +0 -4
- package/src/events.ts +0 -12
package/src/peer-store.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AbortOptions } from './index.ts'
|
|
1
2
|
import type { PublicKey } from './keys.js'
|
|
2
3
|
import type { PeerId } from './peer-id.js'
|
|
3
4
|
import type { PeerInfo } from './peer-info.js'
|
|
@@ -147,13 +148,17 @@ export interface PeerQueryOrder { (a: Peer, b: Peer): -1 | 0 | 1 }
|
|
|
147
148
|
/**
|
|
148
149
|
* A query for getting lists of peers
|
|
149
150
|
*/
|
|
150
|
-
export interface PeerQuery {
|
|
151
|
+
export interface PeerQuery extends AbortOptions {
|
|
151
152
|
filters?: PeerQueryFilter[]
|
|
152
153
|
orders?: PeerQueryOrder[]
|
|
153
154
|
limit?: number
|
|
154
155
|
offset?: number
|
|
155
156
|
}
|
|
156
157
|
|
|
158
|
+
export interface ConsumePeerRecordOptions extends AbortOptions {
|
|
159
|
+
expectedPeer?: PeerId
|
|
160
|
+
}
|
|
161
|
+
|
|
157
162
|
export interface PeerStore {
|
|
158
163
|
/**
|
|
159
164
|
* Loop over every peer - the looping is async because we read from a
|
|
@@ -201,7 +206,7 @@ export interface PeerStore {
|
|
|
201
206
|
* // []
|
|
202
207
|
* ```
|
|
203
208
|
*/
|
|
204
|
-
delete(peerId: PeerId): Promise<void>
|
|
209
|
+
delete(peerId: PeerId, options?: AbortOptions): Promise<void>
|
|
205
210
|
|
|
206
211
|
/**
|
|
207
212
|
* Returns true if the passed PeerId is in the peer store
|
|
@@ -216,7 +221,7 @@ export interface PeerStore {
|
|
|
216
221
|
* // true
|
|
217
222
|
* ```
|
|
218
223
|
*/
|
|
219
|
-
has(peerId: PeerId): Promise<boolean>
|
|
224
|
+
has(peerId: PeerId, options?: AbortOptions): Promise<boolean>
|
|
220
225
|
|
|
221
226
|
/**
|
|
222
227
|
* Returns all data stored for the passed PeerId
|
|
@@ -228,7 +233,7 @@ export interface PeerStore {
|
|
|
228
233
|
* // { .. }
|
|
229
234
|
* ```
|
|
230
235
|
*/
|
|
231
|
-
get(peerId: PeerId): Promise<Peer>
|
|
236
|
+
get(peerId: PeerId, options?: AbortOptions): Promise<Peer>
|
|
232
237
|
|
|
233
238
|
/**
|
|
234
239
|
* Returns a PeerInfo object for the passed peer id. This is similar to `get`
|
|
@@ -254,7 +259,7 @@ export interface PeerStore {
|
|
|
254
259
|
* // }
|
|
255
260
|
* ```
|
|
256
261
|
*/
|
|
257
|
-
getInfo (peerId: PeerId): Promise<PeerInfo>
|
|
262
|
+
getInfo (peerId: PeerId, options?: AbortOptions): Promise<PeerInfo>
|
|
258
263
|
|
|
259
264
|
/**
|
|
260
265
|
* Adds a peer to the peer store, overwriting any existing data
|
|
@@ -267,7 +272,7 @@ export interface PeerStore {
|
|
|
267
272
|
* })
|
|
268
273
|
* ```
|
|
269
274
|
*/
|
|
270
|
-
save(id: PeerId, data: PeerData): Promise<Peer>
|
|
275
|
+
save(id: PeerId, data: PeerData, options?: AbortOptions): Promise<Peer>
|
|
271
276
|
|
|
272
277
|
/**
|
|
273
278
|
* Adds a peer to the peer store, overwriting only the passed fields
|
|
@@ -280,7 +285,7 @@ export interface PeerStore {
|
|
|
280
285
|
* })
|
|
281
286
|
* ```
|
|
282
287
|
*/
|
|
283
|
-
patch(id: PeerId, data: PeerData): Promise<Peer>
|
|
288
|
+
patch(id: PeerId, data: PeerData, options?: AbortOptions): Promise<Peer>
|
|
284
289
|
|
|
285
290
|
/**
|
|
286
291
|
* Adds a peer to the peer store, deeply merging any existing data.
|
|
@@ -293,7 +298,7 @@ export interface PeerStore {
|
|
|
293
298
|
* })
|
|
294
299
|
* ```
|
|
295
300
|
*/
|
|
296
|
-
merge(id: PeerId, data: PeerData): Promise<Peer>
|
|
301
|
+
merge(id: PeerId, data: PeerData, options?: AbortOptions): Promise<Peer>
|
|
297
302
|
|
|
298
303
|
/**
|
|
299
304
|
* Unmarshal and verify a signed peer record, extract the multiaddrs and
|
|
@@ -308,5 +313,10 @@ export interface PeerStore {
|
|
|
308
313
|
* await peerStore.consumePeerRecord(buf, expectedPeer)
|
|
309
314
|
* ```
|
|
310
315
|
*/
|
|
311
|
-
consumePeerRecord(buf: Uint8Array,
|
|
316
|
+
consumePeerRecord(buf: Uint8Array, options?: ConsumePeerRecordOptions): Promise<boolean>
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* @deprecated Pass `expectedPeer` as a property of `options` instead
|
|
320
|
+
*/
|
|
321
|
+
consumePeerRecord(buf: Uint8Array, expectedPeer?: PeerId, options?: AbortOptions): Promise<boolean>
|
|
312
322
|
}
|
package/src/pubsub.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Stream } from './connection.js'
|
|
2
|
-
import type { TypedEventTarget } from './event-target.js'
|
|
3
2
|
import type { PublicKey } from './keys.js'
|
|
4
3
|
import type { PeerId } from './peer-id.js'
|
|
5
4
|
import type { Pushable } from 'it-pushable'
|
|
5
|
+
import type { TypedEventTarget } from 'main-event'
|
|
6
6
|
import type { Uint8ArrayList } from 'uint8arraylist'
|
|
7
7
|
|
|
8
8
|
/**
|
package/src/stream-handler.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Connection, Stream } from './connection.js'
|
|
2
|
+
import type { AbortOptions } from './index.ts'
|
|
2
3
|
|
|
3
4
|
export interface IncomingStreamData {
|
|
4
5
|
/**
|
|
@@ -19,7 +20,7 @@ export interface StreamHandler {
|
|
|
19
20
|
(data: IncomingStreamData): void
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
export interface StreamHandlerOptions {
|
|
23
|
+
export interface StreamHandlerOptions extends AbortOptions {
|
|
23
24
|
/**
|
|
24
25
|
* How many incoming streams can be open for this protocol at the same time on each connection
|
|
25
26
|
*
|
package/src/transport.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Connection, ConnectionLimits, MultiaddrConnection } from './connection.js'
|
|
2
|
-
import type { TypedEventTarget } from './event-target.js'
|
|
3
2
|
import type { AbortOptions, ClearableSignal, ConnectionEncrypter } from './index.js'
|
|
4
3
|
import type { StreamMuxerFactory } from './stream-muxer.js'
|
|
5
4
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
5
|
+
import type { TypedEventTarget } from 'main-event'
|
|
6
6
|
import type { ProgressOptions, ProgressEvent } from 'progress-events'
|
|
7
7
|
|
|
8
8
|
export interface ListenerEvents {
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
export interface EventCallback<EventType> {
|
|
2
|
-
(evt: EventType): void;
|
|
3
|
-
}
|
|
4
|
-
export interface EventObject<EventType> {
|
|
5
|
-
handleEvent: EventCallback<EventType>;
|
|
6
|
-
}
|
|
7
|
-
export type EventHandler<EventType> = EventCallback<EventType> | EventObject<EventType>;
|
|
8
|
-
/**
|
|
9
|
-
* Adds types to the EventTarget class. Hopefully this won't be necessary
|
|
10
|
-
* forever.
|
|
11
|
-
*
|
|
12
|
-
* https://github.com/microsoft/TypeScript/issues/28357
|
|
13
|
-
* https://github.com/microsoft/TypeScript/issues/43477
|
|
14
|
-
* https://github.com/microsoft/TypeScript/issues/299
|
|
15
|
-
* etc
|
|
16
|
-
*/
|
|
17
|
-
export interface TypedEventTarget<EventMap extends Record<string, any>> extends EventTarget {
|
|
18
|
-
addEventListener<K extends keyof EventMap>(type: K, listener: EventHandler<EventMap[K]> | null, options?: boolean | AddEventListenerOptions): void;
|
|
19
|
-
listenerCount(type: string): number;
|
|
20
|
-
removeEventListener<K extends keyof EventMap>(type: K, listener?: EventHandler<EventMap[K]> | null, options?: boolean | EventListenerOptions): void;
|
|
21
|
-
removeEventListener(type: string, listener?: EventHandler<Event>, options?: boolean | EventListenerOptions): void;
|
|
22
|
-
safeDispatchEvent<Detail>(type: keyof EventMap, detail?: CustomEventInit<Detail>): boolean;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* An implementation of a typed event target
|
|
26
|
-
*/
|
|
27
|
-
export declare class TypedEventEmitter<EventMap extends Record<string, any>> extends EventTarget implements TypedEventTarget<EventMap> {
|
|
28
|
-
#private;
|
|
29
|
-
constructor();
|
|
30
|
-
listenerCount(type: string): number;
|
|
31
|
-
addEventListener<K extends keyof EventMap>(type: K, listener: EventHandler<EventMap[K]> | null, options?: boolean | AddEventListenerOptions): void;
|
|
32
|
-
removeEventListener<K extends keyof EventMap>(type: K, listener?: EventHandler<EventMap[K]> | null, options?: boolean | EventListenerOptions): void;
|
|
33
|
-
dispatchEvent(event: Event): boolean;
|
|
34
|
-
safeDispatchEvent<Detail>(type: keyof EventMap, detail?: CustomEventInit<Detail>): boolean;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=event-target.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-target.d.ts","sourceRoot":"","sources":["../../src/event-target.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa,CAAC,SAAS;IAAI,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE;AACpE,MAAM,WAAW,WAAW,CAAC,SAAS;IAAI,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;CAAE;AACjF,MAAM,MAAM,YAAY,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAOvF;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB,CAAE,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,WAAW;IAC1F,gBAAgB,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI,CAAA;IAElJ,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAEpC,mBAAmB,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAAA;IAEnJ,mBAAmB,CAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAAA;IAElH,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,EAAE,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAA;CAC3F;AAED;;GAEG;AACH,qBAAa,iBAAiB,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,WAAY,YAAW,gBAAgB,CAAC,QAAQ,CAAC;;;IAW5H,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAUpC,gBAAgB,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;IAiBlJ,mBAAmB,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI;IAcnJ,aAAa,CAAE,KAAK,EAAE,KAAK,GAAG,OAAO;IAerC,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,EAAE,MAAM,GAAE,eAAe,CAAC,MAAM,CAAM,GAAG,OAAO;CAG/F"}
|
package/dist/src/event-target.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { setMaxListeners } from './events.js';
|
|
2
|
-
/**
|
|
3
|
-
* An implementation of a typed event target
|
|
4
|
-
*/
|
|
5
|
-
export class TypedEventEmitter extends EventTarget {
|
|
6
|
-
#listeners = new Map();
|
|
7
|
-
constructor() {
|
|
8
|
-
super();
|
|
9
|
-
// silence MaxListenersExceededWarning warning on Node.js, this is a red
|
|
10
|
-
// herring almost all of the time
|
|
11
|
-
setMaxListeners(Infinity, this);
|
|
12
|
-
}
|
|
13
|
-
listenerCount(type) {
|
|
14
|
-
const listeners = this.#listeners.get(type);
|
|
15
|
-
if (listeners == null) {
|
|
16
|
-
return 0;
|
|
17
|
-
}
|
|
18
|
-
return listeners.length;
|
|
19
|
-
}
|
|
20
|
-
addEventListener(type, listener, options) {
|
|
21
|
-
super.addEventListener(type, listener, options);
|
|
22
|
-
let list = this.#listeners.get(type);
|
|
23
|
-
if (list == null) {
|
|
24
|
-
list = [];
|
|
25
|
-
this.#listeners.set(type, list);
|
|
26
|
-
}
|
|
27
|
-
list.push({
|
|
28
|
-
callback: listener,
|
|
29
|
-
once: (options !== true && options !== false && options?.once) ?? false
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
removeEventListener(type, listener, options) {
|
|
33
|
-
super.removeEventListener(type.toString(), listener ?? null, options);
|
|
34
|
-
let list = this.#listeners.get(type);
|
|
35
|
-
if (list == null) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
list = list.filter(({ callback }) => callback !== listener);
|
|
39
|
-
this.#listeners.set(type, list);
|
|
40
|
-
}
|
|
41
|
-
dispatchEvent(event) {
|
|
42
|
-
const result = super.dispatchEvent(event);
|
|
43
|
-
let list = this.#listeners.get(event.type);
|
|
44
|
-
if (list == null) {
|
|
45
|
-
return result;
|
|
46
|
-
}
|
|
47
|
-
list = list.filter(({ once }) => !once);
|
|
48
|
-
this.#listeners.set(event.type, list);
|
|
49
|
-
return result;
|
|
50
|
-
}
|
|
51
|
-
safeDispatchEvent(type, detail = {}) {
|
|
52
|
-
return this.dispatchEvent(new CustomEvent(type, detail));
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=event-target.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-target.js","sourceRoot":"","sources":["../../src/event-target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAgC7C;;GAEG;AACH,MAAM,OAAO,iBAAwD,SAAQ,WAAW;IAC7E,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAA;IAEhD;QACE,KAAK,EAAE,CAAA;QAEP,wEAAwE;QACxE,iCAAiC;QACjC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,aAAa,CAAE,IAAY;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAE3C,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,OAAO,CAAC,CAAA;QACV,CAAC;QAED,OAAO,SAAS,CAAC,MAAM,CAAA;IACzB,CAAC;IAGD,gBAAgB,CAAE,IAAY,EAAE,QAA6B,EAAE,OAA2C;QACxG,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAE/C,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,GAAG,EAAE,CAAA;YACT,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC;YACR,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK;SACxE,CAAC,CAAA;IACJ,CAAC;IAGD,mBAAmB,CAAE,IAAY,EAAE,QAA8B,EAAE,OAAwC;QACzG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,IAAI,IAAI,EAAE,OAAO,CAAC,CAAA;QAErE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;QAC3D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,aAAa,CAAE,KAAY;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAEzC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE1C,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAErC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,iBAAiB,CAAS,IAAoB,EAAE,SAAkC,EAAE;QAClF,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAS,IAAc,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5E,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.browser.d.ts","sourceRoot":"","sources":["../../src/events.browser.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,eAAe,IAAK,IAAI,CAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.browser.js","sourceRoot":"","sources":["../../src/events.browser.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,eAAe,KAAW,CAAC"}
|
package/dist/src/events.d.ts
DELETED
package/dist/src/events.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEpE;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,OAAO,mBAMpC,CAAA"}
|
package/dist/src/events.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { setMaxListeners as nodeSetMaxListeners } from 'node:events';
|
|
2
|
-
/**
|
|
3
|
-
* Create a setMaxListeners that doesn't break browser usage
|
|
4
|
-
*/
|
|
5
|
-
export const setMaxListeners = (n, ...eventTargets) => {
|
|
6
|
-
try {
|
|
7
|
-
nodeSetMaxListeners(n, ...eventTargets);
|
|
8
|
-
}
|
|
9
|
-
catch {
|
|
10
|
-
// swallow error, gulp
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=events.js.map
|
package/dist/src/events.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAA+B,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,EAAE;IAChF,IAAI,CAAC;QACH,mBAAmB,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,CAAA;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;AACH,CAAC,CAAA"}
|
package/src/event-target.ts
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { setMaxListeners } from './events.js'
|
|
2
|
-
|
|
3
|
-
export interface EventCallback<EventType> { (evt: EventType): void }
|
|
4
|
-
export interface EventObject<EventType> { handleEvent: EventCallback<EventType> }
|
|
5
|
-
export type EventHandler<EventType> = EventCallback<EventType> | EventObject<EventType>
|
|
6
|
-
|
|
7
|
-
interface Listener {
|
|
8
|
-
once: boolean
|
|
9
|
-
callback: any
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Adds types to the EventTarget class. Hopefully this won't be necessary
|
|
14
|
-
* forever.
|
|
15
|
-
*
|
|
16
|
-
* https://github.com/microsoft/TypeScript/issues/28357
|
|
17
|
-
* https://github.com/microsoft/TypeScript/issues/43477
|
|
18
|
-
* https://github.com/microsoft/TypeScript/issues/299
|
|
19
|
-
* etc
|
|
20
|
-
*/
|
|
21
|
-
export interface TypedEventTarget <EventMap extends Record<string, any>> extends EventTarget {
|
|
22
|
-
addEventListener<K extends keyof EventMap>(type: K, listener: EventHandler<EventMap[K]> | null, options?: boolean | AddEventListenerOptions): void
|
|
23
|
-
|
|
24
|
-
listenerCount (type: string): number
|
|
25
|
-
|
|
26
|
-
removeEventListener<K extends keyof EventMap>(type: K, listener?: EventHandler<EventMap[K]> | null, options?: boolean | EventListenerOptions): void
|
|
27
|
-
|
|
28
|
-
removeEventListener (type: string, listener?: EventHandler<Event>, options?: boolean | EventListenerOptions): void
|
|
29
|
-
|
|
30
|
-
safeDispatchEvent<Detail>(type: keyof EventMap, detail?: CustomEventInit<Detail>): boolean
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* An implementation of a typed event target
|
|
35
|
-
*/
|
|
36
|
-
export class TypedEventEmitter<EventMap extends Record<string, any>> extends EventTarget implements TypedEventTarget<EventMap> {
|
|
37
|
-
readonly #listeners = new Map<any, Listener[]>()
|
|
38
|
-
|
|
39
|
-
constructor () {
|
|
40
|
-
super()
|
|
41
|
-
|
|
42
|
-
// silence MaxListenersExceededWarning warning on Node.js, this is a red
|
|
43
|
-
// herring almost all of the time
|
|
44
|
-
setMaxListeners(Infinity, this)
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
listenerCount (type: string): number {
|
|
48
|
-
const listeners = this.#listeners.get(type)
|
|
49
|
-
|
|
50
|
-
if (listeners == null) {
|
|
51
|
-
return 0
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return listeners.length
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
addEventListener<K extends keyof EventMap>(type: K, listener: EventHandler<EventMap[K]> | null, options?: boolean | AddEventListenerOptions): void
|
|
58
|
-
addEventListener (type: string, listener: EventHandler<Event>, options?: boolean | AddEventListenerOptions): void {
|
|
59
|
-
super.addEventListener(type, listener, options)
|
|
60
|
-
|
|
61
|
-
let list = this.#listeners.get(type)
|
|
62
|
-
|
|
63
|
-
if (list == null) {
|
|
64
|
-
list = []
|
|
65
|
-
this.#listeners.set(type, list)
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
list.push({
|
|
69
|
-
callback: listener,
|
|
70
|
-
once: (options !== true && options !== false && options?.once) ?? false
|
|
71
|
-
})
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
removeEventListener<K extends keyof EventMap>(type: K, listener?: EventHandler<EventMap[K]> | null, options?: boolean | EventListenerOptions): void
|
|
75
|
-
removeEventListener (type: string, listener?: EventHandler<Event>, options?: boolean | EventListenerOptions): void {
|
|
76
|
-
super.removeEventListener(type.toString(), listener ?? null, options)
|
|
77
|
-
|
|
78
|
-
let list = this.#listeners.get(type)
|
|
79
|
-
|
|
80
|
-
if (list == null) {
|
|
81
|
-
return
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
list = list.filter(({ callback }) => callback !== listener)
|
|
85
|
-
this.#listeners.set(type, list)
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
dispatchEvent (event: Event): boolean {
|
|
89
|
-
const result = super.dispatchEvent(event)
|
|
90
|
-
|
|
91
|
-
let list = this.#listeners.get(event.type)
|
|
92
|
-
|
|
93
|
-
if (list == null) {
|
|
94
|
-
return result
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
list = list.filter(({ once }) => !once)
|
|
98
|
-
this.#listeners.set(event.type, list)
|
|
99
|
-
|
|
100
|
-
return result
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
safeDispatchEvent<Detail>(type: keyof EventMap, detail: CustomEventInit<Detail> = {}): boolean {
|
|
104
|
-
return this.dispatchEvent(new CustomEvent<Detail>(type as string, detail))
|
|
105
|
-
}
|
|
106
|
-
}
|
package/src/events.browser.ts
DELETED
package/src/events.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { setMaxListeners as nodeSetMaxListeners } from 'node:events'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Create a setMaxListeners that doesn't break browser usage
|
|
5
|
-
*/
|
|
6
|
-
export const setMaxListeners: typeof nodeSetMaxListeners = (n, ...eventTargets) => {
|
|
7
|
-
try {
|
|
8
|
-
nodeSetMaxListeners(n, ...eventTargets)
|
|
9
|
-
} catch {
|
|
10
|
-
// swallow error, gulp
|
|
11
|
-
}
|
|
12
|
-
}
|