@spytecgps/lambda-utils 1.0.0-rc2 → 1.0.0-rc4

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/dist/index.d.ts CHANGED
@@ -2,3 +2,4 @@ export * from './wrappers';
2
2
  export * from './errors';
3
3
  export * from './validation';
4
4
  export * from './types';
5
+ export * from './middleware';
package/dist/index.js CHANGED
@@ -14,3 +14,4 @@ __exportStar(require("./wrappers"), exports);
14
14
  __exportStar(require("./errors"), exports);
15
15
  __exportStar(require("./validation"), exports);
16
16
  __exportStar(require("./types"), exports);
17
+ __exportStar(require("./middleware"), exports);
@@ -4,7 +4,9 @@ import httpResponseSerializer from '@middy/http-response-serializer';
4
4
  import { validatorMiddleware } from './validation';
5
5
  import { Context as LambdaContext } from 'aws-lambda/handler';
6
6
  import { MiddyInputHandler } from './types';
7
- declare const apiGatewayMiddlewares: rawMiddy.MiddlewareObj<any, any, Error, LambdaContext>[];
7
+ declare const apiGatewayMiddlewares: (rawMiddy.MiddlewareObj<any, any, Error, LambdaContext> | {
8
+ after: (req: any) => void;
9
+ })[];
8
10
  declare const middy: <TEvent, TResult, TContext extends LambdaContext>(handler: MiddyInputHandler<TEvent, TResult, TContext>) => rawMiddy.MiddyfiedHandler<TEvent, TResult, Error, TContext>;
9
11
  declare const apiGatewayMiddy: <TEvent, TResult, TContext extends LambdaContext>(handler: MiddyInputHandler<TEvent, TResult, TContext>) => rawMiddy.MiddyfiedHandler<TEvent, TResult, Error, TContext>;
10
12
  export { middy, apiGatewayMiddy, httpErrorHandler, httpResponseSerializer, validatorMiddleware, apiGatewayMiddlewares };
@@ -21,6 +21,7 @@ var ioLogger_1 = require("./ioLogger");
21
21
  var validation_1 = require("./validation");
22
22
  Object.defineProperty(exports, "validatorMiddleware", { enumerable: true, get: function () { return validation_1.validatorMiddleware; } });
23
23
  var sdk_1 = require("@spytecgps/sdk");
24
+ var responseWrapper_1 = require("./responseWrapper");
24
25
  var baseMiddlewares = [contextualLogger_1.contextualLoggerMiddleware, ioLogger_1.ioLoggerMiddleware];
25
26
  var apiGatewayMiddlewares = [
26
27
  http_response_serializer_1.default({
@@ -52,9 +53,10 @@ var apiGatewayMiddlewares = [
52
53
  http_error_handler_1.default({
53
54
  logger: function (error) { return sdk_1.logger.error(error); },
54
55
  }),
56
+ responseWrapper_1.responseWrapperMiddleware(),
55
57
  ];
56
58
  exports.apiGatewayMiddlewares = apiGatewayMiddlewares;
57
59
  var middy = function (handler) { return core_1.default(handler).use(__spreadArrays(baseMiddlewares)); };
58
60
  exports.middy = middy;
59
- var apiGatewayMiddy = function (handler) { return core_1.default(handler).use(__spreadArrays(baseMiddlewares)); };
61
+ var apiGatewayMiddy = function (handler) { return core_1.default(handler).use(__spreadArrays(baseMiddlewares, apiGatewayMiddlewares)); };
60
62
  exports.apiGatewayMiddy = apiGatewayMiddy;
@@ -43,6 +43,7 @@ var index_1 = require("./index");
43
43
  var joi_1 = __importDefault(require("joi"));
44
44
  var validation_1 = require("./validation");
45
45
  var errors_1 = require("../errors");
46
+ var responseWrapper_1 = require("./responseWrapper");
46
47
  // eslint-disable-next-line @typescript-eslint/no-var-requires
47
48
  var webEvent = require('./mocks/webEvent.json');
48
49
  var context = {};
@@ -118,4 +119,49 @@ describe('Middleware', function () {
118
119
  });
119
120
  }); });
120
121
  });
122
+ describe('responseWrapperMiddleware', function () {
123
+ var handler = function (_event) { return __awaiter(void 0, void 0, void 0, function () {
124
+ return __generator(this, function (_a) {
125
+ console.log('ok done');
126
+ return [2 /*return*/, {
127
+ data: {
128
+ abc: 123,
129
+ },
130
+ }];
131
+ });
132
+ }); };
133
+ var middifiedHandler = index_1.apiGatewayMiddy(handler).use(responseWrapper_1.responseWrapperMiddleware());
134
+ it('should work', function () { return __awaiter(void 0, void 0, void 0, function () {
135
+ var result;
136
+ return __generator(this, function (_a) {
137
+ switch (_a.label) {
138
+ case 0: return [4 /*yield*/, middifiedHandler(webEvent, context, callback)];
139
+ case 1:
140
+ result = _a.sent();
141
+ console.log(result);
142
+ return [2 /*return*/];
143
+ }
144
+ });
145
+ }); });
146
+ });
147
+ describe('responseWrapperMiddleware error', function () {
148
+ var handler = function (_event) { return __awaiter(void 0, void 0, void 0, function () {
149
+ return __generator(this, function (_a) {
150
+ throw new errors_1.NotFoundError();
151
+ });
152
+ }); };
153
+ var middifiedHandler = index_1.apiGatewayMiddy(handler).use(responseWrapper_1.responseWrapperMiddleware());
154
+ it('should work', function () { return __awaiter(void 0, void 0, void 0, function () {
155
+ var result;
156
+ return __generator(this, function (_a) {
157
+ switch (_a.label) {
158
+ case 0: return [4 /*yield*/, middifiedHandler(webEvent, context, callback)];
159
+ case 1:
160
+ result = _a.sent();
161
+ console.log(result);
162
+ return [2 /*return*/];
163
+ }
164
+ });
165
+ }); });
166
+ });
121
167
  });
@@ -0,0 +1,3 @@
1
+ export declare const responseWrapperMiddleware: () => {
2
+ after: (req: any) => void;
3
+ };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.responseWrapperMiddleware = void 0;
4
+ var wrappers_1 = require("../wrappers");
5
+ exports.responseWrapperMiddleware = function () {
6
+ var responseWrapperMiddlewareAfter = function (req) {
7
+ console.log(req);
8
+ req.response = wrappers_1.buildProxyResult(req.response);
9
+ };
10
+ return {
11
+ after: responseWrapperMiddlewareAfter,
12
+ };
13
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spytecgps/lambda-utils",
3
- "version": "1.0.0-rc2",
3
+ "version": "1.0.0-rc4",
4
4
  "description": "Lambda Utils",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",