@anephenix/event-emitter 0.0.6 → 0.0.8
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/EventEmitter.d.ts +13 -0
- package/dist/EventEmitter.d.ts.map +1 -0
- package/dist/EventEmitter.js +34 -0
- package/dist/EventEmitter.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/package.json +12 -5
- package/src/EventEmitter.ts +1 -2
- package/src/index.ts +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type EventMap = Record<string, (...args: unknown[]) => void>;
|
|
2
|
+
declare class EventEmitter<T extends EventMap> {
|
|
3
|
+
events: {
|
|
4
|
+
[K in keyof T]?: T[K][];
|
|
5
|
+
};
|
|
6
|
+
enableLogging: boolean;
|
|
7
|
+
log(...args: unknown[]): void;
|
|
8
|
+
on<K extends keyof T>(event: K, listener: T[K]): void;
|
|
9
|
+
off<K extends keyof T>(event: K, listener: T[K]): void;
|
|
10
|
+
emit<K extends keyof T>(event: K, ...args: Parameters<T[K]>): void;
|
|
11
|
+
}
|
|
12
|
+
export default EventEmitter;
|
|
13
|
+
//# sourceMappingURL=EventEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventEmitter.d.ts","sourceRoot":"","sources":["../src/EventEmitter.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;AAEpE,cAAM,YAAY,CAAC,CAAC,SAAS,QAAQ;IACpC,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;KAAE,CAAM;IACzC,aAAa,UAAS;IAEtB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAMtB,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAOrD,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAMtD,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;CAQlE;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
class EventEmitter {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.events = {};
|
|
4
|
+
this.enableLogging = false;
|
|
5
|
+
}
|
|
6
|
+
log(...args) {
|
|
7
|
+
if (this.enableLogging) {
|
|
8
|
+
console.log(...args);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
on(event, listener) {
|
|
12
|
+
if (!this.events[event]) {
|
|
13
|
+
this.events[event] = [];
|
|
14
|
+
}
|
|
15
|
+
this.events[event].push(listener);
|
|
16
|
+
}
|
|
17
|
+
off(event, listener) {
|
|
18
|
+
const listeners = this.events[event];
|
|
19
|
+
if (!listeners)
|
|
20
|
+
return;
|
|
21
|
+
this.events[event] = listeners.filter((l) => l !== listener);
|
|
22
|
+
}
|
|
23
|
+
emit(event, ...args) {
|
|
24
|
+
this.log("Emitting event:", event, "with args:", ...args);
|
|
25
|
+
const listeners = this.events[event];
|
|
26
|
+
if (!listeners)
|
|
27
|
+
return;
|
|
28
|
+
for (const listener of listeners) {
|
|
29
|
+
listener(...args);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export default EventEmitter;
|
|
34
|
+
//# sourceMappingURL=EventEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../src/EventEmitter.ts"],"names":[],"mappings":"AAGA,MAAM,YAAY;IAAlB;QACC,WAAM,GAAgC,EAAE,CAAC;QACzC,kBAAa,GAAG,KAAK,CAAC;IA6BvB,CAAC;IA3BA,GAAG,CAAC,GAAG,IAAe;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IAED,EAAE,CAAoB,KAAQ,EAAE,QAAc;QAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAoB,KAAQ,EAAE,QAAc;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,CAAoB,KAAQ,EAAE,GAAG,IAAsB;QAC1D,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACnB,CAAC;IACF,CAAC;CACD;AAED,eAAe,YAAY,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anephenix/event-emitter",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "A small EventEmitter library",
|
|
5
5
|
"author": "Paul Jensen <paul@anephenix.com>",
|
|
6
6
|
"maintainers": [
|
|
@@ -22,8 +22,14 @@
|
|
|
22
22
|
},
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"type": "module",
|
|
25
|
-
"main": "
|
|
26
|
-
"types": "
|
|
25
|
+
"main": "dist/index.js",
|
|
26
|
+
"types": "dist/index.d.ts",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"import": "./dist/index.js",
|
|
30
|
+
"types": "./dist/index.d.ts"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
27
33
|
"files": [
|
|
28
34
|
"dist",
|
|
29
35
|
"src"
|
|
@@ -33,7 +39,7 @@
|
|
|
33
39
|
"cover": "npx nyc --reporter=lcov --reporter=text-summary --nycrc-path=./.nyc.json -- npm t -- --coverage",
|
|
34
40
|
"lint": "biome lint",
|
|
35
41
|
"format": "biome format --fix",
|
|
36
|
-
"prepare": "husky
|
|
42
|
+
"prepare": "husky",
|
|
37
43
|
"prepare-patch-release": "npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch",
|
|
38
44
|
"publish-patch-release": "npm run prepare-patch-release && git push origin main && git push --tags",
|
|
39
45
|
"size": "size-limit",
|
|
@@ -47,9 +53,10 @@
|
|
|
47
53
|
}
|
|
48
54
|
],
|
|
49
55
|
"devDependencies": {
|
|
50
|
-
"@biomejs/biome": "^
|
|
56
|
+
"@biomejs/biome": "^2.0.6",
|
|
51
57
|
"@size-limit/esbuild-why": "^11.2.0",
|
|
52
58
|
"@size-limit/preset-small-lib": "^11.2.0",
|
|
59
|
+
"@types/node": "^24.0.13",
|
|
53
60
|
"@vitest/coverage-v8": "^3.1.3",
|
|
54
61
|
"husky": "^9.1.7",
|
|
55
62
|
"size-limit": "^11.2.0",
|
package/src/EventEmitter.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// Generic type for an event map where each key has a listener signature
|
|
2
|
-
|
|
3
|
-
type EventMap = Record<string, (...args: any[]) => void>;
|
|
2
|
+
export type EventMap = Record<string, (...args: unknown[]) => void>;
|
|
4
3
|
|
|
5
4
|
class EventEmitter<T extends EventMap> {
|
|
6
5
|
events: { [K in keyof T]?: T[K][] } = {};
|
package/src/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default } from "./EventEmitter";
|
|
1
|
+
export { default } from "./EventEmitter";
|