@spytecgps/lambda-utils 0.9.3 → 0.9.5

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.
@@ -1,3 +1,5 @@
1
- export default class BadRequestError extends Error {
1
+ import { BaseError } from './BaseError';
2
+ export default class BadRequestError extends BaseError {
2
3
  code: number;
4
+ name: string;
3
5
  }
@@ -13,13 +13,15 @@ var __extends = (this && this.__extends) || (function () {
13
13
  };
14
14
  })();
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
+ var BaseError_1 = require("./BaseError");
16
17
  var BadRequestError = /** @class */ (function (_super) {
17
18
  __extends(BadRequestError, _super);
18
19
  function BadRequestError() {
19
20
  var _this = _super !== null && _super.apply(this, arguments) || this;
20
21
  _this.code = 400;
22
+ _this.name = 'BadRequestError';
21
23
  return _this;
22
24
  }
23
25
  return BadRequestError;
24
- }(Error));
26
+ }(BaseError_1.BaseError));
25
27
  exports.default = BadRequestError;
@@ -0,0 +1,3 @@
1
+ export declare abstract class BaseError extends Error {
2
+ abstract code: number;
3
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.BaseError = void 0;
17
+ var BaseError = /** @class */ (function (_super) {
18
+ __extends(BaseError, _super);
19
+ function BaseError() {
20
+ return _super !== null && _super.apply(this, arguments) || this;
21
+ }
22
+ return BaseError;
23
+ }(Error));
24
+ exports.BaseError = BaseError;
@@ -1,4 +1,5 @@
1
- export default class NotFoundError extends Error {
1
+ import { BaseError } from './BaseError';
2
+ export default class NotFoundError extends BaseError {
2
3
  code: number;
3
- message: string;
4
+ name: string;
4
5
  }
@@ -13,14 +13,15 @@ var __extends = (this && this.__extends) || (function () {
13
13
  };
14
14
  })();
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
+ var BaseError_1 = require("./BaseError");
16
17
  var NotFoundError = /** @class */ (function (_super) {
17
18
  __extends(NotFoundError, _super);
18
19
  function NotFoundError() {
19
20
  var _this = _super !== null && _super.apply(this, arguments) || this;
20
21
  _this.code = 404;
21
- _this.message = 'Not found';
22
+ _this.name = 'NotFoundError';
22
23
  return _this;
23
24
  }
24
25
  return NotFoundError;
25
- }(Error));
26
+ }(BaseError_1.BaseError));
26
27
  exports.default = NotFoundError;
@@ -1,4 +1,5 @@
1
- export default class UnauthorizedError extends Error {
1
+ import { BaseError } from './BaseError';
2
+ export default class UnauthorizedError extends BaseError {
2
3
  code: number;
3
- message: string;
4
+ name: string;
4
5
  }
@@ -13,14 +13,15 @@ var __extends = (this && this.__extends) || (function () {
13
13
  };
14
14
  })();
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
+ var BaseError_1 = require("./BaseError");
16
17
  var UnauthorizedError = /** @class */ (function (_super) {
17
18
  __extends(UnauthorizedError, _super);
18
19
  function UnauthorizedError() {
19
20
  var _this = _super !== null && _super.apply(this, arguments) || this;
20
21
  _this.code = 401;
21
- _this.message = 'Unauthorized';
22
+ _this.name = 'UnauthorizedError';
22
23
  return _this;
23
24
  }
24
25
  return UnauthorizedError;
25
- }(Error));
26
+ }(BaseError_1.BaseError));
26
27
  exports.default = UnauthorizedError;
