@scloud/lambda-api 0.1.20 → 0.1.22
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/handler.d.ts +2 -2
- package/dist/handler.js +5 -3
- package/package.json +1 -3
package/dist/handler.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { APIGatewayProxyEvent, APIGatewayProxyResult, Context } from 'aws-lambda';
|
|
2
|
-
import { Handler, Routes } from './types';
|
|
2
|
+
import { Handler, Request, Response, Routes } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* API route handler
|
|
5
5
|
*/
|
|
6
|
-
export declare function apiHandler(event: APIGatewayProxyEvent, context: Context, routes?: Routes, errorHandler?:
|
|
6
|
+
export declare function apiHandler(event: APIGatewayProxyEvent, context: Context, routes?: Routes, errorHandler?: (request: Request, e: Error) => Promise<Response>, catchAll?: Handler): Promise<APIGatewayProxyResult>;
|
package/dist/handler.js
CHANGED
|
@@ -7,7 +7,9 @@ const helpers_1 = require("./helpers");
|
|
|
7
7
|
*/
|
|
8
8
|
async function apiHandler(event, context, routes = {
|
|
9
9
|
'/api/ping': { GET: async (request) => ({ statusCode: 200, body: request }) },
|
|
10
|
-
},
|
|
10
|
+
},
|
|
11
|
+
// eslint-disable-next-line no-unused-vars
|
|
12
|
+
errorHandler = async (request) => ({ statusCode: 500, body: { error: `Internal server error: ${request.path}` } }), catchAll = async (request) => ({ statusCode: 404, body: { error: `Not found: ${request.path}` } })) {
|
|
11
13
|
console.log(`Executing ${context.functionName} version: ${process.env.COMMIT_HASH}`);
|
|
12
14
|
const request = (0, helpers_1.parseRequest)(event);
|
|
13
15
|
let response;
|
|
@@ -29,7 +31,7 @@ async function apiHandler(event, context, routes = {
|
|
|
29
31
|
console.error(`${e.message}\n${e.stack}`);
|
|
30
32
|
try {
|
|
31
33
|
// Error handling
|
|
32
|
-
response = await errorHandler(request);
|
|
34
|
+
response = await errorHandler(request, e);
|
|
33
35
|
}
|
|
34
36
|
catch (ee) {
|
|
35
37
|
response = { statusCode: 500, body: { error: `Internal server error: ${request.path} [errorHandler]` } };
|
|
@@ -51,4 +53,4 @@ async function apiHandler(event, context, routes = {
|
|
|
51
53
|
return result;
|
|
52
54
|
}
|
|
53
55
|
exports.apiHandler = apiHandler;
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVNBLHVDQUFrRTtBQUVsRTs7R0FFRztBQUNJLEtBQUssVUFBVSxVQUFVLENBQzlCLEtBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLFNBQWlCO0lBQ2YsV0FBVyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtDQUN2RjtBQUNELDBDQUEwQztBQUMxQyxlQUFrRSxLQUFLLEVBQUUsT0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQzlLLFdBQW9CLEtBQUssRUFBRSxPQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsY0FBYyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBRXBILE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxPQUFPLENBQUMsWUFBWSxhQUFhLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyRixNQUFNLE9BQU8sR0FBRyxJQUFBLHNCQUFZLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFFcEMsSUFBSSxRQUFrQixDQUFDO0lBQ3ZCLElBQUk7UUFDRixNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFVLEVBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1Ysa0JBQWtCO1lBQ2xCLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwQzthQUFNO1lBQ0wsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFxQixDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLGVBQWU7Z0JBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO1lBRTdGLHNCQUFzQjtZQUN0QixRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0M7S0FDRjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFJLENBQVcsQ0FBQyxPQUFPLEtBQU0sQ0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEUsSUFBSTtZQUNGLGlCQUFpQjtZQUNqQixRQUFRLEdBQUcsTUFBTSxZQUFZLENBQUMsT0FBTyxFQUFFLENBQVUsQ0FBQyxDQUFDO1NBQ3BEO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSwwQkFBMEIsT0FBTyxDQUFDLElBQUksaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1NBQzFHO0tBQ0Y7SUFFRCwyQkFBMkI7SUFDM0IsTUFBTSxNQUFNLEdBQTBCO1FBQ3BDLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtRQUMvQixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ25DLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztLQUMxQixDQUFDO0lBRUYsbUJBQW1CO0lBQ25CLE1BQU0sYUFBYSxHQUFHLElBQUEscUJBQVcsRUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsSUFBSSxhQUFhLEVBQUU7UUFDakIsTUFBTSxDQUFDLGlCQUFpQixHQUFHO1lBQ3pCLE1BQU0sRUFBRSxhQUFhO1NBQ3RCLENBQUM7S0FDSDtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFwREQsZ0NBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L3ByZWZlci1kZWZhdWx0LWV4cG9ydCAqL1xuaW1wb3J0IHtcbiAgQVBJR2F0ZXdheVByb3h5RXZlbnQsXG4gIEFQSUdhdGV3YXlQcm94eVJlc3VsdCxcbiAgQ29udGV4dCxcbn0gZnJvbSAnYXdzLWxhbWJkYSc7XG5pbXBvcnQge1xuICBIYW5kbGVyLCBSZXF1ZXN0LCBSZXNwb25zZSwgUm91dGUsIFJvdXRlcyxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBidWlsZENvb2tpZSwgbWF0Y2hSb3V0ZSwgcGFyc2VSZXF1ZXN0IH0gZnJvbSAnLi9oZWxwZXJzJztcblxuLyoqXG4gKiBBUEkgcm91dGUgaGFuZGxlclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpSGFuZGxlcihcbiAgZXZlbnQ6IEFQSUdhdGV3YXlQcm94eUV2ZW50LFxuICBjb250ZXh0OiBDb250ZXh0LFxuICByb3V0ZXM6IFJvdXRlcyA9IHtcbiAgICAnL2FwaS9waW5nJzogeyBHRVQ6IGFzeW5jIChyZXF1ZXN0OiBSZXF1ZXN0KSA9PiAoeyBzdGF0dXNDb2RlOiAyMDAsIGJvZHk6IHJlcXVlc3QgfSkgfSxcbiAgfSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gIGVycm9ySGFuZGxlcjogKHJlcXVlc3Q6IFJlcXVlc3QsIGU6IEVycm9yKSA9PiBQcm9taXNlPFJlc3BvbnNlPiA9IGFzeW5jIChyZXF1ZXN0OiBSZXF1ZXN0KSA9PiAoeyBzdGF0dXNDb2RlOiA1MDAsIGJvZHk6IHsgZXJyb3I6IGBJbnRlcm5hbCBzZXJ2ZXIgZXJyb3I6ICR7cmVxdWVzdC5wYXRofWAgfSB9KSxcbiAgY2F0Y2hBbGw6IEhhbmRsZXIgPSBhc3luYyAocmVxdWVzdDogUmVxdWVzdCkgPT4gKHsgc3RhdHVzQ29kZTogNDA0LCBib2R5OiB7IGVycm9yOiBgTm90IGZvdW5kOiAke3JlcXVlc3QucGF0aH1gIH0gfSksXG4pOiBQcm9taXNlPEFQSUdhdGV3YXlQcm94eVJlc3VsdD4ge1xuICBjb25zb2xlLmxvZyhgRXhlY3V0aW5nICR7Y29udGV4dC5mdW5jdGlvbk5hbWV9IHZlcnNpb246ICR7cHJvY2Vzcy5lbnYuQ09NTUlUX0hBU0h9YCk7XG4gIGNvbnN0IHJlcXVlc3QgPSBwYXJzZVJlcXVlc3QoZXZlbnQpO1xuXG4gIGxldCByZXNwb25zZTogUmVzcG9uc2U7XG4gIHRyeSB7XG4gICAgY29uc3Qgcm91dGUgPSBtYXRjaFJvdXRlKHJvdXRlcywgcmVxdWVzdC5wYXRoKTtcbiAgICBpZiAoIXJvdXRlKSB7XG4gICAgICAvLyBDYXRjaC1hbGwgLyA0MDRcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgY2F0Y2hBbGwocmVxdWVzdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGhhbmRsZXJGdW5jdGlvbiA9IHJvdXRlW3JlcXVlc3QubWV0aG9kIGFzIGtleW9mIFJvdXRlXTtcbiAgICAgIGlmICghaGFuZGxlckZ1bmN0aW9uKSByZXR1cm4geyBzdGF0dXNDb2RlOiA0MDUsIGJvZHk6IEpTT04uc3RyaW5naWZ5KCdNZXRob2Qgbm90IGFsbG93ZWQnKSB9O1xuXG4gICAgICAvLyBIYW5kbGUgdGhlIHJlcXVlc3Q6XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGhhbmRsZXJGdW5jdGlvbihyZXF1ZXN0KTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKGAkeyhlIGFzIEVycm9yKS5tZXNzYWdlfVxcbiR7KGUgYXMgRXJyb3IpLnN0YWNrfWApO1xuICAgIHRyeSB7XG4gICAgICAvLyBFcnJvciBoYW5kbGluZ1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCBlcnJvckhhbmRsZXIocmVxdWVzdCwgZSBhcyBFcnJvcik7XG4gICAgfSBjYXRjaCAoZWUpIHtcbiAgICAgIHJlc3BvbnNlID0geyBzdGF0dXNDb2RlOiA1MDAsIGJvZHk6IHsgZXJyb3I6IGBJbnRlcm5hbCBzZXJ2ZXIgZXJyb3I6ICR7cmVxdWVzdC5wYXRofSBbZXJyb3JIYW5kbGVyXWAgfSB9O1xuICAgIH1cbiAgfVxuXG4gIC8vIEFQSSBHYXRld2F5IFByb3h5IHJlc3VsdFxuICBjb25zdCByZXN1bHQ6IEFQSUdhdGV3YXlQcm94eVJlc3VsdCA9IHtcbiAgICBzdGF0dXNDb2RlOiByZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmJvZHkpLFxuICAgIGhlYWRlcnM6IHJlc3BvbnNlLmhlYWRlcnMsXG4gIH07XG5cbiAgLy8gQ29va2llcyAoaWYgc2V0KVxuICBjb25zdCBjb29raWVIZWFkZXJzID0gYnVpbGRDb29raWUocmVzcG9uc2UuY29va2llcyk7XG4gIGlmIChjb29raWVIZWFkZXJzKSB7XG4gICAgcmVzdWx0Lm11bHRpVmFsdWVIZWFkZXJzID0ge1xuICAgICAgQ29va2llOiBjb29raWVIZWFkZXJzLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scloud/lambda-api",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
4
4
|
"description": "Lambda handler for API Gateway proxy requests",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
@@ -35,7 +35,6 @@
|
|
|
35
35
|
"@types/aws-lambda": "*",
|
|
36
36
|
"@types/chai": "*",
|
|
37
37
|
"@types/cookie": "*",
|
|
38
|
-
"@types/expect": "*",
|
|
39
38
|
"@types/mocha": "*",
|
|
40
39
|
"@types/node": "*",
|
|
41
40
|
"@types/nunjucks": "*",
|
|
@@ -52,7 +51,6 @@
|
|
|
52
51
|
"typescript": "*"
|
|
53
52
|
},
|
|
54
53
|
"dependencies": {
|
|
55
|
-
"aws-lambda": "*",
|
|
56
54
|
"cookie": "*"
|
|
57
55
|
}
|
|
58
56
|
}
|