@gobing-ai/ts-infra 0.5.16 → 0.5.18

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.
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/event-bus/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,KAAK,EAER,oBAAoB,EACpB,kBAAkB,EAElB,QAAQ,EAER,gBAAgB,EACnB,MAAM,SAAS,CAAC;AAQjB;;;GAGG;AACH,qBAAa,QAAQ,CAAC,OAAO,SAAS,QAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyD;IACtF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyD;IACvF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6C;IAC7E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6C;IAC/E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,kBAAkB,CAAK;gBACnB,IAAI,CAAC,EAAE;QACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,YAAY,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB;IAMD,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAQzF,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAS3F,GAAG,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAmBjE,kBAAkB,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI;IAgBtD,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA4F7F,aAAa,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM;IAMjF,UAAU,IAAI,MAAM,EAAE;IAOtB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,iBAAiB;IAUzB,6EAA6E;IAC7E,OAAO,CAAC,4BAA4B;IAWpC;;;;;;;;;;;;OAYG;IACH,gBAAgB,IAAI,UAAU,CAAC,oBAAoB,CAAC;IAepD,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,oBAAoB;CAU/B"}
1
+ {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/event-bus/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,KAAK,EAER,oBAAoB,EACpB,kBAAkB,EAElB,QAAQ,EAER,gBAAgB,EACnB,MAAM,SAAS,CAAC;AAQjB;;;GAGG;AACH,qBAAa,QAAQ,CAAC,OAAO,SAAS,QAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyD;IACtF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyD;IACvF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6C;IAC7E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6C;IAC/E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,kBAAkB,CAAK;gBACnB,IAAI,CAAC,EAAE;QACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,YAAY,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB;IAMD,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAQzF,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAS3F,GAAG,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAmBjE,kBAAkB,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI;IAgBtD,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA4F7F,aAAa,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM;IAMjF,UAAU,IAAI,MAAM,EAAE;IAOtB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,iBAAiB;IAUzB,6EAA6E;IAC7E,OAAO,CAAC,4BAA4B;IAWpC;;;;;;;;;;;;OAYG;IACH,gBAAgB,IAAI,UAAU,CAAC,oBAAoB,CAAC;IAepD,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,oBAAoB;CAU/B"}
@@ -35,7 +35,7 @@ export class EventBus {
35
35
  once(event, handler, opts) {
36
36
  const wrapped = ((...args) => {
37
37
  this.off(event, wrapped);
38
- handler(...args);
38
+ return handler(...args);
39
39
  });
40
40
  this.on(event, wrapped, opts);
41
41
  }
@@ -182,12 +182,6 @@ export class EventBus {
182
182
  set.add(handler);
183
183
  }
184
184
  registerAsync(event, handler, name) {
185
- let set = this.asyncHandlers.get(event);
186
- if (!set) {
187
- set = new Set();
188
- this.asyncHandlers.set(event, set);
189
- }
190
- set.add(handler);
191
185
  if (!this.asyncHandlerIds.has(handler)) {
192
186
  const id = name ?? `handler-${++this.nextAsyncHandlerId}`;
193
187
  if (this.asyncHandlersById.has(id)) {
@@ -196,6 +190,12 @@ export class EventBus {
196
190
  this.asyncHandlerIds.set(handler, id);
197
191
  this.asyncHandlersById.set(id, handler);
198
192
  }
193
+ let set = this.asyncHandlers.get(event);
194
+ if (!set) {
195
+ set = new Set();
196
+ this.asyncHandlers.set(event, set);
197
+ }
198
+ set.add(handler);
199
199
  }
200
200
  getAsyncHandlerId(handler) {
201
201
  const existing = this.asyncHandlerIds.get(handler);
@@ -1 +1 @@
1
- {"version":3,"file":"execution-policy.d.ts","sourceRoot":"","sources":["../src/execution-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,uFAAuF;AACvF,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAAC;AAEhD,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;CACpE;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC7B,mGAAmG;IACnG,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACzD,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,oDAAoD;AACpD,MAAM,WAAW,wBAAwB;IACrC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,wEAAwE;IACxE,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,MAAM,GAAG,IAAI,CAWf;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,gBAAgB,CAM5D;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAC5C,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,EAAE,wBAAwB,GAClC,OAAO,CAAC,gBAAgB,GAAG;IAAE,MAAM,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC,CAgE5C"}
1
+ {"version":3,"file":"execution-policy.d.ts","sourceRoot":"","sources":["../src/execution-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,uFAAuF;AACvF,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAAC;AAEhD,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;CACpE;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC7B,mGAAmG;IACnG,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACzD,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,oDAAoD;AACpD,MAAM,WAAW,wBAAwB;IACrC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,wEAAwE;IACxE,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,MAAM,GAAG,IAAI,CAWf;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,gBAAgB,CAM5D;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAC5C,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,EAAE,wBAAwB,GAClC,OAAO,CAAC,gBAAgB,GAAG;IAAE,MAAM,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC,CAiE5C"}
@@ -66,17 +66,17 @@ export async function runWithExecutionDeadline(action, options) {
66
66
  return cancellation.reason;
67
67
  },
68
68
  };
69
+ const abortFromCaller = () => {
70
+ if (cancellation.reason === undefined)
71
+ cancellation.reason = 'cancelled';
72
+ controller.abort();
73
+ };
69
74
  if (options.signal !== undefined) {
70
75
  if (options.signal.aborted) {
71
76
  cancellation.reason = 'cancelled';
72
77
  controller.abort();
73
78
  }
74
79
  else {
75
- const abortFromCaller = () => {
76
- if (cancellation.reason === undefined)
77
- cancellation.reason = 'cancelled';
78
- controller.abort();
79
- };
80
80
  options.signal.addEventListener('abort', abortFromCaller, { once: true });
81
81
  }
82
82
  }
@@ -102,6 +102,7 @@ export async function runWithExecutionDeadline(action, options) {
102
102
  finally {
103
103
  if (timer !== undefined)
104
104
  clearTimeout(timer);
105
+ options.signal?.removeEventListener('abort', abortFromCaller);
105
106
  }
106
107
  const elapsedMs = performance.now() - startMs;
107
108
  const timedOut = cancellation.reason === 'timeout';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobing-ai/ts-infra",
3
- "version": "0.5.16",
3
+ "version": "0.5.18",
4
4
  "description": "@gobing-ai/ts-infra — Infrastructure backbone: event bus, job queue, scheduler, telemetry, API client, and logging.",
5
5
  "keywords": [
6
6
  "typescript",
@@ -78,12 +78,12 @@
78
78
  "release": "echo 'Manual publish is disabled. Releases go through GitHub Actions via Trusted Publishing — push a tag: git tag @gobing-ai/ts-infra-v<version> && git push --tags' && exit 1"
79
79
  },
80
80
  "dependencies": {
81
- "@gobing-ai/ts-utils": "^0.5.16",
81
+ "@gobing-ai/ts-utils": "^0.5.18",
82
82
  "@logtape/logtape": "^2.0.0"
83
83
  },
84
84
  "peerDependencies": {
85
- "@gobing-ai/ts-db": "^0.5.16",
86
- "@gobing-ai/ts-runtime": "^0.5.16",
85
+ "@gobing-ai/ts-db": "^0.5.18",
86
+ "@gobing-ai/ts-runtime": "^0.5.18",
87
87
  "@opentelemetry/api": "^1.9.0",
88
88
  "@opentelemetry/sdk-trace-node": "^2.0.0",
89
89
  "@opentelemetry/sdk-metrics": "^2.0.0",
@@ -116,8 +116,8 @@
116
116
  }
117
117
  },
118
118
  "devDependencies": {
119
- "@gobing-ai/ts-db": "^0.5.16",
120
- "@gobing-ai/ts-runtime": "^0.5.16",
119
+ "@gobing-ai/ts-db": "^0.5.18",
120
+ "@gobing-ai/ts-runtime": "^0.5.18",
121
121
  "@types/bun": "1.3.14",
122
122
  "@opentelemetry/api": "^1.9.0",
123
123
  "@opentelemetry/sdk-trace-node": "^2.0.0",
@@ -51,7 +51,7 @@ export class EventBus<TEvents extends EventMap> {
51
51
  once<K extends keyof TEvents>(event: K, handler: TEvents[K], opts?: SubscribeOptions): void {
52
52
  const wrapped = ((...args: Parameters<TEvents[K]>) => {
53
53
  this.off(event, wrapped as TEvents[K]);
54
- handler(...args);
54
+ return handler(...args);
55
55
  }) as TEvents[K];
56
56
 
57
57
  this.on(event, wrapped, opts);
@@ -207,13 +207,6 @@ export class EventBus<TEvents extends EventMap> {
207
207
  }
208
208
 
209
209
  private registerAsync<K extends keyof TEvents>(event: K, handler: TEvents[K], name?: string): void {
210
- let set = this.asyncHandlers.get(event);
211
- if (!set) {
212
- set = new Set();
213
- this.asyncHandlers.set(event, set);
214
- }
215
- set.add(handler);
216
-
217
210
  if (!this.asyncHandlerIds.has(handler)) {
218
211
  const id = name ?? `handler-${++this.nextAsyncHandlerId}`;
219
212
  if (this.asyncHandlersById.has(id)) {
@@ -222,6 +215,12 @@ export class EventBus<TEvents extends EventMap> {
222
215
  this.asyncHandlerIds.set(handler, id);
223
216
  this.asyncHandlersById.set(id, handler);
224
217
  }
218
+ let set = this.asyncHandlers.get(event);
219
+ if (!set) {
220
+ set = new Set();
221
+ this.asyncHandlers.set(event, set);
222
+ }
223
+ set.add(handler);
225
224
  }
226
225
 
227
226
  private getAsyncHandlerId(handler: TEvents[keyof TEvents]): string {
@@ -114,15 +114,15 @@ export async function runWithExecutionDeadline<T>(
114
114
  },
115
115
  };
116
116
 
117
+ const abortFromCaller = (): void => {
118
+ if (cancellation.reason === undefined) cancellation.reason = 'cancelled';
119
+ controller.abort();
120
+ };
117
121
  if (options.signal !== undefined) {
118
122
  if (options.signal.aborted) {
119
123
  cancellation.reason = 'cancelled';
120
124
  controller.abort();
121
125
  } else {
122
- const abortFromCaller = (): void => {
123
- if (cancellation.reason === undefined) cancellation.reason = 'cancelled';
124
- controller.abort();
125
- };
126
126
  options.signal.addEventListener('abort', abortFromCaller, { once: true });
127
127
  }
128
128
  }
@@ -146,6 +146,7 @@ export async function runWithExecutionDeadline<T>(
146
146
  failed = true;
147
147
  } finally {
148
148
  if (timer !== undefined) clearTimeout(timer);
149
+ options.signal?.removeEventListener('abort', abortFromCaller);
149
150
  }
150
151
 
151
152
  const elapsedMs = performance.now() - startMs;