UNPKG

7.78 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.redirect = exports.error = exports.notAuthorized = exports.notFound = exports.custom = exports.invalid = exports.success = void 0;
4const common_1 = require("../../common");
5const CORS_HEADERS = {
6 "Access-Control-Allow-Origin": "*",
7 "Access-Control-Allow-Credentials": true,
8 "Access-Control-Allow-Headers": "Test-Request",
9};
10const metrics = new common_1.Metrics("API Gateway");
11const defaultSuccess = {
12 cors: true,
13 statusCode: 200,
14};
15function success({ body, json = true, cors = true, statusCode = 200, headers, } = defaultSuccess) {
16 const response = getResponseFromParameters({ body, json, cors, statusCode, headers });
17 metrics.success(response);
18 return response;
19}
20exports.success = success;
21const defaultInvalid = {
22 cors: true,
23 statusCode: 400,
24};
25function invalid({ body, json = true, cors = true, statusCode = 400, headers, } = defaultInvalid) {
26 const response = getResponseFromParameters({ body, json, cors, statusCode, headers });
27 metrics.invalid(response);
28 return response;
29}
30exports.invalid = invalid;
31function custom({ body, json = true, cors = true, statusCode, headers }) {
32 const response = getResponseFromParameters({ body, json, cors, statusCode, headers });
33 metrics.custom(response);
34 return response;
35}
36exports.custom = custom;
37const defaultNotFound = {
38 cors: true,
39 statusCode: 404,
40};
41function notFound({ body, json = true, cors = true, statusCode = 404, headers, } = defaultNotFound) {
42 const response = getResponseFromParameters({ body, json, cors, statusCode, headers });
43 metrics.invalid(response);
44 return response;
45}
46exports.notFound = notFound;
47const defaultNotAuthorized = {
48 cors: true,
49 statusCode: 401,
50};
51function notAuthorized({ body, json = true, cors = true, statusCode = 401, headers, } = defaultNotAuthorized) {
52 const response = getResponseFromParameters({ body, json, cors, statusCode, headers });
53 metrics.invalid(response);
54 return response;
55}
56exports.notAuthorized = notAuthorized;
57const defaultError = {
58 cors: true,
59 statusCode: 500,
60};
61function error({ body, json = true, cors = true, statusCode = 500, headers, err, } = defaultError) {
62 if (err) {
63 common_1.logger.debug("Encountered error while processing request", err);
64 }
65 const response = getResponseFromParameters({ body, json, cors, statusCode, headers });
66 metrics.error(response);
67 return response;
68}
69exports.error = error;
70function redirect({ url, cors = true, statusCode = 302, headers }) {
71 const response = {
72 statusCode,
73 headers: cors ? Object.assign(Object.assign({ Location: url }, headers), CORS_HEADERS) : Object.assign({ Location: url }, headers),
74 };
75 metrics.redirect(response);
76 return response;
77}
78exports.redirect = redirect;
79function getResponseFromParameters({ body, json, cors, statusCode, headers }) {
80 const response = {
81 statusCode,
82 headers: cors ? Object.assign(Object.assign({}, headers), CORS_HEADERS) : headers,
83 };
84 if (body) {
85 if (json) {
86 response["body"] = JSON.stringify(body);
87 response.headers["Content-Type"] = "application/json";
88 }
89 else {
90 response["body"] = body;
91 }
92 }
93 return response;
94}
95//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9zaGFyZWQvcmVzcG9uc2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUErQztBQUUvQyxNQUFNLFlBQVksR0FBRztJQUNuQiw2QkFBNkIsRUFBRSxHQUFHO0lBQ2xDLGtDQUFrQyxFQUFFLElBQUk7SUFDeEMsOEJBQThCLEVBQUUsY0FBYztDQUMvQyxDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUcsSUFBSSxnQkFBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRTNDLE1BQU0sY0FBYyxHQUF1QjtJQUN6QyxJQUFJLEVBQUUsSUFBSTtJQUNWLFVBQVUsRUFBRSxHQUFHO0NBQ2hCLENBQUM7QUFFRixTQUFnQixPQUFPLENBQUMsRUFDdEIsSUFBSSxFQUNKLElBQUksR0FBRyxJQUFJLEVBQ1gsSUFBSSxHQUFHLElBQUksRUFDWCxVQUFVLEdBQUcsR0FBRyxFQUNoQixPQUFPLE1BQ2UsY0FBYztJQUNwQyxNQUFNLFFBQVEsR0FBRyx5QkFBeUIsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUIsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQVZELDBCQVVDO0FBRUQsTUFBTSxjQUFjLEdBQXVCO0lBQ3pDLElBQUksRUFBRSxJQUFJO0lBQ1YsVUFBVSxFQUFFLEdBQUc7Q0FDaEIsQ0FBQztBQUVGLFNBQWdCLE9BQU8sQ0FBQyxFQUN0QixJQUFJLEVBQ0osSUFBSSxHQUFHLElBQUksRUFDWCxJQUFJLEdBQUcsSUFBSSxFQUNYLFVBQVUsR0FBRyxHQUFHLEVBQ2hCLE9BQU8sTUFDZSxjQUFjO0lBQ3BDLE1BQU0sUUFBUSxHQUFHLHlCQUF5QixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUks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
\No newline at end of file