diff --git a/demo/effect-integrator.html b/demo/effect-integrator.html
index 0927722..5e454ab 100644
--- a/demo/effect-integrator.html
+++ b/demo/effect-integrator.html
@@ -43,9 +43,9 @@
-
+ >
diff --git a/src/common/EffectIntegrator.ts b/src/common/EffectIntegrator.ts
index f50e849..3adf9a1 100644
--- a/src/common/EffectIntegrator.ts
+++ b/src/common/EffectIntegrator.ts
@@ -4,17 +4,17 @@ import type { FolkShape } from '../folk-shape';
* Coordinates effects between multiple systems, integrating their proposals into a single result.
* Systems register, yield effects, and await integration when all systems are ready.
*/
-export class EffectIntegrator {
- private pending = new Map();
+export class EffectIntegrator {
+ private pending = new Map();
private systems = new Set();
private waiting = new Set();
- private resolvers: ((value: Map) => void)[] = [];
+ private resolvers: ((value: Map) => void)[] = [];
/** Register a system to participate in effect integration */
register(id: string) {
this.systems.add(id);
return {
- yield: (element: Element, effect: T) => {
+ yield: (element: E, effect: T) => {
if (!this.pending.has(element)) {
this.pending.set(element, []);
}
@@ -22,7 +22,7 @@ export class EffectIntegrator {
},
/** Wait for all systems to submit effects, then receive integrated results */
- integrate: async (): Promise