lambda-response-template
Version:
💬 A tiny utility for creating AWS Lambda response objects.
69 lines (68 loc) • 3.06 kB
JavaScript
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked;
};
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
var common_tags_1 = require("common-tags");
var util_1 = require("./util");
var callbackNoop = function (value) { return value; };
function make(self, statusCode, body, overrideLike) {
if (body === void 0) { body = ''; }
var overrides;
var headers;
var multiValueHeaders;
// Determine if third argument is content type, undefined, or options.
if (util_1.isString(overrideLike)) {
// Is a Content-Type header
overrides = {
headers: {
'content-type': overrideLike,
},
};
}
else if (overrideLike instanceof Object) {
// Is an options object.
overrides = overrideLike;
}
else {
// Is unknown, set as empty.
overrides = {};
}
var hasTransformer = ('transform' in self) || ('transform' in overrides);
if (!hasTransformer && !util_1.isString(body)) {
var message = common_tags_1.oneLine(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n Attempted to pass type '", "' as a body. The body must be a\n string."], ["\n Attempted to pass type '", "' as a body. The body must be a\n string."])), typeof body);
throw new Error(message);
}
if (Object.keys(self.headers).length || ('headers' in overrides)) {
headers = __assign({}, self.headers, overrides.headers || {});
}
if (Object.keys(self.multiValueHeaders).length || ('multiValueHeaders' in overrides)) {
multiValueHeaders = __assign({}, self.multiValueHeaders, overrides.multiValueHeaders || {});
}
var responseBody = (overrides.transform || self.transform || callbackNoop)(body);
if (!util_1.isString(responseBody)) {
var message = common_tags_1.oneLine(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n Transformation function returned type '", "'. Resulting\n body must be a string.\n "], ["\n Transformation function returned type '", "'. Resulting\n body must be a string.\n "])), typeof responseBody);
throw new Error(message);
}
return {
statusCode: statusCode,
body: responseBody,
headers: headers,
multiValueHeaders: multiValueHeaders,
isBase64Encoded: overrides.isBase64Encoded || self.isBase64Encoded,
};
}
exports.make = make;
var templateObject_1, templateObject_2;
;