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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "configurapi-runner-ws",
3
- "version": "1.17.0",
3
+ "version": "1.19.0",
4
4
  "description": "Websocket runner for configurapi.",
5
5
  "bin": {
6
6
  "configurapi-runner-ws": "src/app.mjs"
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
- let wsResponse = new Response(e.payload, 200, {...e.request.headers, 'connection-id': connectionId})
68
- await wsAdapter.write(connections.get(connectionId).ws, wsResponse)
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
- const response = new Response(bucket, 200, headers);
76
+
77
+ const chunkResponse = new Response(bucket, 200, { });
78
+ const frame = new WsFrame(chunkResponse, headers);
76
79
 
77
- ws.send(JSON.stringify(response), (err) =>
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
- ws.send(JSON.stringify(response), (err) =>
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 message === 'object' ? JSON.stringify(message) : message
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)