spooder 4.4.8 → 4.4.9

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.
Files changed (3) hide show
  1. package/README.md +10 -1
  2. package/package.json +2 -2
  3. package/src/api.ts +6 -3
package/README.md CHANGED
@@ -220,7 +220,10 @@ You can utilize this to automatically update your server in response to a webhoo
220
220
 
221
221
  ```ts
222
222
  server.webhook(process.env.WEBHOOK_SECRET, '/webhook', payload => {
223
- setImmediate(() => server.stop(false));
223
+ setImmediate(async () => {
224
+ await server.stop(false);
225
+ process.exit();
226
+ });
224
227
  return 200;
225
228
  });
226
229
  ```
@@ -930,6 +933,12 @@ Stop the server process gracefully, waiting for all in-flight requests to comple
930
933
  server.stop(false);
931
934
  ```
932
935
 
936
+ `server.stop()` returns a promise, which if awaited, resolves when all pending connections have been completed.
937
+ ```ts
938
+ await server.stop(false);
939
+ // do something now all connections are done
940
+ ```
941
+
933
942
  <a id="api-error-handling"></a>
934
943
  ## API > Error Handling
935
944
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "spooder",
3
3
  "type": "module",
4
- "version": "4.4.8",
4
+ "version": "4.4.9",
5
5
  "exports": {
6
6
  ".": {
7
7
  "bun": "./src/api.ts",
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "module": "./src/api.ts",
12
12
  "devDependencies": {
13
- "@types/bun": "^1.0.5"
13
+ "@types/bun": "^1.1.8"
14
14
  },
15
15
  "optionalDependencies": {
16
16
  "mysql2": "^3.11.0"
package/src/api.ts CHANGED
@@ -564,7 +564,7 @@ export function validate_req_json(json_handler: JSONRequestHandler): RequestHand
564
564
  if (json === null || typeof json !== 'object' || Array.isArray(json))
565
565
  return 400; // Bad Request
566
566
 
567
- return json_handler(req, url, json);
567
+ return json_handler(req, url, json as JsonObject);
568
568
  } catch (e) {
569
569
  return 400; // Bad Request
570
570
  }
@@ -727,7 +727,7 @@ export function serve(port: number) {
727
727
  development: false,
728
728
 
729
729
  async fetch(req: Request): Promise<Response> {
730
- const url = new URL(req.url);
730
+ const url = new URL(req.url) as URL;
731
731
  const request_start = Date.now();
732
732
 
733
733
  const response = await generate_response(req, url);
@@ -807,8 +807,11 @@ export function serve(port: number) {
807
807
  },
808
808
 
809
809
  /** Stops the server. */
810
- stop: (immediate = false): void => {
810
+ stop: async (immediate = false): Promise<void> => {
811
811
  server.stop(immediate);
812
+
813
+ while (server.pendingRequests > 0)
814
+ await Bun.sleep(1000);
812
815
  },
813
816
 
814
817
  /** Register a handler for server-sent events. */