@@ -45,7 +45,7 @@ var apiGatewayEventWrapper = function (_a) {
45
45
  return __generator(this, function (_b) {
46
46
  switch (_b.label) {
47
47
  case 0:
48
- console.log("apiGwWrapper - got event", event);
48
+ console.log("apiGatewayWrapper - got event", event);
49
49
  _b.label = 1;
50
50
  case 1:
51
51
  _b.trys.push([1, 3, , 4]);
@@ -57,7 +57,7 @@ var apiGatewayEventWrapper = function (_a) {
57
57
  return [2 /*return*/, response_1.buildProxyResult(result)];
58
58
  case 3:
59
59
  err_1 = _b.sent();
60
- console.error("apiGwWrapper - caught error", err_1);
60
+ console.error("apiGatewayWrapper - caught error", err_1);
61
61
  return [2 /*return*/, response_1.buildProxyResult({
62
62
  statusCode: err_1.code || 500,
63
63
  message: err_1.message || 'Error',
@@ -1,3 +1,4 @@
1
1
  import apiGatewayEventWrapper from './apiGatewayEventWrapper';
2
- export { apiGatewayEventWrapper };
2
+ import sqsEventWrapper from './sqsEventWrapper';
3
+ export { apiGatewayEventWrapper, sqsEventWrapper };
3
4
  export * from './response';
@@ -10,7 +10,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.apiGatewayEventWrapper = void 0;
13
+ exports.sqsEventWrapper = exports.apiGatewayEventWrapper = void 0;
14
14
  var apiGatewayEventWrapper_1 = require("./apiGatewayEventWrapper");
15
15
  exports.apiGatewayEventWrapper = apiGatewayEventWrapper_1.default;
16
+ var sqsEventWrapper_1 = require("./sqsEventWrapper");
17
+ exports.sqsEventWrapper = sqsEventWrapper_1.default;
16
18
  __exportStar(require("./response"), exports);
@@ -14,6 +14,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.buildProxyResult = exports.buildResponseBody = void 0;
15
15
  var baseHeaders = {
16
16
  'Content-Type': 'application/json',
17
+ 'Access-Control-Allow-Origin': '*',
18
+ 'Access-Control-Allow-Credentials': true,
17
19
  };
18
20
  exports.buildResponseBody = function (statusCode, message, data) {
19
21
  return {
@@ -0,0 +1,13 @@
1
+ import { SQSEvent, SQSRecord } from 'aws-lambda';
2
+ import * as Joi from 'joi';
3
+ export declare type BaseRecord = Omit<SQSRecord, 'body' | 'messageAttributes'>;
4
+ export interface MessageEvent<RecordType extends BaseRecord> {
5
+ Records: RecordType[];
6
+ }
7
+ export interface SQSWrapperArgs<RecordType extends BaseRecord> {
8
+ event: SQSEvent;
9
+ schema?: Joi.ObjectSchema<MessageEvent<RecordType>>;
10
+ handler: (e: MessageEvent<RecordType>) => void | Promise<void>;
11
+ }
12
+ declare const sqsEventWrapper: <RecordType extends Pick<SQSRecord, "messageId" | "receiptHandle" | "attributes" | "md5OfBody" | "eventSource" | "eventSourceARN" | "awsRegion">>({ event, schema, handler, }: SQSWrapperArgs<RecordType>) => Promise<void>;
13
+ export default sqsEventWrapper;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var validateEvent_1 = require("../validation/validateEvent");
40
+ var sqsEventWrapper = function (_a) {
41
+ var event = _a.event, schema = _a.schema, handler = _a.handler;
42
+ return __awaiter(void 0, void 0, void 0, function () {
43
+ var validatedEvent, result, err_1;
44
+ return __generator(this, function (_b) {
45
+ switch (_b.label) {
46
+ case 0:
47
+ console.log("sqsEventWrapper - got event", JSON.stringify(event, undefined, 2));
48
+ _b.label = 1;
49
+ case 1:
50
+ _b.trys.push([1, 3, , 4]);
51
+ validatedEvent = validateEvent_1.default(event, schema);
52
+ return [4 /*yield*/, handler(validatedEvent)];
53
+ case 2:
54
+ result = _b.sent();
55
+ console.log("sqsEventWrapper - finished", result);
56
+ return [3 /*break*/, 4];
57
+ case 3:
58
+ err_1 = _b.sent();
59
+ JSON.stringify(err_1, undefined, 2);
60
+ console.error("sqsEventWrapper - caught error", err_1);
61
+ throw err_1;
62
+ case 4: return [2 /*return*/];
63
+ }
64
+ });
65
+ });
66
+ };
67
+ exports.default = sqsEventWrapper;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spytecgps/lambda-utils",
3
- "version": "0.9.3",
3
+ "version": "0.9.5",
4
4
  "description": "Lambda Utils",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",