@scloud/lambda-api 0.2.1 → 0.2.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.
- package/README.md +2 -0
- package/dist/handler.js +6 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,6 +7,8 @@ This is a piece of useful boilerplate to handle the mechanics of routing, header
|
|
|
7
7
|
## Releae notes
|
|
8
8
|
|
|
9
9
|
* `0.2.1`: Request headers are now made available in lowecase as well as their original case. The response body can now be `string` as well as `object`.
|
|
10
|
+
* `0.2.2`: Add `Content-Type: text/plain` for string responses if not already set.
|
|
11
|
+
|
|
10
12
|
## Usage
|
|
11
13
|
|
|
12
14
|
Create your routes:
|
package/dist/handler.js
CHANGED
|
@@ -38,9 +38,14 @@ async function apiHandler(event, context, routes = {
|
|
|
38
38
|
// API Gateway Proxy result
|
|
39
39
|
let body = '';
|
|
40
40
|
if (typeof response.body === 'string') {
|
|
41
|
+
// Use the body as-is
|
|
42
|
+
// Potentially add a text/plain content type header:
|
|
43
|
+
response.headers = { 'Content-Type': 'text/plain', ...response.headers };
|
|
41
44
|
body = response.body;
|
|
42
45
|
}
|
|
43
46
|
else if (response.body) {
|
|
47
|
+
// Stringify the response object
|
|
48
|
+
// API Gateway returns applicatipno/json by default
|
|
44
49
|
body = JSON.stringify(response.body);
|
|
45
50
|
}
|
|
46
51
|
const result = {
|
|
@@ -58,4 +63,4 @@ async function apiHandler(event, context, routes = {
|
|
|
58
63
|
return result;
|
|
59
64
|
}
|
|
60
65
|
exports.apiHandler = apiHandler;
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBLHVDQUFrRTtBQUVsRTs7R0FFRztBQUNJLEtBQUssVUFBVSxVQUFVLENBQzlCLEtBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLFNBQWlCO0lBQ2YsV0FBVyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtDQUN2RixFQUVELGVBQWtFLEtBQUssRUFBRSxPQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDOUssV0FBb0IsS0FBSyxFQUFFLE9BQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxjQUFjLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFFcEgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLE9BQU8sQ0FBQyxZQUFZLGFBQWEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLE1BQU0sT0FBTyxHQUFHLElBQUEsc0JBQVksRUFBQyxLQUFLLENBQUMsQ0FBQztJQUVwQyxJQUFJLFFBQWtCLENBQUM7SUFDdkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBVSxFQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsa0JBQWtCO1lBQ2xCLFFBQVEsR0FBRyxNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBcUIsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxlQUFlO2dCQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztZQUU3RixzQkFBc0I7WUFDdEIsUUFBUSxHQUFHLE1BQU0sZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBSSxDQUFXLENBQUMsT0FBTyxLQUFNLENBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQztZQUNILGlCQUFpQjtZQUNqQixRQUFRLEdBQUcsTUFBTSxZQUFZLENBQUMsT0FBTyxFQUFFLENBQVUsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ1osUUFBUSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLE9BQU8sQ0FBQyxJQUFJLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztRQUMzRyxDQUFDO0lBQ0gsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixJQUFJLElBQUksR0FBVyxFQUFFLENBQUM7SUFDdEIsSUFBSSxPQUFPLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdEMscUJBQXFCO1FBQ3JCLG9EQUFvRDtRQUNwRCxRQUFRLENBQUMsT0FBTyxHQUFHLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6RSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztJQUN2QixDQUFDO1NBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsZ0NBQWdDO1FBQ2hDLG1EQUFtRDtRQUNuRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUEwQjtRQUNwQyxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7UUFDL0IsSUFBSTtRQUNKLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztLQUMxQixDQUFDO0lBRUYsbUJBQW1CO0lBQ25CLE1BQU0sYUFBYSxHQUFHLElBQUEscUJBQVcsRUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNsQixNQUFNLENBQUMsaUJBQWlCLEdBQUc7WUFDekIsTUFBTSxFQUFFLGFBQWE7U0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBL0RELGdDQStEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFQSUdhdGV3YXlQcm94eUV2ZW50LFxuICBBUElHYXRld2F5UHJveHlSZXN1bHQsXG4gIENvbnRleHQsXG59IGZyb20gJ2F3cy1sYW1iZGEnO1xuaW1wb3J0IHtcbiAgSGFuZGxlciwgUmVxdWVzdCwgUmVzcG9uc2UsIFJvdXRlLCBSb3V0ZXMsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRDb29raWUsIG1hdGNoUm91dGUsIHBhcnNlUmVxdWVzdCB9IGZyb20gJy4vaGVscGVycyc7XG5cbi8qKlxuICogQVBJIHJvdXRlIGhhbmRsZXJcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaUhhbmRsZXIoXG4gIGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudCxcbiAgY29udGV4dDogQ29udGV4dCxcbiAgcm91dGVzOiBSb3V0ZXMgPSB7XG4gICAgJy9hcGkvcGluZyc6IHsgR0VUOiBhc3luYyAocmVxdWVzdDogUmVxdWVzdCkgPT4gKHsgc3RhdHVzQ29kZTogMjAwLCBib2R5OiByZXF1ZXN0IH0pIH0sXG4gIH0sXG5cbiAgZXJyb3JIYW5kbGVyOiAocmVxdWVzdDogUmVxdWVzdCwgZTogRXJyb3IpID0+IFByb21pc2U8UmVzcG9uc2U+ID0gYXN5bmMgKHJlcXVlc3Q6IFJlcXVlc3QpID0+ICh7IHN0YXR1c0NvZGU6IDUwMCwgYm9keTogeyBlcnJvcjogYEludGVybmFsIHNlcnZlciBlcnJvcjogJHtyZXF1ZXN0LnBhdGh9YCB9IH0pLFxuICBjYXRjaEFsbDogSGFuZGxlciA9IGFzeW5jIChyZXF1ZXN0OiBSZXF1ZXN0KSA9PiAoeyBzdGF0dXNDb2RlOiA0MDQsIGJvZHk6IHsgZXJyb3I6IGBOb3QgZm91bmQ6ICR7cmVxdWVzdC5wYXRofWAgfSB9KSxcbik6IFByb21pc2U8QVBJR2F0ZXdheVByb3h5UmVzdWx0PiB7XG4gIGNvbnNvbGUubG9nKGBFeGVjdXRpbmcgJHtjb250ZXh0LmZ1bmN0aW9uTmFtZX0gdmVyc2lvbjogJHtwcm9jZXNzLmVudi5DT01NSVRfSEFTSH1gKTtcbiAgY29uc3QgcmVxdWVzdCA9IHBhcnNlUmVxdWVzdChldmVudCk7XG5cbiAgbGV0IHJlc3BvbnNlOiBSZXNwb25zZTtcbiAgdHJ5IHtcbiAgICBjb25zdCByb3V0ZSA9IG1hdGNoUm91dGUocm91dGVzLCByZXF1ZXN0LnBhdGgpO1xuICAgIGlmICghcm91dGUpIHtcbiAgICAgIC8vIENhdGNoLWFsbCAvIDQwNFxuICAgICAgcmVzcG9uc2UgPSBhd2FpdCBjYXRjaEFsbChyZXF1ZXN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaGFuZGxlckZ1bmN0aW9uID0gcm91dGVbcmVxdWVzdC5tZXRob2QgYXMga2V5b2YgUm91dGVdO1xuICAgICAgaWYgKCFoYW5kbGVyRnVuY3Rpb24pIHJldHVybiB7IHN0YXR1c0NvZGU6IDQwNSwgYm9keTogSlNPTi5zdHJpbmdpZnkoJ01ldGhvZCBub3QgYWxsb3dlZCcpIH07XG5cbiAgICAgIC8vIEhhbmRsZSB0aGUgcmVxdWVzdDpcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgaGFuZGxlckZ1bmN0aW9uKHJlcXVlc3QpO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoYCR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9XFxuJHsoZSBhcyBFcnJvcikuc3RhY2t9YCk7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEVycm9yIGhhbmRsaW5nXG4gICAgICByZXNwb25zZSA9IGF3YWl0IGVycm9ySGFuZGxlcihyZXF1ZXN0LCBlIGFzIEVycm9yKTtcbiAgICB9IGNhdGNoIChlZSkge1xuICAgICAgcmVzcG9uc2UgPSB7IHN0YXR1c0NvZGU6IDUwMCwgYm9keTogeyBlcnJvcjogYEludGVybmFsIHNlcnZlciBlcnJvcjogJHtyZXF1ZXN0LnBhdGh9IFtlcnJvckhhbmRsZXJdYCB9IH07XG4gICAgfVxuICB9XG5cbiAgLy8gQVBJIEdhdGV3YXkgUHJveHkgcmVzdWx0XG4gIGxldCBib2R5OiBzdHJpbmcgPSAnJztcbiAgaWYgKHR5cGVvZiByZXNwb25zZS5ib2R5ID09PSAnc3RyaW5nJykge1xuICAgIC8vIFVzZSB0aGUgYm9keSBhcy1pc1xuICAgIC8vIFBvdGVudGlhbGx5IGFkZCBhIHRleHQvcGxhaW4gY29udGVudCB0eXBlIGhlYWRlcjpcbiAgICByZXNwb25zZS5oZWFkZXJzID0geyAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW4nLCAuLi5yZXNwb25zZS5oZWFkZXJzIH07XG4gICAgYm9keSA9IHJlc3BvbnNlLmJvZHk7XG4gIH0gZWxzZSBpZiAocmVzcG9uc2UuYm9keSkge1xuICAgIC8vIFN0cmluZ2lmeSB0aGUgcmVzcG9uc2Ugb2JqZWN0XG4gICAgLy8gQVBJIEdhdGV3YXkgcmV0dXJucyBhcHBsaWNhdGlwbm8vanNvbiBieSBkZWZhdWx0XG4gICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmJvZHkpO1xuICB9XG4gIGNvbnN0IHJlc3VsdDogQVBJR2F0ZXdheVByb3h5UmVzdWx0ID0ge1xuICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1c0NvZGUsXG4gICAgYm9keSxcbiAgICBoZWFkZXJzOiByZXNwb25zZS5oZWFkZXJzLFxuICB9O1xuXG4gIC8vIENvb2tpZXMgKGlmIHNldClcbiAgY29uc3QgY29va2llSGVhZGVycyA9IGJ1aWxkQ29va2llKHJlc3BvbnNlLmNvb2tpZXMpO1xuICBpZiAoY29va2llSGVhZGVycykge1xuICAgIHJlc3VsdC5tdWx0aVZhbHVlSGVhZGVycyA9IHtcbiAgICAgIENvb2tpZTogY29va2llSGVhZGVycyxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
|