spiceflow 1.17.6 → 1.17.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAI9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,OAAO,EAAE,eAAe,EAAE,CAAA;AA4G1B,UAAU,QAAQ;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,GAAG,CAAA;IACT,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,qBAAa,iBAAkB,SAAQ,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC;;CAwBzE;AAED,wBAAuB,iBAAiB,CACtC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,GAAG,GACxB,cAAc,CAAC,QAAQ,CAAC,CAmB1B;AAmTD,eAAO,MAAM,qBAAqB,GAAI,KAAK,CAAC,GAAG,SAAS,YAAY,EAClE,QAAQ,GAAG,GAAG,MAAM,EACpB,SAAS,eAAe,CAAC,MAAM,GAC7B,CAAC,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACjE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;CAAE,GAC9B,EAAE,CAAC,KACR,eAAe,CAAC,MAAM,CAAC,GAAG,CAc5B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAI9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,OAAO,EAAE,eAAe,EAAE,CAAA;AA4G1B,UAAU,QAAQ;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,GAAG,CAAA;IACT,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,qBAAa,iBAAkB,SAAQ,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC;;CAwBzE;AAWD,wBAAuB,iBAAiB,CACtC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,GAAG,GACxB,cAAc,CAAC,QAAQ,CAAC,CA2B1B;AAoTD,eAAO,MAAM,qBAAqB,GAAI,KAAK,CAAC,GAAG,SAAS,YAAY,EAClE,QAAQ,GAAG,GAAG,MAAM,EACpB,SAAS,eAAe,CAAC,MAAM,GAC7B,CAAC,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACjE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;CAAE,GAC9B,EAAE,CAAC,KACR,eAAe,CAAC,MAAM,CAAC,GAAG,CAc5B,CAAA"}
@@ -105,6 +105,12 @@ export class TextDecoderStream extends TransformStream {
105
105
  });
106
106
  }
107
107
  }
