@spytecgps/lambda-utils 1.0.20 → 2.0.2-rc1
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/README.md +6 -1
- package/dist/errors/BadRequestError.d.ts +6 -6
- package/dist/errors/BadRequestError.js +28 -28
- package/dist/errors/BaseError.d.ts +3 -0
- package/dist/errors/{ConflictError.js → BaseError.js} +24 -28
- package/dist/errors/ConflictError.d.ts +6 -6
- package/dist/errors/ForbiddenError.d.ts +6 -6
- package/dist/errors/HttpError.d.ts +8 -8
- package/dist/errors/HttpError.js +32 -32
- package/dist/errors/NotFoundError.d.ts +6 -6
- package/dist/errors/NotFoundError.js +28 -28
- package/dist/errors/UnauthorizedError.d.ts +6 -6
- package/dist/errors/UnauthorizedError.js +28 -28
- package/dist/errors/index.d.ts +6 -6
- package/dist/errors/index.js +12 -16
- package/dist/index.d.ts +7 -7
- package/dist/index.js +1 -19
- package/dist/logger/index.d.ts +4 -0
- package/dist/logger/logger.d.ts +3 -3
- package/dist/logger/logger.js +57 -51
- package/dist/middleware/contextualLogger.d.ts +15 -15
- package/dist/middleware/contextualLogger.js +87 -87
- package/dist/middleware/index.d.ts +12 -12
- package/dist/middleware/index.js +62 -62
- package/dist/middleware/ioLogger.d.ts +1 -1
- package/dist/middleware/ioLogger.js +14 -14
- package/dist/middleware/middleware.test.d.ts +1 -1
- package/dist/middleware/middleware.test.js +167 -167
- package/dist/middleware/responseWrapper.d.ts +3 -3
- package/dist/middleware/responseWrapper.js +12 -12
- package/dist/middleware/types.d.ts +7 -7
- package/dist/middleware/types.js +2 -2
- package/dist/middleware/validation.d.ts +9 -9
- package/dist/middleware/validation.js +27 -27
- package/dist/types.d.ts +58 -58
- package/dist/types.js +2 -2
- package/dist/utils/cache.d.ts +23 -23
- package/dist/utils/cacheWrapper.d.ts +2 -2
- package/dist/utils/index.d.ts +4 -4
- package/dist/utils/timeOut.d.ts +1 -1
- package/dist/validation/custom.d.ts +18 -18
- package/dist/validation/custom.js +122 -161
- package/dist/validation/index.d.ts +6 -5
- package/dist/validation/index.js +20 -25
- package/dist/validation/requestContext.d.ts +14 -14
- package/dist/validation/requestContext.js +54 -56
- package/dist/validation/validateEvent.d.ts +3 -3
- package/dist/validation/validateEvent.js +25 -25
- package/dist/wrappers/apiGatewayEventWrapper.d.ts +4 -4
- package/dist/wrappers/apiGatewayEventWrapper.js +82 -79
- package/dist/wrappers/index.d.ts +4 -4
- package/dist/wrappers/index.js +21 -21
- package/dist/wrappers/response.d.ts +8 -8
- package/dist/wrappers/response.js +35 -36
- package/dist/wrappers/sqsEventWrapper.d.ts +3 -3
- package/dist/wrappers/sqsEventWrapper.js +116 -120
- package/package.json +34 -34
- package/dist/errors/ForbiddenError.js +0 -28
- package/dist/utils/cache.js +0 -58
- package/dist/utils/cacheWrapper.js +0 -55
- package/dist/utils/index.js +0 -17
- package/dist/utils/timeOut.js +0 -15
|
@@ -1,79 +1,82 @@
|
|
|
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 validation_1 = require("../validation");
|
|
40
|
-
var response_1 = require("./response");
|
|
41
|
-
var sdk_1 = require("@spytecgps/sdk");
|
|
42
|
-
var logEvent = function (e) { return ({
|
|
43
|
-
resource: e.resource,
|
|
44
|
-
httpMethod: e.httpMethod,
|
|
45
|
-
queryStringParameters: e.queryStringParameters,
|
|
46
|
-
pathParameters: e.pathParameters,
|
|
47
|
-
body: e.body,
|
|
48
|
-
}); };
|
|
49
|
-
var apiGatewayEventWrapper = function (_a) {
|
|
50
|
-
var event = _a.event, context = _a.context, schema = _a.schema, handler = _a.handler;
|
|
51
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
52
|
-
var validatedEvent, result, err_1;
|
|
53
|
-
return __generator(this, function (_b) {
|
|
54
|
-
switch (_b.label) {
|
|
55
|
-
case 0:
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
_b.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
|
|
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 validation_1 = require("../validation");
|
|
40
|
+
var response_1 = require("./response");
|
|
41
|
+
var sdk_1 = require("@spytecgps/sdk");
|
|
42
|
+
var logEvent = function (e) { return ({
|
|
43
|
+
resource: e.resource,
|
|
44
|
+
httpMethod: e.httpMethod,
|
|
45
|
+
queryStringParameters: e.queryStringParameters,
|
|
46
|
+
pathParameters: e.pathParameters,
|
|
47
|
+
body: e.body,
|
|
48
|
+
}); };
|
|
49
|
+
var apiGatewayEventWrapper = function (_a) {
|
|
50
|
+
var event = _a.event, context = _a.context, schema = _a.schema, handler = _a.handler;
|
|
51
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
52
|
+
var start, validatedEvent, result, err_1;
|
|
53
|
+
return __generator(this, function (_b) {
|
|
54
|
+
switch (_b.label) {
|
|
55
|
+
case 0:
|
|
56
|
+
start = new Date().getTime();
|
|
57
|
+
if (event && context) {
|
|
58
|
+
sdk_1.logger.withRequest(event, context);
|
|
59
|
+
}
|
|
60
|
+
sdk_1.logger.info(logEvent(event), "apiGatewayWrapper - got event");
|
|
61
|
+
_b.label = 1;
|
|
62
|
+
case 1:
|
|
63
|
+
_b.trys.push([1, 3, , 4]);
|
|
64
|
+
validatedEvent = validation_1.validateEvent(event, schema);
|
|
65
|
+
return [4 /*yield*/, handler(validatedEvent)];
|
|
66
|
+
case 2:
|
|
67
|
+
result = _b.sent();
|
|
68
|
+
sdk_1.logger.info({ result: result, requestTime: new Date().getTime() - start }, "apiGatewayWrapper - finished");
|
|
69
|
+
return [2 /*return*/, response_1.buildProxyResult(result)];
|
|
70
|
+
case 3:
|
|
71
|
+
err_1 = _b.sent();
|
|
72
|
+
sdk_1.logger.error({ err: err_1 }, "apiGatewayWrapper - caught error");
|
|
73
|
+
return [2 /*return*/, response_1.buildProxyResult({
|
|
74
|
+
statusCode: err_1.code || 500,
|
|
75
|
+
message: err_1.message || 'Error',
|
|
76
|
+
})];
|
|
77
|
+
case 4: return [2 /*return*/];
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
exports.default = apiGatewayEventWrapper;
|
package/dist/wrappers/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import apiGatewayEventWrapper from './apiGatewayEventWrapper';
|
|
2
|
-
import sqsEventWrapper from './sqsEventWrapper';
|
|
3
|
-
export { apiGatewayEventWrapper, sqsEventWrapper };
|
|
4
|
-
export * from './response';
|
|
1
|
+
import apiGatewayEventWrapper from './apiGatewayEventWrapper';
|
|
2
|
+
import sqsEventWrapper from './sqsEventWrapper';
|
|
3
|
+
export { apiGatewayEventWrapper, sqsEventWrapper };
|
|
4
|
+
export * from './response';
|
package/dist/wrappers/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
-
};
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.sqsEventWrapper = exports.apiGatewayEventWrapper = void 0;
|
|
17
|
-
var apiGatewayEventWrapper_1 = __importDefault(require("./apiGatewayEventWrapper"));
|
|
18
|
-
exports.apiGatewayEventWrapper = apiGatewayEventWrapper_1.default;
|
|
19
|
-
var sqsEventWrapper_1 = __importDefault(require("./sqsEventWrapper"));
|
|
20
|
-
exports.sqsEventWrapper = sqsEventWrapper_1.default;
|
|
21
|
-
__exportStar(require("./response"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.sqsEventWrapper = exports.apiGatewayEventWrapper = void 0;
|
|
17
|
+
var apiGatewayEventWrapper_1 = __importDefault(require("./apiGatewayEventWrapper"));
|
|
18
|
+
exports.apiGatewayEventWrapper = apiGatewayEventWrapper_1.default;
|
|
19
|
+
var sqsEventWrapper_1 = __importDefault(require("./sqsEventWrapper"));
|
|
20
|
+
exports.sqsEventWrapper = sqsEventWrapper_1.default;
|
|
21
|
+
__exportStar(require("./response"), exports);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { APIGatewayProxyResult } from 'aws-lambda';
|
|
2
|
-
import { HandlerResponse } from '../types';
|
|
3
|
-
export declare const buildResponseBody: <T>(statusCode: number, message: string, data?: T) => {
|
|
4
|
-
success: boolean;
|
|
5
|
-
message: string;
|
|
6
|
-
result: T;
|
|
7
|
-
};
|
|
8
|
-
export declare const buildProxyResult: <R>({ statusCode, message, data, headers, rawResult, stringifyBody, }: HandlerResponse<R>) => APIGatewayProxyResult;
|
|
1
|
+
import { APIGatewayProxyResult } from 'aws-lambda';
|
|
2
|
+
import { HandlerResponse } from '../types';
|
|
3
|
+
export declare const buildResponseBody: <T>(statusCode: number, message: string, data?: T) => {
|
|
4
|
+
success: boolean;
|
|
5
|
+
message: string;
|
|
6
|
+
result: T;
|
|
7
|
+
};
|
|
8
|
+
export declare const buildProxyResult: <R>({ statusCode, message, data, headers, rawResult, stringifyBody, }: HandlerResponse<R>) => APIGatewayProxyResult;
|
|
@@ -1,36 +1,35 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.buildProxyResult = exports.buildResponseBody = void 0;
|
|
15
|
-
var baseHeaders = {
|
|
16
|
-
'Content-Type': 'application/json',
|
|
17
|
-
'Access-Control-Allow-Origin': '*',
|
|
18
|
-
'Access-Control-Allow-Credentials': true,
|
|
19
|
-
};
|
|
20
|
-
exports.buildResponseBody = function (statusCode, message, data) {
|
|
21
|
-
return {
|
|
22
|
-
success: statusCode < 400,
|
|
23
|
-
message: message,
|
|
24
|
-
result: data ? data : undefined,
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
exports.buildProxyResult = function (_a) {
|
|
28
|
-
var _b = _a.statusCode, statusCode = _b === void 0 ? 200 : _b, _c = _a.message, message = _c === void 0 ? 'ok' : _c, data = _a.data, _d = _a.headers, headers = _d === void 0 ? {} : _d, _e = _a.rawResult, rawResult = _e === void 0 ? false : _e
|
|
29
|
-
var resp = rawResult ? data : exports.buildResponseBody(statusCode, message, data);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.buildProxyResult = exports.buildResponseBody = void 0;
|
|
15
|
+
var baseHeaders = {
|
|
16
|
+
'Content-Type': 'application/json',
|
|
17
|
+
'Access-Control-Allow-Origin': '*',
|
|
18
|
+
'Access-Control-Allow-Credentials': true,
|
|
19
|
+
};
|
|
20
|
+
exports.buildResponseBody = function (statusCode, message, data) {
|
|
21
|
+
return {
|
|
22
|
+
success: statusCode < 400,
|
|
23
|
+
message: message,
|
|
24
|
+
result: data ? data : undefined,
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
exports.buildProxyResult = function (_a) {
|
|
28
|
+
var _b = _a.statusCode, statusCode = _b === void 0 ? 200 : _b, _c = _a.message, message = _c === void 0 ? 'ok' : _c, data = _a.data, _d = _a.headers, headers = _d === void 0 ? {} : _d, _e = _a.rawResult, rawResult = _e === void 0 ? false : _e;
|
|
29
|
+
var resp = rawResult ? data : exports.buildResponseBody(statusCode, message, data);
|
|
30
|
+
return {
|
|
31
|
+
headers: __assign(__assign({}, baseHeaders), headers),
|
|
32
|
+
statusCode: statusCode,
|
|
33
|
+
body: resp && JSON.stringify(resp),
|
|
34
|
+
};
|
|
35
|
+
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { SQSWrapperArgs } from '../types';
|
|
2
|
-
declare const sqsEventWrapper: <RecordType extends
|
|
3
|
-
export default sqsEventWrapper;
|
|
1
|
+
import { BaseRecord, SQSWrapperArgs } from '../types';
|
|
2
|
+
declare const sqsEventWrapper: <RecordType extends BaseRecord>({ event, context, schema, handler, singleHandler, mode, }: SQSWrapperArgs<RecordType>) => Promise<void>;
|
|
3
|
+
export default sqsEventWrapper;
|
|
@@ -1,120 +1,116 @@
|
|
|
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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
-
};
|
|
41
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
var validateEvent_1 = __importDefault(require("../validation/validateEvent"));
|
|
43
|
-
var sdk_1 = require("@spytecgps/sdk");
|
|
44
|
-
|
|
45
|
-
return (
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
return [
|
|
62
|
-
|
|
63
|
-
_a.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
_a.label =
|
|
71
|
-
case
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
case
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
case
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
case
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
case
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
case
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
};
|
|
120
|
-
exports.default = sqsEventWrapper;
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
var validateEvent_1 = __importDefault(require("../validation/validateEvent"));
|
|
43
|
+
var sdk_1 = require("@spytecgps/sdk");
|
|
44
|
+
function processEvent(validatedEvent, handler, singleHandler, mode) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
46
|
+
var records, _i, records_1, record;
|
|
47
|
+
return __generator(this, function (_a) {
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
if (!(handler || singleHandler)) {
|
|
51
|
+
throw new Error("handler or singleHandler not defined");
|
|
52
|
+
}
|
|
53
|
+
if (!handler) return [3 /*break*/, 2];
|
|
54
|
+
return [4 /*yield*/, handler(validatedEvent)];
|
|
55
|
+
case 1:
|
|
56
|
+
_a.sent();
|
|
57
|
+
return [3 /*break*/, 9];
|
|
58
|
+
case 2:
|
|
59
|
+
if (!singleHandler) return [3 /*break*/, 9];
|
|
60
|
+
records = validatedEvent.Records;
|
|
61
|
+
if (!(mode === 'serial')) return [3 /*break*/, 7];
|
|
62
|
+
_i = 0, records_1 = records;
|
|
63
|
+
_a.label = 3;
|
|
64
|
+
case 3:
|
|
65
|
+
if (!(_i < records_1.length)) return [3 /*break*/, 6];
|
|
66
|
+
record = records_1[_i];
|
|
67
|
+
return [4 /*yield*/, singleHandler(record)];
|
|
68
|
+
case 4:
|
|
69
|
+
_a.sent();
|
|
70
|
+
_a.label = 5;
|
|
71
|
+
case 5:
|
|
72
|
+
_i++;
|
|
73
|
+
return [3 /*break*/, 3];
|
|
74
|
+
case 6: return [3 /*break*/, 9];
|
|
75
|
+
case 7:
|
|
76
|
+
if (!(mode === 'parallel')) return [3 /*break*/, 9];
|
|
77
|
+
return [4 /*yield*/, Promise.all(records.map(function (record) { return singleHandler(record); }))];
|
|
78
|
+
case 8:
|
|
79
|
+
_a.sent();
|
|
80
|
+
_a.label = 9;
|
|
81
|
+
case 9: return [2 /*return*/];
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
var sqsEventWrapper = function (_a) {
|
|
87
|
+
var event = _a.event, context = _a.context, schema = _a.schema, handler = _a.handler, singleHandler = _a.singleHandler, _b = _a.mode, mode = _b === void 0 ? 'serial' : _b;
|
|
88
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
89
|
+
var start, validatedEvent, err_1;
|
|
90
|
+
return __generator(this, function (_c) {
|
|
91
|
+
switch (_c.label) {
|
|
92
|
+
case 0:
|
|
93
|
+
start = new Date().getTime();
|
|
94
|
+
if (event && context) {
|
|
95
|
+
sdk_1.logger.withRequest(event, context);
|
|
96
|
+
}
|
|
97
|
+
sdk_1.logger.info(event, "sqsEventWrapper - got event");
|
|
98
|
+
_c.label = 1;
|
|
99
|
+
case 1:
|
|
100
|
+
_c.trys.push([1, 3, , 4]);
|
|
101
|
+
validatedEvent = validateEvent_1.default(event, schema);
|
|
102
|
+
return [4 /*yield*/, processEvent(validatedEvent, handler, singleHandler, mode)];
|
|
103
|
+
case 2:
|
|
104
|
+
_c.sent();
|
|
105
|
+
sdk_1.logger.info({ requestTime: new Date().getTime() - start }, "sqsEventWrapper - finished");
|
|
106
|
+
return [3 /*break*/, 4];
|
|
107
|
+
case 3:
|
|
108
|
+
err_1 = _c.sent();
|
|
109
|
+
sdk_1.logger.error({ err: err_1 }, "sqsEventWrapper - caught error");
|
|
110
|
+
throw err_1;
|
|
111
|
+
case 4: return [2 /*return*/];
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
exports.default = sqsEventWrapper;
|