configurapi-runner-ws 1.17.0 → 1.19.0
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 +1 -1
- package/src/index.js +3 -4
- package/src/wsAdapter.js +9 -4
- package/src/wsPostbackFunction.js +2 -9
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -64,9 +64,8 @@ module.exports = class HttpRunner extends events.EventEmitter
|
|
|
64
64
|
|
|
65
65
|
if(connectionId && connections.has(connectionId))
|
|
66
66
|
{
|
|
67
|
-
|
|
68
|
-
await wsAdapter.write(connections.get(connectionId).ws,
|
|
69
|
-
e.response.statusCode = 204
|
|
67
|
+
e.response.headers = { ... (e.request.headers || {}), 'connection-id': connectionId }
|
|
68
|
+
await wsAdapter.write(connections.get(connectionId).ws, e.payload);
|
|
70
69
|
}
|
|
71
70
|
else
|
|
72
71
|
{
|
|
@@ -296,7 +295,7 @@ module.exports = class HttpRunner extends events.EventEmitter
|
|
|
296
295
|
await this.service.process(event);
|
|
297
296
|
|
|
298
297
|
serverResponse.writeHead(200, event.response.headers);
|
|
299
|
-
serverResponse.end(JSON.stringify(event.response));
|
|
298
|
+
serverResponse.end(JSON.stringify(event.response.body));
|
|
300
299
|
}
|
|
301
300
|
catch (error)
|
|
302
301
|
{
|
package/src/wsAdapter.js
CHANGED
|
@@ -3,6 +3,7 @@ const { WebSocket } = require('ws');
|
|
|
3
3
|
const StreamResponse = require('configurapi-handler-ws').StreamResponse;
|
|
4
4
|
const Response = require('configurapi').Response;
|
|
5
5
|
const { randomUUID } = require("node:crypto");
|
|
6
|
+
const WsFrame = require('configurapi-handler-ws').WsFrame;
|
|
6
7
|
|
|
7
8
|
module.exports = {
|
|
8
9
|
write: async function(ws, message)
|
|
@@ -72,9 +73,11 @@ module.exports = {
|
|
|
72
73
|
}
|
|
73
74
|
|
|
74
75
|
const headers = { 'message-id': streamId, 'x-stream': 'chunk', 'x-stream-id': streamId, 'Content-Type': 'text/plain' };
|
|
75
|
-
|
|
76
|
+
|
|
77
|
+
const chunkResponse = new Response(bucket, 200, { });
|
|
78
|
+
const frame = new WsFrame(chunkResponse, headers);
|
|
76
79
|
|
|
77
|
-
ws.send(JSON.stringify(
|
|
80
|
+
ws.send(JSON.stringify(frame), (err) =>
|
|
78
81
|
{
|
|
79
82
|
if (err) { cleanup(); return safeReject(err); }
|
|
80
83
|
});
|
|
@@ -140,9 +143,11 @@ module.exports = {
|
|
|
140
143
|
if (ws.readyState === WebSocket.OPEN)
|
|
141
144
|
{
|
|
142
145
|
const headers = { 'message-id': streamId, 'x-stream-id': streamId, 'x-stream': 'done' };
|
|
143
|
-
const response = new Response('', 204, headers);
|
|
144
146
|
|
|
145
|
-
|
|
147
|
+
const doneResponse = new Response('', 204);
|
|
148
|
+
const frame = new WsFrame(doneResponse, headers);
|
|
149
|
+
|
|
150
|
+
ws.send(JSON.stringify(frame), (err) =>
|
|
146
151
|
{
|
|
147
152
|
cleanup();
|
|
148
153
|
return err ? safeReject(err) : safeResolve();
|
|
@@ -2,17 +2,10 @@ const ErrorResponse = require('configurapi').ErrorResponse;
|
|
|
2
2
|
|
|
3
3
|
async function wsPostbackFunction(endpoint, response)
|
|
4
4
|
{
|
|
5
|
-
let message = response;
|
|
6
|
-
|
|
7
|
-
if(message?.statusCode && message?.headers)
|
|
8
|
-
{
|
|
9
|
-
message = message.body;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
5
|
let resp = await fetch(endpoint, {
|
|
13
6
|
method: 'POST',
|
|
14
|
-
headers: response.headers
|
|
15
|
-
body: typeof
|
|
7
|
+
headers: {...response.headers, 'content-type': 'application/json'},
|
|
8
|
+
body: typeof response === 'string' ? response: JSON.stringify(response)
|
|
16
9
|
});
|
|
17
10
|
|
|
18
11
|
if(resp.status >= 400)
|