108
+ function isAbortError(error) {
109
+ return ((error instanceof Error || error instanceof DOMException) &&
110
+ (error.name === 'AbortError' ||
111
+ error.name === 'ResponseAborted' || // Next.js
112
+ error.name === 'TimeoutError'));
113
+ }
108
114
  export async function* streamSSEResponse(response, map) {
109
115
  const body = response.body;
110
116
  if (!body)
@@ -113,16 +119,24 @@ export async function* streamSSEResponse(response, map) {
113
119
  .pipeThrough(new TextDecoderStream())
114
120
  .pipeThrough(new EventSourceParserStream());
115
121
  let reader = eventStream.getReader();
116
- while (true) {
117
- const { done, value: event } = await reader.read();
118
- if (done)
119
- break;
120
- if (event?.event === 'error') {
121
- throw new SpiceflowFetchError(500, superjsonDeserialize(event.data));
122
+ try {
123
+ while (true) {
124
+ const { done, value: event } = await reader.read();
125
+ if (done)
126
+ break;
127
+ if (event?.event === 'error') {
128
+ throw new SpiceflowFetchError(500, superjsonDeserialize(event.data));
129
+ }
130
+ if (event) {
131
+ yield map({ ...event, data: event.data });
132
+ }
122
133
  }
123
- if (event) {
124
- yield map({ ...event, data: event.data });
134
+ }
135
+ catch (error) {
136
+ if (isAbortError(error)) {
137
+ return;
125
138
  }
139
+ throw error;
126
140
  }
127
141
  }
128
142
  function tryParsingSSEJson(data) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import type { AnySpiceflow } from './spiceflow.js';
2
1
  interface GracefulShutdownOptions {
3
2
  maxWaitSeconds?: number;
4
3
  checkIntervalMs?: number;
@@ -12,6 +11,6 @@ interface GracefulShutdownOptions {
12
11
  * @param options.checkIntervalMs - Interval to check if requests are complete (default: 250)
13
12
  * @returns Spiceflow app that can be mounted with .use()
14
13
  */
15
- export declare function preventProcessExitIfBusy(options?: GracefulShutdownOptions): AnySpiceflow;
14
+ export declare function preventProcessExitIfBusy(options?: GracefulShutdownOptions): any;
16
15
  export {};
17
16
  //# sourceMappingURL=prevent-process-exit-if-busy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prevent-process-exit-if-busy.d.ts","sourceRoot":"","sources":["../src/prevent-process-exit-if-busy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,UAAU,uBAAuB;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,uBAA4B,GAAG,YAAY,CAgD5F"}
1
+ {"version":3,"file":"prevent-process-exit-if-busy.d.ts","sourceRoot":"","sources":["../src/prevent-process-exit-if-busy.ts"],"names":[],"mappings":"AAGA,UAAU,uBAAuB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,uBAA4B,GACpC,GAAG,CAsEL"}
@@ -14,31 +14,37 @@ export function preventProcessExitIfBusy(options = {}) {
14
14
  let inFlightRequests = 0;
15
15
  let isShuttingDown = false;
16
16
  // Sleep utility
17
- const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
17
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
18
18
  // Graceful shutdown handler
19
19
  async function handleShutdown(signal) {
20
20
  if (isShuttingDown)
21
21
  return; // Prevent multiple shutdown attempts
22
22
  isShuttingDown = true;
23
- console.log(`${signal} received waiting for ${inFlightRequests} request(s) to complete...`);
24
- const deadline = Date.now() + (maxWaitSeconds * 1000);
23
+ const startTime = Date.now();
24
+ console.log(`[${new Date().toISOString()}] ${signal} signal received for graceful shutdown`);
25
+ console.log(`[${new Date().toISOString()}] Waiting for ${inFlightRequests} in-flight request(s) to complete...`);
26
+ const deadline = Date.now() + maxWaitSeconds * 1000;
25
27
  while (inFlightRequests > 0 && Date.now() < deadline) {
26
28
  await sleep(checkIntervalMs);
27
29
  }
30
+ const elapsedSeconds = ((Date.now() - startTime) / 1000).toFixed(1);
28
31
  if (inFlightRequests > 0) {
29
- console.log(`Shutdown timeout reached; ${inFlightRequests} request(s) still in progress`);
32
+ console.log(`[${new Date().toISOString()}] Shutdown timeout reached after ${elapsedSeconds}s; ${inFlightRequests} request(s) still in progress`);
33
+ console.log(`[${new Date().toISOString()}] Forcing shutdown with exit code 1`);
30
34
  }
31
35
  else {
32
- console.log('All requests completed');
36
+ console.log(`[${new Date().toISOString()}] All requests completed successfully after ${elapsedSeconds}s`);
37
+ console.log(`[${new Date().toISOString()}] Graceful shutdown complete`);
33
38
  }
34
39
  process.exit(inFlightRequests > 0 ? 1 : 0);
35
40
  }
36
41
  // Register shutdown handlers only in Node.js environments
37
42
  if (typeof process !== 'undefined' && process.prependListener) {
38
43
  ;
39
- ['SIGINT', 'SIGTERM'].forEach(sig => {
44
+ ['SIGINT', 'SIGTERM'].forEach((sig) => {
40
45
  process.prependListener(sig, handleShutdown);
41
46
  });
47
+ console.log(`[${new Date().toISOString()}] Graceful shutdown handlers registered for SIGINT and SIGTERM`);
42
48
  }
43
49
  // Return Spiceflow middleware with scoped: false
44
50
  return new Spiceflow({ scoped: false }).use(async (_, next) => {
@@ -1 +1 @@
1
- {"version":3,"file":"prevent-process-exit-if-busy.js","sourceRoot":"","sources":["../src/prevent-process-exit-if-busy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAQ1C;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAmC,EAAE;IAC1E,MAAM,EAAE,cAAc,GAAG,GAAG,EAAE,eAAe,GAAG,GAAG,EAAE,GAAG,OAAO,CAAA;IAE/D,sCAAsC;IACtC,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,cAAc,GAAG,KAAK,CAAA;IAE1B,gBAAgB;IAChB,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IAEnF,4BAA4B;IAC5B,KAAK,UAAU,cAAc,CAAC,MAAsB;QAChD,IAAI,cAAc;YAAE,OAAM,CAAC,qCAAqC;QAChE,cAAc,GAAG,IAAI,CAAA;QAErB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,2BAA2B,gBAAgB,4BAA4B,CAAC,CAAA;QAE7F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;QAErD,OAAO,gBAAgB,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YACnD,MAAM,KAAK,CAAC,eAAe,CAAC,CAAA;QAChC,CAAC;QAED,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,6BAA6B,gBAAgB,+BAA+B,CAAC,CAAA;QAC7F,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QACzC,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,0DAA0D;IAC1D,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5D,CAAC;QAAA,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACjC,OAAO,CAAC,eAAe,CAAC,GAAqB,EAAE,cAAc,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;IACN,CAAC;IAED,iDAAiD;IACjD,OAAO,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC1D,gBAAgB,EAAE,CAAA;QAClB,IAAI,CAAC;YACD,MAAM,IAAI,EAAE,CAAA;QAChB,CAAC;gBAAS,CAAC;YACP,gBAAgB,EAAE,CAAA;QACtB,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"prevent-process-exit-if-busy.js","sourceRoot":"","sources":["../src/prevent-process-exit-if-busy.ts"],"names":[],"mappings":"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"}
@@ -175,6 +175,64 @@ describe('Stream', () => {
175
175
  await promise;
176
176
  expect(events.map((x) => x.data)).toEqual(objects.map((x) => JSON.stringify(x)));
177
177
  });
178
+ it('rpc client throws errors from async generator routes', async () => {
179
+ const app = new Spiceflow().get('/stream', async function* () {
180
+ yield 'first';
181
+ await sleep(10);
182
+ yield 'second';
183
+ await sleep(10);
184
+ throw new Error('Stream error after yielding');
185
+ });
186
+ // Import the client functions
187
+ const { createSpiceflowClient, streamSSEResponse } = await import("./client/index.js");
188
+ // Create a client using the app instance
189
+ const client = createSpiceflowClient(app);
190
+ // Call the streaming endpoint
191
+ const { data: stream, error } = await client.stream.get();
192
+ expect(error).toBeNull();
193
+ expect(stream).toBeDefined();
194
+ // Collect streamed values
195
+ const values = [];
196
+ let streamError;
197
+ try {
198
+ // TypeScript guard - we already checked stream is defined above
199
+ if (stream) {
200
+ for await (const value of stream) {
201
+ values.push(value);
202
+ }
203
+ }
204
+ }
205
+ catch (err) {
206
+ streamError = err;
207
+ }
208
+ // Verify we received the values before the error
209
+ expect(values).toEqual(['first', 'second']);
210
+ // Verify the error was caught
211
+ expect(streamError).toBeDefined();
212
+ expect(streamError?.message).toContain('Stream error after yielding');
213
+ });
214
+ it('rpc client throws errors from async generator routes before any yield', async () => {
215
+ const app = new Spiceflow()
216
+ .onError(({ error }) => {
217
+ return new Response(JSON.stringify({ message: error.message }), {
218
+ status: 500,
219
+ headers: { 'content-type': 'application/json' }
220
+ });
221
+ })
222
+ .get('/stream', async function* () {
223
+ throw new Error('Immediate stream error');
224
+ });
225
+ // Import the client functions
226
+ const { createSpiceflowClient } = await import("./client/index.js");
227
+ // Create a client using the app instance
228
+ const client = createSpiceflowClient(app);
229
+ // Call the streaming endpoint
230
+ const { data, error } = await client.stream.get();
231
+ // When error happens before yield, it should be caught by error handler
232
+ expect(data).toBeNull();
233
+ expect(error).toBeDefined();
234
+ expect(error?.message).toContain('Immediate stream error');
235
+ });
178
236
  // it('mutate set before yield is called', async () => {
179
237
  // const expected = ['a', 'b', 'c']
180
238
  // const app = new Spiceflow().get('/', function* () {
@@ -275,5 +333,44 @@ describe('Stream', () => {
275
333
  return promise;
276
334
  });
277
335
  });
336
+ it('client handles abort errors gracefully without throwing', async () => {
337
+ const app = new Spiceflow().get('/stream', async function* () {
338
+ yield 'first';
339
+ await sleep(100);
340
+ yield 'second';
341
+ await sleep(100);
342
+ yield 'third';
343
+ });
344
+ // Import the client functions
345
+ const { createSpiceflowClient } = await import("./client/index.js");
346
+ // Create a client using the app instance
347
+ const client = createSpiceflowClient(app);
348
+ // Create an AbortController to simulate abort
349
+ const controller = new AbortController();
350
+ // Call the streaming endpoint with abort signal
351
+ const response = await app.handle(new Request('http://e.ly/stream', {
352
+ signal: controller.signal,
353
+ }));
354
+ // Simulate client-side SSE parsing
355
+ const { streamSSEResponse } = await import("./client/index.js");
356
+ // Abort after first value
357
+ setTimeout(() => controller.abort(), 50);
358
+ const values = [];
359
+ let streamError;
360
+ try {
361
+ const stream = streamSSEResponse(response, (x) => x.data);
362
+ for await (const value of stream) {
363
+ values.push(value);
364
+ }
365
+ }
366
+ catch (err) {
367
+ streamError = err;
368
+ }
369
+ // Should have received at least the first value
370
+ expect(values.length).toBeGreaterThanOrEqual(1);
371
+ expect(values[0]).toBe('"first"');
372
+ // Should not throw an error for abort
373
+ expect(streamError).toBeUndefined();
374
+ });
278
375
  });
279
376
  //# sourceMappingURL=stream.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.test.js","sourceRoot":"","sources":["../src/stream.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.test.js","sourceRoot":"","sources":["../src/stream.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spiceflow",
3
- "version": "1.17.6",
3
+ "version": "1.17.8",
4
4
  "description": "Simple API framework with RPC and type safety",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -58,7 +58,7 @@
58
58
  "eventsource-parser": "^3.0.2",
59
59
  "openapi-types": "^12.1.3",
60
60
  "superjson": "^2.2.2",
61
- "zod": "^4.0.10",
61
+ "zod": "^4.0.14",
62
62
  "zod-to-json-schema": "^3.24.5"
63
63
  },
64
64
  "peerDependencies": {
@@ -71,7 +71,7 @@
71
71
  },
72
72
  "devDependencies": {
73
73
  "@modelcontextprotocol/sdk": "^1.16.0",
74
- "ai": "^4.3.19",
74
+ "ai": "^5.0.0",
75
75
  "eventsource": "^3.0.5",
76
76
  "formdata-node": "^6.0.3",
77
77
  "js-base64": "^3.7.7",
@@ -144,6 +144,15 @@ export class TextDecoderStream extends TransformStream<Uint8Array, string> {
144
144
  }
145
145
  }
146
146
 
147
+ function isAbortError(error: unknown): error is Error {
148
+ return (
149
+ (error instanceof Error || error instanceof DOMException) &&
150
+ (error.name === 'AbortError' ||
151
+ error.name === 'ResponseAborted' || // Next.js
152
+ error.name === 'TimeoutError')
153
+ )
154
+ }
155
+
147
156
  export async function* streamSSEResponse(
148
157
  response: Response,
149
158
  map: (x: SSEEvent) => any,
@@ -156,15 +165,23 @@ export async function* streamSSEResponse(
156
165
  .pipeThrough(new EventSourceParserStream())
157
166
 
158
167
  let reader = eventStream.getReader()
159
- while (true) {
160
- const { done, value: event } = await reader.read()
161
- if (done) break
162
- if (event?.event === 'error') {
163
- throw new SpiceflowFetchError(500, superjsonDeserialize(event.data))
168
+ try {
169
+ while (true) {
170
+ const { done, value: event } = await reader.read()
171
+ if (done) break
172
+ if (event?.event === 'error') {
173
+ throw new SpiceflowFetchError(500, superjsonDeserialize(event.data))
174
+ }
175
+ if (event) {
176
+ yield map({ ...event, data: event.data })
177
+ }
164
178
  }
165
- if (event) {
166
- yield map({ ...event, data: event.data })
179
+ } catch (error) {
180
+ if (isAbortError(error)) {
181
+ return
167
182
  }
183
+
184
+ throw error
168
185
  }
169
186
  }
170
187
 
@@ -351,9 +368,10 @@ const createProxy = (
351
368
  'text/plain'
352
369
  }
353
370
 
354
- if (isGetOrHead) delete fetchInit.body
371
+ if (isGetOrHead)
372
+ delete fetchInit.body
355
373
 
356
- // Add x-spiceflow-agent header
374
+ // Add x-spiceflow-agent header
357
375
  ;(fetchInit.headers as Record<string, string>)['x-spiceflow-agent'] =
358
376
  'spiceflow-client'
359
377
 
@@ -2,65 +2,89 @@ import { Spiceflow } from './spiceflow.js'
2
2
  import type { AnySpiceflow } from './spiceflow.js'
3
3
 
4
4
  interface GracefulShutdownOptions {
5
- maxWaitSeconds?: number
6
- checkIntervalMs?: number
5
+ maxWaitSeconds?: number
6
+ checkIntervalMs?: number
7
7
  }
8
8
 
9
9
  /**
10
10
  * Creates a Spiceflow middleware that tracks in-flight requests and prevents
11
11
  * the process from exiting while requests are being processed.
12
- *
12
+ *
13
13
  * @param options - Configuration options
14
14
  * @param options.maxWaitSeconds - Maximum time to wait for requests to complete (default: 300)
15
15
  * @param options.checkIntervalMs - Interval to check if requests are complete (default: 250)
16
16
  * @returns Spiceflow app that can be mounted with .use()
17
17
  */
18
- export function preventProcessExitIfBusy(options: GracefulShutdownOptions = {}): AnySpiceflow {
19
- const { maxWaitSeconds = 300, checkIntervalMs = 250 } = options
20
-
21
- // Track in-flight requests in closure
22
- let inFlightRequests = 0
23
- let isShuttingDown = false
24
-
25
- // Sleep utility
26
- const sleep = (ms: number) => new Promise<void>(resolve => setTimeout(resolve, ms))
27
-
28
- // Graceful shutdown handler
29
- async function handleShutdown(signal: NodeJS.Signals) {
30
- if (isShuttingDown) return // Prevent multiple shutdown attempts
31
- isShuttingDown = true
32
-
33
- console.log(`${signal} received waiting for ${inFlightRequests} request(s) to complete...`)
34
-
35
- const deadline = Date.now() + (maxWaitSeconds * 1000)
36
-
37
- while (inFlightRequests > 0 && Date.now() < deadline) {
38
- await sleep(checkIntervalMs)
39
- }
40
-
41
- if (inFlightRequests > 0) {
42
- console.log(`Shutdown timeout reached; ${inFlightRequests} request(s) still in progress`)
43
- } else {
44
- console.log('All requests completed')
45
- }
46
-
47
- process.exit(inFlightRequests > 0 ? 1 : 0)
18
+ export function preventProcessExitIfBusy(
19
+ options: GracefulShutdownOptions = {},
20
+ ): any {
21
+ const { maxWaitSeconds = 300, checkIntervalMs = 250 } = options
22
+
23
+ // Track in-flight requests in closure
24
+ let inFlightRequests = 0
25
+ let isShuttingDown = false
26
+
27
+ // Sleep utility
28
+ const sleep = (ms: number) =>
29
+ new Promise<void>((resolve) => setTimeout(resolve, ms))
30
+
31
+ // Graceful shutdown handler
32
+ async function handleShutdown(signal: NodeJS.Signals) {
33
+ if (isShuttingDown) return // Prevent multiple shutdown attempts
34
+ isShuttingDown = true
35
+
36
+ const startTime = Date.now()
37
+ console.log(
38
+ `[${new Date().toISOString()}] ${signal} signal received for graceful shutdown`,
39
+ )
40
+ console.log(
41
+ `[${new Date().toISOString()}] Waiting for ${inFlightRequests} in-flight request(s) to complete...`,
42
+ )
43
+
44
+ const deadline = Date.now() + maxWaitSeconds * 1000
45
+
46
+ while (inFlightRequests > 0 && Date.now() < deadline) {
47
+ await sleep(checkIntervalMs)
48
48
  }
49
-
50
- // Register shutdown handlers only in Node.js environments
51
- if (typeof process !== 'undefined' && process.prependListener) {
52
- ;['SIGINT', 'SIGTERM'].forEach(sig => {
53
- process.prependListener(sig as NodeJS.Signals, handleShutdown)
54
- })
49
+
50
+ const elapsedSeconds = ((Date.now() - startTime) / 1000).toFixed(1)
51
+
52
+ if (inFlightRequests > 0) {
53
+ console.log(
54
+ `[${new Date().toISOString()}] Shutdown timeout reached after ${elapsedSeconds}s; ${inFlightRequests} request(s) still in progress`,
55
+ )
56
+ console.log(
57
+ `[${new Date().toISOString()}] Forcing shutdown with exit code 1`,
58
+ )
59
+ } else {
60
+ console.log(
61
+ `[${new Date().toISOString()}] All requests completed successfully after ${elapsedSeconds}s`,
62
+ )
63
+ console.log(
64
+ `[${new Date().toISOString()}] Graceful shutdown complete`,
65
+ )
55
66
  }
56
-
57
- // Return Spiceflow middleware with scoped: false
58
- return new Spiceflow({ scoped: false }).use(async (_, next) => {
59
- inFlightRequests++
60
- try {
61
- await next()
62
- } finally {
63
- inFlightRequests--
64
- }
67
+
68
+ process.exit(inFlightRequests > 0 ? 1 : 0)
69
+ }
70
+
71
+ // Register shutdown handlers only in Node.js environments
72
+ if (typeof process !== 'undefined' && process.prependListener) {
73
+ ;['SIGINT', 'SIGTERM'].forEach((sig) => {
74
+ process.prependListener(sig as NodeJS.Signals, handleShutdown)
65
75
  })
66
- }
76
+ console.log(
77
+ `[${new Date().toISOString()}] Graceful shutdown handlers registered for SIGINT and SIGTERM`,
78
+ )
79
+ }
80
+
81
+ // Return Spiceflow middleware with scoped: false
82
+ return new Spiceflow({ scoped: false }).use(async (_, next) => {
83
+ inFlightRequests++
84
+ try {
85
+ await next()
86
+ } finally {
87
+ inFlightRequests--
88
+ }
89
+ })
90
+ }
@@ -235,6 +235,77 @@ describe('Stream', () => {
235
235
  )
236
236
  })
237
237
 
238
+ it('rpc client throws errors from async generator routes', async () => {
239
+ const app = new Spiceflow().get('/stream', async function* () {
240
+ yield 'first'
241
+ await sleep(10)
242
+ yield 'second'
243
+ await sleep(10)
244
+ throw new Error('Stream error after yielding')
245
+ })
246
+
247
+ // Import the client functions
248
+ const { createSpiceflowClient, streamSSEResponse } = await import('./client/index.ts')
249
+
250
+ // Create a client using the app instance
251
+ const client = createSpiceflowClient(app)
252
+
253
+ // Call the streaming endpoint
254
+ const { data: stream, error } = await client.stream.get()
255
+
256
+ expect(error).toBeNull()
257
+ expect(stream).toBeDefined()
258
+
259
+ // Collect streamed values
260
+ const values: any[] = []
261
+ let streamError: Error | undefined
262
+
263
+ try {
264
+ // TypeScript guard - we already checked stream is defined above
265
+ if (stream) {
266
+ for await (const value of stream) {
267
+ values.push(value)
268
+ }
269
+ }
270
+ } catch (err) {
271
+ streamError = err as Error
272
+ }
273
+
274
+ // Verify we received the values before the error
275
+ expect(values).toEqual(['first', 'second'])
276
+
277
+ // Verify the error was caught
278
+ expect(streamError).toBeDefined()
279
+ expect(streamError?.message).toContain('Stream error after yielding')
280
+ })
281
+
282
+ it('rpc client throws errors from async generator routes before any yield', async () => {
283
+ const app = new Spiceflow()
284
+ .onError(({ error }) => {
285
+ return new Response(JSON.stringify({ message: error.message }), {
286
+ status: 500,
287
+ headers: { 'content-type': 'application/json' }
288
+ })
289
+ })
290
+ .get('/stream', async function* () {
291
+ throw new Error('Immediate stream error')
292
+ })
293
+
294
+ // Import the client functions
295
+ const { createSpiceflowClient } = await import('./client/index.ts')
296
+
297
+ // Create a client using the app instance
298
+ const client = createSpiceflowClient(app)
299
+
300
+ // Call the streaming endpoint
301
+ const { data, error } = await client.stream.get()
302
+
303
+ // When error happens before yield, it should be caught by error handler
304
+ expect(data).toBeNull()
305
+ expect(error).toBeDefined()
306
+ expect(error?.message).toContain('Immediate stream error')
307
+ })
308
+
238
309
  // it('mutate set before yield is called', async () => {
239
310
  // const expected = ['a', 'b', 'c']
240
311
 
@@ -361,4 +432,55 @@ describe('Stream', () => {
361
432
  return promise
362
433
  })
363
434
  })
435
+
436
+ it('client handles abort errors gracefully without throwing', async () => {
437
+ const app = new Spiceflow().get('/stream', async function* () {
438
+ yield 'first'
439
+ await sleep(100)
440
+ yield 'second'
441
+ await sleep(100)
442
+ yield 'third'
443
+ })
444
+
445
+ // Import the client functions
446
+ const { createSpiceflowClient } = await import('./client/index.ts')
447
+
448
+ // Create a client using the app instance
449
+ const client = createSpiceflowClient(app)
450
+
451
+ // Create an AbortController to simulate abort
452
+ const controller = new AbortController()
453
+
454
+ // Call the streaming endpoint with abort signal
455
+ const response = await app.handle(
456
+ new Request('http://e.ly/stream', {
457
+ signal: controller.signal,
458
+ })
459
+ )
460
+
461
+ // Simulate client-side SSE parsing
462
+ const { streamSSEResponse } = await import('./client/index.ts')
463
+
464
+ // Abort after first value
465
+ setTimeout(() => controller.abort(), 50)
466
+
467
+ const values: any[] = []
468
+ let streamError: Error | undefined
469
+
470
+ try {
471
+ const stream = streamSSEResponse(response, (x) => x.data)
472
+ for await (const value of stream) {
473
+ values.push(value)
474
+ }
475
+ } catch (err) {
476
+ streamError = err as Error
477
+ }
478
+
479
+ // Should have received at least the first value
480
+ expect(values.length).toBeGreaterThanOrEqual(1)
481
+ expect(values[0]).toBe('"first"')
482
+
483
+ // Should not throw an error for abort
484
+ expect(streamError).toBeUndefined()
485
+ })
364
486
  })