@middy/ws-response 5.0.0-alpha.1 → 5.0.0-alpha.2

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 (2) hide show
  1. package/index.js +47 -62
  2. package/package.json +3 -3
package/index.js CHANGED
@@ -1,66 +1,51 @@
1
- import {
2
- ApiGatewayManagementApiClient,
3
- PostToConnectionCommand
4
- } from '@aws-sdk/client-apigatewaymanagementapi'
5
-
6
- import { canPrefetch, createClient, createPrefetchClient } from '@middy/util'
7
-
1
+ import { ApiGatewayManagementApiClient, PostToConnectionCommand } from '@aws-sdk/client-apigatewaymanagementapi';
2
+ import { canPrefetch, createClient, createPrefetchClient } from '@middy/util';
8
3
  const defaults = {
9
- AwsClient: ApiGatewayManagementApiClient,
10
- awsClientOptions: {}, // { endpoint }
11
- awsClientAssumeRole: undefined,
12
- awsClientCapture: undefined,
13
- disablePrefetch: false
14
- }
15
-
16
- const wsResponseMiddleware = (opts) => {
17
- const options = { ...defaults, ...opts }
18
-
19
- let client
20
- if (canPrefetch(options) && options.awsClientOptions.endpoint) {
21
- client = createPrefetchClient(options)
22
- }
23
-
24
- const wsResponseMiddlewareAfter = async (request) => {
25
- normalizeWsResponse(request)
26
- const { response } = request
27
-
28
- if (!response.ConnectionId) return
29
-
30
- if (!options.awsClientOptions.endpoint && request.event.requestContext) {
31
- options.awsClientOptions.endpoint =
32
- request.event.requestContext.domainName +
33
- '/' +
34
- request.event.requestContext.stage
4
+ AwsClient: ApiGatewayManagementApiClient,
5
+ awsClientOptions: {},
6
+ awsClientAssumeRole: undefined,
7
+ awsClientCapture: undefined,
8
+ disablePrefetch: false
9
+ };
10
+ const wsResponseMiddleware = (opts)=>{
11
+ const options = {
12
+ ...defaults,
13
+ ...opts
14
+ };
15
+ let client;
16
+ if (canPrefetch(options) && options.awsClientOptions.endpoint) {
17
+ client = createPrefetchClient(options);
35
18
  }
36
- if (!client) {
37
- client = await createClient(options, request)
38
- }
39
-
40
- await client.send(new PostToConnectionCommand(response))
41
-
42
- request.response.statusCode = 200
43
- }
44
-
45
- return {
46
- after: wsResponseMiddlewareAfter
47
- }
48
- }
49
-
19
+ const wsResponseMiddlewareAfter = async (request)=>{
20
+ normalizeWsResponse(request);
21
+ const { response } = request;
22
+ if (!response.ConnectionId) return;
23
+ if (!options.awsClientOptions.endpoint && request.event.requestContext) {
24
+ options.awsClientOptions.endpoint = request.event.requestContext.domainName + '/' + request.event.requestContext.stage;
25
+ }
26
+ if (!client) {
27
+ client = await createClient(options, request);
28
+ }
29
+ await client.send(new PostToConnectionCommand(response));
30
+ request.response.statusCode = 200;
31
+ };
32
+ return {
33
+ after: wsResponseMiddlewareAfter
34
+ };
35
+ };
50
36
  // TODO move to @middy/util?
51
- const normalizeWsResponse = (request) => {
52
- let { response } = request
53
- if (typeof response === 'undefined') {
54
- response = {}
55
- } else if (
56
- typeof response?.Data === 'undefined' &&
57
- typeof response?.ConnectionId === 'undefined'
58
- ) {
59
- response = { Data: response }
60
- }
61
- response.ConnectionId ??= request.event.requestContext?.connectionId
62
- request.response = response
63
- return response
64
- }
37
+ const normalizeWsResponse = (request)=>{
38
+ let { response } = request;
39
+ if (typeof response === 'undefined') {
40
+ response = {};
41
+ } else if (typeof response?.Data === 'undefined' && typeof response?.ConnectionId === 'undefined') {
42
+ response = {
43
+ Data: response
44
+ };
45
+ }
46
+ response.ConnectionId ??= request.event.requestContext?.connectionId;
47
+ request.response = response;
48
+ return response;
49
+ };
50
+ export default wsResponseMiddleware;
65
51
 
66
- export default wsResponseMiddleware
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@middy/ws-response",
3
- "version": "5.0.0-alpha.1",
3
+ "version": "5.0.0-alpha.2",
4
4
  "description": "WebSocket response handling middleware for the middy framework",
5
5
  "type": "module",
6
6
  "engines": {
@@ -59,11 +59,11 @@
59
59
  "url": "https://github.com/sponsors/willfarrell"
60
60
  },
61
61
  "dependencies": {
62
- "@middy/util": "5.0.0-alpha.1"
62
+ "@middy/util": "5.0.0-alpha.2"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@aws-sdk/client-apigatewaymanagementapi": "^3.0.0",
66
- "@middy/core": "5.0.0-alpha.1",
66
+ "@middy/core": "5.0.0-alpha.2",
67
67
  "@types/aws-lambda": "^8.10.97",
68
68
  "aws-xray-sdk": "^3.3.3"
69
69
  },