@xynogen/pix-todo 0.1.7 → 0.1.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xynogen/pix-todo",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Pi tool — durable execution checklist (todo)",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
package/src/once.ts CHANGED
@@ -14,7 +14,8 @@
14
14
  */
15
15
  export function once(pi: object, key: string, fn: () => void): void {
16
16
  const g = globalThis as { __pixOnce?: WeakMap<object, Set<string>> };
17
- const registry = (g.__pixOnce ??= new WeakMap<object, Set<string>>());
17
+ if (!g.__pixOnce) g.__pixOnce = new WeakMap<object, Set<string>>();
18
+ const registry = g.__pixOnce;
18
19
  let loaded = registry.get(pi);
19
20
  if (!loaded) {
20
21
  loaded = new Set<string>();
package/src/todo.test.ts CHANGED
@@ -67,7 +67,8 @@ function makeHost(
67
67
  appendCalls.push({ type, data });
68
68
  },
69
69
  on(ev: string, fn: (event: unknown, ctx?: unknown) => unknown) {
70
- (handlers[ev] ??= []).push(fn);
70
+ if (!handlers[ev]) handlers[ev] = [];
71
+ handlers[ev].push(fn);
71
72
  },
72
73
  async emit(ev: string, event?: unknown, ctx?: unknown) {
73
74
  for (const fn of handlers[ev] ?? []) await fn(event, ctx);
@@ -84,10 +85,12 @@ function makeHost(
84
85
  pi,
85
86
  sessionManager,
86
87
  get execute() {
87
- return capturedExecute!;
88
+ if (!capturedExecute) throw new Error("execute not captured");
89
+ return capturedExecute;
88
90
  },
89
91
  get render() {
90
- return capturedRender!;
92
+ if (!capturedRender) throw new Error("render not captured");
93
+ return capturedRender;
91
94
  },
92
95
  appendCalls,
93
96
  async emit(ev: string, event?: unknown, ctx?: unknown) {