spooder 4.4.8 → 4.4.10
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/README.md +10 -1
- package/package.json +2 -2
- package/src/api.ts +7 -4
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(() =>
|
|
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.
|
|
4
|
+
"version": "4.4.10",
|
|
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.
|
|
13
|
+
"@types/bun": "^1.1.8"
|
|
14
14
|
},
|
|
15
15
|
"optionalDependencies": {
|
|
16
16
|
"mysql2": "^3.11.0"
|
package/src/api.ts
CHANGED
|
@@ -507,7 +507,7 @@ type StatusCodeHandler = (req: Request) => HandlerReturnType;
|
|
|
507
507
|
|
|
508
508
|
type JSONRequestHandler = (req: Request, url: URL, json: JsonObject) => HandlerReturnType;
|
|
509
509
|
|
|
510
|
-
type ServerSentEventClient = {
|
|
510
|
+
export type ServerSentEventClient = {
|
|
511
511
|
message: (message: string) => void;
|
|
512
512
|
event: (event_name: string, message: string) => void;
|
|
513
513
|
close: () => void;
|
|
@@ -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. */
|