@toyz/loom 0.19.2 → 0.19.4
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/bus.d.ts +29 -1
- package/dist/bus.d.ts.map +1 -1
- package/dist/bus.js +69 -3
- package/dist/bus.js.map +1 -1
- package/dist/decorators/events.d.ts +14 -0
- package/dist/decorators/events.d.ts.map +1 -1
- package/dist/decorators/events.js +25 -0
- package/dist/decorators/events.js.map +1 -1
- package/dist/event.d.ts +21 -0
- package/dist/event.d.ts.map +1 -1
- package/dist/event.js +23 -0
- package/dist/event.js.map +1 -1
- package/package.json +1 -1
package/dist/bus.d.ts
CHANGED
|
@@ -3,15 +3,43 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Events are classes. The class constructor IS the channel key.
|
|
5
5
|
* No string registry, full type inference.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - on() — persistent subscription
|
|
9
|
+
* - once() — fire-and-forget (auto-unsubs after first fire)
|
|
10
|
+
* - waitFor() — promise-based (resolves on next event, optional timeout)
|
|
11
|
+
* - emit() — dispatches to handlers + walks prototype chain (inheritance)
|
|
12
|
+
* respects event.cancelled to stop propagation
|
|
6
13
|
*/
|
|
7
14
|
import type { LoomEvent } from "./event";
|
|
8
15
|
export type Constructor<T = any> = new (...args: any[]) => T;
|
|
9
16
|
export type Handler<T> = (data: T) => void;
|
|
10
17
|
export declare class EventBus {
|
|
11
18
|
private listeners;
|
|
19
|
+
/**
|
|
20
|
+
* Frame-scoped dedup cache — cleared after the current synchronous flush drains.
|
|
21
|
+
* Only populated when an event returns a non-undefined dedupeKey.
|
|
22
|
+
*/
|
|
23
|
+
private _seen;
|
|
12
24
|
/** Subscribe to a typed event. Returns unsubscribe function. */
|
|
13
25
|
on<T>(type: Constructor<T>, handler: Handler<T>): () => void;
|
|
14
|
-
/**
|
|
26
|
+
/** Subscribe for a single event — auto-unsubscribes after first fire. */
|
|
27
|
+
once<T>(type: Constructor<T>, handler: Handler<T>): () => void;
|
|
28
|
+
/**
|
|
29
|
+
* Wait for the next event of the given type. Returns a promise.
|
|
30
|
+
* Optional timeout in ms — rejects if exceeded.
|
|
31
|
+
*/
|
|
32
|
+
waitFor<T>(type: Constructor<T>, opts?: {
|
|
33
|
+
timeout?: number;
|
|
34
|
+
}): Promise<T>;
|
|
35
|
+
/**
|
|
36
|
+
* Emit a typed event — dispatches to all handlers of that class,
|
|
37
|
+
* then walks the prototype chain to dispatch to parent event handlers.
|
|
38
|
+
* Respects event.cancelled — stops both handler iteration and parent walk.
|
|
39
|
+
*
|
|
40
|
+
* Frame-scoped dedup: if event.dedupeKey is non-undefined, only the first
|
|
41
|
+
* emission with that key per synchronous flush reaches handlers.
|
|
42
|
+
*/
|
|
15
43
|
emit<T extends LoomEvent>(event: T): void;
|
|
16
44
|
/** Remove a specific handler */
|
|
17
45
|
off<T>(type: Constructor<T>, handler: Handler<T>): void;
|
package/dist/bus.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../src/bus.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../src/bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAC7D,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAE3C,qBAAa,QAAQ;IACnB,OAAO,CAAC,SAAS,CAA6C;IAE9D;;;OAGG;IACH,OAAO,CAAC,KAAK,CAA4B;IAEzC,gEAAgE;IAChE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAO5D,yEAAyE;IACzE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAK9D;;;OAGG;IACH,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAgBzE;;;;;;;OAOG;IACH,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IA0BzC,gCAAgC;IAChC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAIvD,kDAAkD;IAClD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAIpC,2BAA2B;IAC3B,KAAK,IAAI,IAAI;CAGd;AAED,8EAA8E;AAC9E,eAAO,IAAI,GAAG,UAAiB,CAAC;AAEhC,+CAA+C;AAC/C,wBAAgB,MAAM,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAExC"}
|
package/dist/bus.js
CHANGED
|
@@ -3,9 +3,21 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Events are classes. The class constructor IS the channel key.
|
|
5
5
|
* No string registry, full type inference.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - on() — persistent subscription
|
|
9
|
+
* - once() — fire-and-forget (auto-unsubs after first fire)
|
|
10
|
+
* - waitFor() — promise-based (resolves on next event, optional timeout)
|
|
11
|
+
* - emit() — dispatches to handlers + walks prototype chain (inheritance)
|
|
12
|
+
* respects event.cancelled to stop propagation
|
|
6
13
|
*/
|
|
7
14
|
export class EventBus {
|
|
8
15
|
listeners = new Map();
|
|
16
|
+
/**
|
|
17
|
+
* Frame-scoped dedup cache — cleared after the current synchronous flush drains.
|
|
18
|
+
* Only populated when an event returns a non-undefined dedupeKey.
|
|
19
|
+
*/
|
|
20
|
+
_seen = null;
|
|
9
21
|
/** Subscribe to a typed event. Returns unsubscribe function. */
|
|
10
22
|
on(type, handler) {
|
|
11
23
|
if (!this.listeners.has(type))
|
|
@@ -14,10 +26,64 @@ export class EventBus {
|
|
|
14
26
|
set.add(handler);
|
|
15
27
|
return () => set.delete(handler);
|
|
16
28
|
}
|
|
17
|
-
/**
|
|
29
|
+
/** Subscribe for a single event — auto-unsubscribes after first fire. */
|
|
30
|
+
once(type, handler) {
|
|
31
|
+
const unsub = this.on(type, (data) => { unsub(); handler(data); });
|
|
32
|
+
return unsub;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Wait for the next event of the given type. Returns a promise.
|
|
36
|
+
* Optional timeout in ms — rejects if exceeded.
|
|
37
|
+
*/
|
|
38
|
+
waitFor(type, opts) {
|
|
39
|
+
return new Promise((resolve, reject) => {
|
|
40
|
+
let timer;
|
|
41
|
+
const unsub = this.once(type, (data) => {
|
|
42
|
+
if (timer)
|
|
43
|
+
clearTimeout(timer);
|
|
44
|
+
resolve(data);
|
|
45
|
+
});
|
|
46
|
+
if (opts?.timeout) {
|
|
47
|
+
timer = setTimeout(() => {
|
|
48
|
+
unsub();
|
|
49
|
+
reject(new Error(`waitFor(${type.name}) timed out after ${opts.timeout}ms`));
|
|
50
|
+
}, opts.timeout);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Emit a typed event — dispatches to all handlers of that class,
|
|
56
|
+
* then walks the prototype chain to dispatch to parent event handlers.
|
|
57
|
+
* Respects event.cancelled — stops both handler iteration and parent walk.
|
|
58
|
+
*
|
|
59
|
+
* Frame-scoped dedup: if event.dedupeKey is non-undefined, only the first
|
|
60
|
+
* emission with that key per synchronous flush reaches handlers.
|
|
61
|
+
*/
|
|
18
62
|
emit(event) {
|
|
19
|
-
|
|
20
|
-
|
|
63
|
+
// Frame-scoped dedup — opt-in via dedupeKey on the event
|
|
64
|
+
const key = event.dedupeKey;
|
|
65
|
+
if (key !== undefined) {
|
|
66
|
+
if (!this._seen) {
|
|
67
|
+
this._seen = new Set();
|
|
68
|
+
// Clear after the current synchronous flush drains
|
|
69
|
+
queueMicrotask(() => { this._seen = null; });
|
|
70
|
+
}
|
|
71
|
+
if (this._seen.has(key))
|
|
72
|
+
return;
|
|
73
|
+
this._seen.add(key);
|
|
74
|
+
}
|
|
75
|
+
let ctor = event.constructor;
|
|
76
|
+
while (ctor && ctor !== Object) {
|
|
77
|
+
const handlers = this.listeners.get(ctor);
|
|
78
|
+
if (handlers) {
|
|
79
|
+
for (const h of handlers) {
|
|
80
|
+
h(event);
|
|
81
|
+
if (event.cancelled)
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
ctor = Object.getPrototypeOf(ctor.prototype)?.constructor ?? null;
|
|
86
|
+
}
|
|
21
87
|
}
|
|
22
88
|
/** Remove a specific handler */
|
|
23
89
|
off(type, handler) {
|
package/dist/bus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bus.js","sourceRoot":"","sources":["../src/bus.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"bus.js","sourceRoot":"","sources":["../src/bus.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,4 +49,18 @@ export declare function on(resolver: (el: any) => EventTarget, event: string): (
|
|
|
49
49
|
* ```
|
|
50
50
|
*/
|
|
51
51
|
export declare function emit<T extends LoomEvent>(_type?: Constructor<T>, factory?: (val: unknown) => T): (value: Function | ClassAccessorDecoratorTarget<any, any>, context: ClassMethodDecoratorContext | ClassAccessorDecoratorContext) => void | ((this: unknown, ...args: unknown[]) => unknown);
|
|
52
|
+
/**
|
|
53
|
+
* Fire-and-forget variant of \@on. Auto-unsubscribes after first fire.
|
|
54
|
+
*
|
|
55
|
+
* Bus event: `\@on.once(AuthComplete)`
|
|
56
|
+
* DOM event: `\@on.once(window, "load")` — uses `{ once: true }`
|
|
57
|
+
*/
|
|
58
|
+
declare function onOnce<T extends LoomEvent>(type: Constructor<T>): (method: Function, context: ClassMethodDecoratorContext) => void;
|
|
59
|
+
declare function onOnce(target: EventTarget, event: string): (method: Function, context: ClassMethodDecoratorContext) => void;
|
|
60
|
+
declare function onOnce(resolver: (el: any) => EventTarget, event: string): (method: Function, context: ClassMethodDecoratorContext) => void;
|
|
61
|
+
/** @internal — type declaration for on.once */
|
|
62
|
+
export declare namespace on {
|
|
63
|
+
const once: typeof onOnce;
|
|
64
|
+
}
|
|
65
|
+
export {};
|
|
52
66
|
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/decorators/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAO,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,EAAE,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC;AAChI,wBAAgB,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC;AACzH,wBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC;AAiCxI;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,SAAS,EACtC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,IAwBrB,OAAO,QAAQ,GAAG,4BAA4B,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,2BAA2B,GAAG,6BAA6B,oBApB7G,OAAO,WAAW,OAAO,EAAE,cA0BrD"}
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/decorators/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAO,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,EAAE,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC;AAChI,wBAAgB,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC;AACzH,wBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC;AAiCxI;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,SAAS,EACtC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,IAwBrB,OAAO,QAAQ,GAAG,4BAA4B,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,2BAA2B,GAAG,6BAA6B,oBApB7G,OAAO,WAAW,OAAO,EAAE,cA0BrD;AAID;;;;;GAKG;AACH,iBAAS,MAAM,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC;AAC7H,iBAAS,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC;AACtH,iBAAS,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC;AA0BrI,+CAA+C;AAE/C,MAAM,CAAC,OAAO,WAAW,EAAE,CAAC;IACnB,MAAM,IAAI,EAAE,OAAO,MAAM,CAAC;CAClC"}
|
|
@@ -85,4 +85,29 @@ export function emit(_type, factory) {
|
|
|
85
85
|
return accessorDecorator(value, context);
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
|
+
function onOnce(typeOrTarget, event) {
|
|
89
|
+
return (method, context) => {
|
|
90
|
+
context.addInitializer(function () {
|
|
91
|
+
if (!this[CONNECT_HOOKS.key])
|
|
92
|
+
this[CONNECT_HOOKS.key] = [];
|
|
93
|
+
this[CONNECT_HOOKS.key].push((el) => {
|
|
94
|
+
if (event !== undefined) {
|
|
95
|
+
// DOM event — use { once: true } for native auto-removal
|
|
96
|
+
const target = typeof typeOrTarget === "function" && !typeOrTarget.prototype
|
|
97
|
+
? typeOrTarget(el)
|
|
98
|
+
: typeOrTarget;
|
|
99
|
+
const fn = (e) => method.call(el, e);
|
|
100
|
+
target.addEventListener(event, fn, { once: true });
|
|
101
|
+
return () => target.removeEventListener(event, fn);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// Bus event — use bus.once() for auto-unsubscribe
|
|
105
|
+
return bus.once(typeOrTarget, (e) => method.call(el, e));
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
// Attach @on.once via namespace merging
|
|
112
|
+
on.once = onOnce;
|
|
88
113
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/decorators/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,GAAG,EAAoB,MAAM,QAAQ,CAAC;AA0B/C,MAAM,UAAU,EAAE,CAAC,YAA+E,EAAE,KAAc;IAChH,OAAO,CAAC,MAAgB,EAAE,OAAoC,EAAE,EAAE;QAChE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEjC,OAAO,CAAC,cAAc,CAAC;YACrB,mDAAmD;YACnD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACvD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,mCAAmC;YACnC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC3D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAO,EAAE,EAAE;gBACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,mFAAmF;oBACnF,MAAM,MAAM,GAAG,OAAO,YAAY,KAAK,UAAU,IAAI,CAAE,YAAoB,CAAC,SAAS;wBACnF,CAAC,CAAE,YAAyC,CAAC,EAAE,CAAC;wBAChD,CAAC,CAAC,YAA2B,CAAC;oBAChC,MAAM,EAAE,GAAG,CAAC,CAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC5C,MAAM,CAAC,gBAAgB,CAAC,KAAM,EAAE,EAAE,CAAC,CAAC;oBACpC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAM,EAAE,EAAE,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,CAAC,EAAE,CAAC,YAAsC,EAAE,CAAC,CAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC9F,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,IAAI,CAClB,KAAsB,EACtB,OAA6B;IAE7B,wBAAwB;IACxB,SAAS,eAAe,CAAC,MAAgB,EAAE,OAAoC;QAC7E,OAAO,UAAyB,GAAG,IAAe;YAChD,MAAM,MAAM,GAAI,MAAuC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1E,IAAI,MAAM,YAAY,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,SAAS,iBAAiB,CACxB,OAA8C,EAC9C,OAA+C;QAE/C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,CAAC,cAAc,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mEAAmE;IACnE,OAAO,CAAC,KAAwD,EAAE,OAAoE,EAAE,EAAE;QACxI,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,eAAe,CAAC,KAAiB,EAAE,OAAsC,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,iBAAiB,CAAC,KAA+C,EAAE,OAAkD,CAAC,CAAC;IAChI,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/decorators/events.ts"],"names":[],"mappings":"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"}
|
package/dist/event.d.ts
CHANGED
|
@@ -13,8 +13,29 @@ import type { Constructor } from "./bus";
|
|
|
13
13
|
export declare abstract class LoomEvent {
|
|
14
14
|
/** Auto-stamped on creation */
|
|
15
15
|
readonly timestamp: number;
|
|
16
|
+
/** Set to true by cancel() — stops subsequent handlers and parent propagation */
|
|
17
|
+
cancelled: boolean;
|
|
18
|
+
/** Stop dispatching to remaining handlers and parent event types */
|
|
19
|
+
cancel(): void;
|
|
20
|
+
/**
|
|
21
|
+
* Optional dedup key — override in a subclass to enable frame-scoped deduplication.
|
|
22
|
+
* If two events with the same dedupeKey are emitted in the same synchronous flush,
|
|
23
|
+
* only the first reaches handlers. Cleared after the current microtask drains.
|
|
24
|
+
*
|
|
25
|
+
* ```ts
|
|
26
|
+
* class ThemeChanged extends LoomEvent {
|
|
27
|
+
* constructor(public theme: string) { super(); }
|
|
28
|
+
* override get dedupeKey() { return `theme:${this.theme}`; }
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* Return `undefined` (default) to disable dedup for this event.
|
|
33
|
+
*/
|
|
34
|
+
get dedupeKey(): string | undefined;
|
|
16
35
|
/** Construct and emit this event through the global bus */
|
|
17
36
|
static dispatch<T extends LoomEvent>(this: new (...args: unknown[]) => T, ...args: ConstructorParameters<typeof this>): void;
|
|
37
|
+
/** Construct this event without emitting — useful for building, inspecting, or cloning before dispatch */
|
|
38
|
+
static create<T extends LoomEvent>(this: new (...args: unknown[]) => T, ...args: ConstructorParameters<typeof this>): T;
|
|
18
39
|
/** Shallow clone with optional overrides */
|
|
19
40
|
clone(overrides?: Partial<this>): this;
|
|
20
41
|
/** Type guard — `if (SomeEvent.is(event))` */
|
package/dist/event.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGzC,8BAAsB,SAAS;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,SAAc;IAEhC,2DAA2D;IAC3D,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,SAAS,EACjC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EACnC,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,IAAI,CAAC,GAC1C,IAAI;IAIP,4CAA4C;IAC5C,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAQtC,8CAA8C;IAC9C,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,SAAS,EAC3B,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,CAAC;IAIb,iDAAiD;IACjD,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQjC,4BAA4B;IAC5B,QAAQ,IAAI,MAAM;CAGnB"}
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGzC,8BAAsB,SAAS;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,SAAc;IAEhC,iFAAiF;IACjF,SAAS,UAAS;IAElB,oEAAoE;IACpE,MAAM,IAAI,IAAI;IAEd;;;;;;;;;;;;;OAaG;IACH,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAAsB;IAEzD,2DAA2D;IAC3D,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,SAAS,EACjC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EACnC,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,IAAI,CAAC,GAC1C,IAAI;IAIP,0GAA0G;IAC1G,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,SAAS,EAC/B,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EACnC,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,IAAI,CAAC,GAC1C,CAAC;IAIJ,4CAA4C;IAC5C,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAQtC,8CAA8C;IAC9C,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,SAAS,EAC3B,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,CAAC;IAIb,iDAAiD;IACjD,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQjC,4BAA4B;IAC5B,QAAQ,IAAI,MAAM;CAGnB"}
|
package/dist/event.js
CHANGED
|
@@ -13,10 +13,33 @@ import { bus } from "./bus";
|
|
|
13
13
|
export class LoomEvent {
|
|
14
14
|
/** Auto-stamped on creation */
|
|
15
15
|
timestamp = Date.now();
|
|
16
|
+
/** Set to true by cancel() — stops subsequent handlers and parent propagation */
|
|
17
|
+
cancelled = false;
|
|
18
|
+
/** Stop dispatching to remaining handlers and parent event types */
|
|
19
|
+
cancel() { this.cancelled = true; }
|
|
20
|
+
/**
|
|
21
|
+
* Optional dedup key — override in a subclass to enable frame-scoped deduplication.
|
|
22
|
+
* If two events with the same dedupeKey are emitted in the same synchronous flush,
|
|
23
|
+
* only the first reaches handlers. Cleared after the current microtask drains.
|
|
24
|
+
*
|
|
25
|
+
* ```ts
|
|
26
|
+
* class ThemeChanged extends LoomEvent {
|
|
27
|
+
* constructor(public theme: string) { super(); }
|
|
28
|
+
* override get dedupeKey() { return `theme:${this.theme}`; }
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* Return `undefined` (default) to disable dedup for this event.
|
|
33
|
+
*/
|
|
34
|
+
get dedupeKey() { return undefined; }
|
|
16
35
|
/** Construct and emit this event through the global bus */
|
|
17
36
|
static dispatch(...args) {
|
|
18
37
|
bus.emit(new this(...args));
|
|
19
38
|
}
|
|
39
|
+
/** Construct this event without emitting — useful for building, inspecting, or cloning before dispatch */
|
|
40
|
+
static create(...args) {
|
|
41
|
+
return new this(...args);
|
|
42
|
+
}
|
|
20
43
|
/** Shallow clone with optional overrides */
|
|
21
44
|
clone(overrides) {
|
|
22
45
|
return Object.assign(Object.create(Object.getPrototypeOf(this)), this, overrides);
|
package/dist/event.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,OAAgB,SAAS;IAC7B,+BAA+B;IACtB,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEhC,2DAA2D;IAC3D,MAAM,CAAC,QAAQ,CAEb,GAAG,IAAwC;QAE3C,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,4CAA4C;IAC5C,KAAK,CAAC,SAAyB;QAC7B,OAAO,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAC1C,IAAI,EACJ,SAAS,CACV,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,MAAM,CAAC,EAAE,CAEP,KAAc;QAEd,OAAO,KAAK,YAAY,IAAI,CAAC;IAC/B,CAAC;IAED,iDAAiD;IACjD,MAAM;QACJ,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,GAAG,CAAC,GAAG,CAAC,GAAI,IAA2C,CAAC,GAAG,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,4BAA4B;IAC5B,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC;IACtE,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,OAAgB,SAAS;IAC7B,+BAA+B;IACtB,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEhC,iFAAiF;IACjF,SAAS,GAAG,KAAK,CAAC;IAElB,oEAAoE;IACpE,MAAM,KAAW,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;IAEzC;;;;;;;;;;;;;OAaG;IACH,IAAI,SAAS,KAAyB,OAAO,SAAS,CAAC,CAAC,CAAC;IAEzD,2DAA2D;IAC3D,MAAM,CAAC,QAAQ,CAEb,GAAG,IAAwC;QAE3C,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,0GAA0G;IAC1G,MAAM,CAAC,MAAM,CAEX,GAAG,IAAwC;QAE3C,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,4CAA4C;IAC5C,KAAK,CAAC,SAAyB;QAC7B,OAAO,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAC1C,IAAI,EACJ,SAAS,CACV,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,MAAM,CAAC,EAAE,CAEP,KAAc;QAEd,OAAO,KAAK,YAAY,IAAI,CAAC;IAC/B,CAAC;IAED,iDAAiD;IACjD,MAAM;QACJ,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,GAAG,CAAC,GAAG,CAAC,GAAI,IAA2C,CAAC,GAAG,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,4BAA4B;IAC5B,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC;IACtE,CAAC;CACF"}
|