@yume-chan/event 0.0.10 → 0.0.14
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.json +33 -0
- package/CHANGELOG.md +24 -1
- package/LICENSE +1 -1
- package/{dts → esm}/disposable.d.ts +0 -0
- package/{dts → esm}/disposable.d.ts.map +0 -0
- package/esm/disposable.js +1 -1
- package/esm/disposable.js.map +1 -1
- package/{dts → esm}/event-emitter.d.ts +2 -2
- package/esm/event-emitter.d.ts.map +1 -0
- package/esm/event-emitter.js +1 -1
- package/esm/event-emitter.js.map +1 -1
- package/{dts → esm}/event.d.ts +1 -1
- package/esm/event.d.ts.map +1 -0
- package/esm/index.d.ts +5 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +4 -4
- package/esm/index.js.map +1 -1
- package/esm/utils.d.ts +3 -0
- package/esm/utils.d.ts.map +1 -0
- package/esm/utils.js +6 -9
- package/esm/utils.js.map +1 -1
- package/package.json +43 -43
- package/src/event-emitter.ts +2 -2
- package/src/event.ts +1 -1
- package/src/index.ts +4 -4
- package/src/utils.ts +2 -2
- package/dts/event-emitter.d.ts.map +0 -1
- package/dts/event.d.ts.map +0 -1
- package/dts/index.d.ts +0 -5
- package/dts/index.d.ts.map +0 -1
- package/dts/utils.d.ts +0 -3
- package/dts/utils.d.ts.map +0 -1
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yume-chan/event",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.0.14",
|
|
6
|
+
"tag": "@yume-chan/event_v0.0.14",
|
|
7
|
+
"date": "Sat, 30 Apr 2022 14:05:48 GMT",
|
|
8
|
+
"comments": {}
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"version": "0.0.13",
|
|
12
|
+
"tag": "@yume-chan/event_v0.0.13",
|
|
13
|
+
"date": "Thu, 28 Apr 2022 01:23:53 GMT",
|
|
14
|
+
"comments": {}
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"version": "0.0.12",
|
|
18
|
+
"tag": "@yume-chan/event_v0.0.12",
|
|
19
|
+
"date": "Sun, 03 Apr 2022 11:18:47 GMT",
|
|
20
|
+
"comments": {}
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"version": "0.0.11",
|
|
24
|
+
"tag": "@yume-chan/event_v0.0.11",
|
|
25
|
+
"date": "Sun, 03 Apr 2022 11:18:11 GMT",
|
|
26
|
+
"comments": {
|
|
27
|
+
"none": [
|
|
28
|
+
{
|
|
29
|
+
"comment": "Improve compatibility with Node.js 12 ESM format"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"comment": "Update license year"
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
},
|
|
4
37
|
{
|
|
5
38
|
"version": "0.0.10",
|
|
6
39
|
"tag": "@yume-chan/event_v0.0.10",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
# Change Log - @yume-chan/event
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Sat, 30 Apr 2022 14:05:48 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 0.0.14
|
|
6
|
+
Sat, 30 Apr 2022 14:05:48 GMT
|
|
7
|
+
|
|
8
|
+
_Version update only_
|
|
9
|
+
|
|
10
|
+
## 0.0.13
|
|
11
|
+
Thu, 28 Apr 2022 01:23:53 GMT
|
|
12
|
+
|
|
13
|
+
_Version update only_
|
|
14
|
+
|
|
15
|
+
## 0.0.12
|
|
16
|
+
Sun, 03 Apr 2022 11:18:47 GMT
|
|
17
|
+
|
|
18
|
+
_Version update only_
|
|
19
|
+
|
|
20
|
+
## 0.0.11
|
|
21
|
+
Sun, 03 Apr 2022 11:18:11 GMT
|
|
22
|
+
|
|
23
|
+
### Updates
|
|
24
|
+
|
|
25
|
+
- Improve compatibility with Node.js 12 ESM format
|
|
26
|
+
- Update license year
|
|
4
27
|
|
|
5
28
|
## 0.0.10
|
|
6
29
|
Sun, 09 Jan 2022 15:52:20 GMT
|
package/LICENSE
CHANGED
|
File without changes
|
|
File without changes
|
package/esm/disposable.js
CHANGED
package/esm/disposable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disposable.js","sourceRoot":"","sources":["../src/disposable.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,cAAc;
|
|
1
|
+
{"version":3,"file":"disposable.js","sourceRoot":"","sources":["../src/disposable.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,cAAc;IACf,WAAW,GAAiB,EAAE,CAAC;IAEvC;QACI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAES,aAAa,CAAuB,UAAa;QACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,UAAU,CAAC;IACtB,CAAC;IAEM,OAAO;QACV,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YACvC,UAAU,CAAC,OAAO,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC1B,CAAC;CACJ;AAED,MAAM,OAAO,cAAe,SAAQ,cAAc;IACvC,GAAG,CAAuB,UAAa;QAC1C,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Disposable } from './disposable';
|
|
2
|
-
import { EventListener, RemoveEventListener } from './event';
|
|
1
|
+
import type { Disposable } from './disposable.js';
|
|
2
|
+
import type { EventListener, RemoveEventListener } from './event.js';
|
|
3
3
|
export interface EventListenerInfo<TEvent, TResult = unknown> {
|
|
4
4
|
listener: EventListener<TEvent, any, any, TResult>;
|
|
5
5
|
thisArg: unknown;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAErE,MAAM,WAAW,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IACxD,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAEnD,OAAO,EAAE,OAAO,CAAC;IAEjB,IAAI,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,qBAAa,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAE,YAAW,UAAU;IACtE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAM;;IAMxE,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB;IAalF,KAAK,CACR,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,GACtD,mBAAmB;IACf,KAAK,CAAC,KAAK,EAAE,KAAK,SAAS,OAAO,EAAE,EACvC,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EACtD,OAAO,EAAE,KAAK,EACd,GAAG,IAAI,EAAE,KAAK,GACf,mBAAmB;IAcf,IAAI,CAAC,CAAC,EAAE,MAAM;IAMd,OAAO;CAGjB"}
|
package/esm/event-emitter.js
CHANGED
package/esm/event-emitter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,YAAY;
|
|
1
|
+
{"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,YAAY;IACF,SAAS,GAAyC,EAAE,CAAC;IAExE;QACI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAES,gBAAgB,CAAC,IAAwC;QAC/D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1B,MAAM,MAAM,GAAwB,GAAG,EAAE;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACnC;QACL,CAAC,CAAC;QACF,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,OAAO,MAAM,CAAC;IAClB,CAAC;IAUM,KAAK,CACR,QAAsD,EACtD,OAAe,EACf,GAAG,IAAW;QAEd,MAAM,IAAI,GAAuC;YAC7C,QAAQ;YACR,OAAO;YACP,IAAI;SACP,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAEM,IAAI,CAAC,CAAS;QACjB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE;YACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACxD;IACL,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;CACJ"}
|
package/{dts → esm}/event.d.ts
RENAMED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,WAAW,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO;IAC1E,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;CACrD;AAED,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACnD,IAAI,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAC5C;;OAEG;IACH,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAAC;IAE7E;;OAEG;IACH,CAAC,KAAK,EAAE,KAAK,SAAS,OAAO,EAAE,EAC3B,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EACtD,OAAO,EAAE,KAAK,EACd,GAAG,IAAI,EAAE,KAAK,GACf,mBAAmB,CAAC;CAC1B"}
|
package/esm/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
|
package/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './disposable';
|
|
2
|
-
export * from './event';
|
|
3
|
-
export * from './event-emitter';
|
|
4
|
-
export * from './utils';
|
|
1
|
+
export * from './disposable.js';
|
|
2
|
+
export * from './event.js';
|
|
3
|
+
export * from './event-emitter.js';
|
|
4
|
+
export * from './utils.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
|
package/esm/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,wBAAsB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAM9D"}
|
package/esm/utils.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
1
|
import { PromiseResolver } from '@yume-chan/async';
|
|
3
|
-
export function once(event) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return result;
|
|
10
|
-
});
|
|
2
|
+
export async function once(event) {
|
|
3
|
+
const resolver = new PromiseResolver();
|
|
4
|
+
const dispose = event(resolver.resolve);
|
|
5
|
+
const result = await resolver.promise;
|
|
6
|
+
dispose();
|
|
7
|
+
return result;
|
|
11
8
|
}
|
|
12
9
|
//# sourceMappingURL=utils.js.map
|
package/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAI,KAAoB;IAC9C,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAK,CAAC;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;IACtC,OAAO,EAAE,CAAC;IACV,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@yume-chan/event",
|
|
3
|
+
"version": "0.0.14",
|
|
4
|
+
"description": "Event/EventEmitter",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"event",
|
|
7
|
+
"eventemitter",
|
|
8
|
+
"typescript"
|
|
9
|
+
],
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"author": {
|
|
12
|
+
"name": "Simon Chan",
|
|
13
|
+
"email": "cnsimonchan@live.com",
|
|
14
|
+
"url": "https://chensi.moe/blog"
|
|
15
|
+
},
|
|
16
|
+
"homepage": "https://github.com/yume-chan/ya-webadb/tree/master/libraries/event#readme",
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/yume-chan/ya-webadb.git",
|
|
20
|
+
"directory": "libraries/event"
|
|
21
|
+
},
|
|
22
|
+
"bugs": {
|
|
23
|
+
"url": "https://github.com/yume-chan/ya-webadb/issues"
|
|
24
|
+
},
|
|
25
|
+
"type": "module",
|
|
26
|
+
"main": "esm/index.js",
|
|
27
|
+
"types": "esm/index.d.ts",
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@yume-chan/async": "^2.1.4",
|
|
30
|
+
"tslib": "^2.3.1"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"jest": "^27.5.1",
|
|
34
|
+
"typescript": "4.7.0-beta",
|
|
35
|
+
"@yume-chan/ts-package-builder": "^1.0.0"
|
|
36
|
+
},
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "build-ts-package",
|
|
39
|
+
"build:watch": "build-ts-package --incremental",
|
|
40
|
+
"test": "jest --coverage"
|
|
41
|
+
},
|
|
42
|
+
"readme": "# @yume-chan/event\r\n\r\nProvides a strongly-typed EventEmitter/Event implementation.\r\n\r\nInspired by TypeScript, Visual Studio Code, and more.\r\n\r\n- [Disposable](#disposable)\r\n- [AutoDisposable](#autodisposable)\r\n- [DisposableList](#disposablelist)\r\n- [EventEmitter/Event](#eventemitterevent)\r\n\r\n## Disposable\r\n\r\n```ts\r\ninterface Disposable {\r\n dispose(): void;\r\n}\r\n```\r\n\r\nRepresents anything that need cleanup before the garbage collector recycle it.\r\n\r\n## AutoDisposable\r\n\r\n```ts\r\nclass AutoDisposable implements Disposable {\r\n private disposables;\r\n constructor();\r\n protected addDisposable<T extends Disposable>(disposable: T): T;\r\n dispose(): void;\r\n}\r\n```\r\n\r\nA base class for objects that need to manage multiple `Disposable`s.\r\n\r\nCalling `dispose` on it will automatically dispose all `Disposable`s added via `addDisposable`.\r\n\r\nUsually works like:\r\n\r\n```ts\r\nclass MyObject extends AutoDisposable {\r\n private event1 = this.addDisposable(new EventEmitter<void>());\r\n\r\n private event2 = this.addDisposable(new EventEmitter<void>());\r\n\r\n public dispose() {\r\n // If the derived class has its own dispose logic\r\n // Don't forget to call super's `dispose`\r\n super.dispose();\r\n\r\n // Clean up itself.\r\n }\r\n}\r\n```\r\n\r\n## DisposableList\r\n\r\n```ts\r\nclass DisposableList extends AutoDisposable {\r\n add<T extends Disposable>(disposable: T): T;\r\n}\r\n```\r\n\r\nAn `AutoDisposable` that can be used alone (i.e. not as a base class).\r\n\r\n## EventEmitter/Event\r\n\r\n```ts\r\ninterface EventListener<TEvent, TThis, TArgs extends unknown[], TResult> {\r\n (this: TThis, e: TEvent, ...args: TArgs): TResult;\r\n}\r\n\r\ninterface RemoveEventListener extends Disposable {\r\n (): void;\r\n}\r\n\r\ninterface Event<TEvent, TResult = unknown> {\r\n (listener: EventListener<TEvent, unknown, [], TResult>): RemoveEventListener;\r\n <TThis, TArgs extends unknown[]>(listener: EventListener<TEvent, TThis, TArgs, TResult>, thisArg: TThis, ...args: TArgs): RemoveEventListener;\r\n}\r\n\r\nclass EventEmitter<TEvent, TResult = unknown> implements Disposable {\r\n protected readonly listeners: EventListenerInfo<TEvent, TResult>[];\r\n constructor();\r\n protected addEventListener(info: EventListenerInfo<TEvent, TResult>): RemoveEventListener;\r\n event: Event<TEvent, TResult>;\r\n fire(e: TEvent): void;\r\n dispose(): void;\r\n}\r\n\r\n```\r\n\r\n| | Node.js `EventEmitter` | This `EventEmitter` |\r\n| ----------------------------------- | ---------------------- | ------------------- |\r\n| Can emit multiple event types | Yes | No |\r\n| Only trusted source can emit events | No | Yes |\r\n| Strongly-typed | No | Yes |\r\n\r\nOne `EventEmitter` for one event type. So for classes that have multiple event types, multiple `EventEmitter` can be created and assigned to multiple fields.\r\n\r\nUsually classes keep `EventEmitter`s private (using TypeScript's `private` modifier, or ECMAScript private field), only expose the `Event` interface (via `EventEmitter.event`).\r\n\r\nEveryone can subscribe to the event using the `Event` interface, but the event can only be emitted from the `EventEmitter` class.\r\n\r\n```ts\r\nconst emitter = new EventEmitter<void>();\r\nconst subscribe = emitter.event;\r\nconst unsubscribe = subscribe(() => {});\r\nemitter.fire();\r\nunsubscribe();\r\n```\r\n\r\nThe returned `unsubscribe` is both a function and a `Disposable`, so it can be used with `AutoDisposable` or `DisposableList`.\r\n"
|
|
43
|
+
}
|
package/src/event-emitter.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Disposable } from './disposable';
|
|
2
|
-
import { EventListener, RemoveEventListener } from './event';
|
|
1
|
+
import type { Disposable } from './disposable.js';
|
|
2
|
+
import type { EventListener, RemoveEventListener } from './event.js';
|
|
3
3
|
|
|
4
4
|
export interface EventListenerInfo<TEvent, TResult = unknown> {
|
|
5
5
|
listener: EventListener<TEvent, any, any, TResult>;
|
package/src/event.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './disposable';
|
|
2
|
-
export * from './event';
|
|
3
|
-
export * from './event-emitter';
|
|
4
|
-
export * from './utils';
|
|
1
|
+
export * from './disposable.js';
|
|
2
|
+
export * from './event.js';
|
|
3
|
+
export * from './event-emitter.js';
|
|
4
|
+
export * from './utils.js';
|
package/src/utils.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PromiseResolver } from '@yume-chan/async';
|
|
2
|
-
import { Event } from './event';
|
|
2
|
+
import type { Event } from './event.js';
|
|
3
3
|
|
|
4
|
-
export async function once<T>(event: Event<T>): Promise<T> {
|
|
4
|
+
export async function once<T>(event: Event<T, any>): Promise<T> {
|
|
5
5
|
const resolver = new PromiseResolver<T>();
|
|
6
6
|
const dispose = event(resolver.resolve);
|
|
7
7
|
const result = await resolver.promise;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../src/event-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE7D,MAAM,WAAW,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IACxD,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAEnD,OAAO,EAAE,OAAO,CAAC;IAEjB,IAAI,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,qBAAa,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAE,YAAW,UAAU;IACtE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAM;;IAMxE,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB;IAalF,KAAK,CACR,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,GACtD,mBAAmB;IACf,KAAK,CAAC,KAAK,EAAE,KAAK,SAAS,OAAO,EAAE,EACvC,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EACtD,OAAO,EAAE,KAAK,EACd,GAAG,IAAI,EAAE,KAAK,GACf,mBAAmB;IAcf,IAAI,CAAC,CAAC,EAAE,MAAM;IAMd,OAAO;CAGjB"}
|
package/dts/event.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,WAAW,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO;IAC1E,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;CACrD;AAED,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACnD,IAAI,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAC5C;;OAEG;IACH,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAAC;IAE7E;;OAEG;IACH,CAAC,KAAK,EAAE,KAAK,SAAS,OAAO,EAAE,EAC3B,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EACtD,OAAO,EAAE,KAAK,EACd,GAAG,IAAI,EAAE,KAAK,GACf,mBAAmB,CAAC;CAC1B"}
|
package/dts/index.d.ts
DELETED
package/dts/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
|
package/dts/utils.d.ts
DELETED
package/dts/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,wBAAsB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMzD"}
|