@gemeentenijmegen/apigateway-http 0.0.24 → 0.0.25
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 +15 -3
- package/lib/V1/Response.d.ts +19 -0
- package/lib/V1/Response.js +85 -0
- package/lib/V2/Response.d.ts +1 -0
- package/lib/V2/Response.js +10 -10
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
# AWS Apigateway HTTP helpers
|
|
2
2
|
|
|
3
|
-
A package useful when developing serverless functions using AWS Lambda/Apigateway.
|
|
3
|
+
A package useful when developing serverless functions using AWS Lambda/Apigateway. Supports the REST and HTTP flavors
|
|
4
|
+
of the AWS API Gateway It contains:
|
|
4
5
|
|
|
5
|
-
##
|
|
6
|
+
## V1/Response
|
|
6
7
|
A response object with several methods for common http responses. Return these from your lambda handler:
|
|
7
8
|
|
|
9
|
+
|
|
10
|
+
For V1 (rest) responses:
|
|
11
|
+
```
|
|
12
|
+
import { Response } from '@gemeentenijmegen/apigateway-http/lib/V1/Response';
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
For V2 (http) responses:
|
|
8
16
|
```
|
|
9
17
|
import { Response } from '@gemeentenijmegen/apigateway-http/lib/V2/Response';
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Then use like this:
|
|
10
21
|
|
|
22
|
+
```
|
|
11
23
|
// Redirect to https://example.com
|
|
12
24
|
Response.redirect('https://example.com');
|
|
13
25
|
|
|
@@ -22,4 +34,4 @@ Response.html('<!doctype html><html><head><title>My page</title></head><body>The
|
|
|
22
34
|
|
|
23
35
|
// Return a json response from a javascript object
|
|
24
36
|
Response.html({ key: 'value' });
|
|
25
|
-
```
|
|
37
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { APIGatewayProxyResult } from 'aws-lambda';
|
|
2
|
+
/**
|
|
3
|
+
* Export under a different name for nice code completion
|
|
4
|
+
*/
|
|
5
|
+
export interface ApiGatewayV1Response extends APIGatewayProxyResult {
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Utility class for sending API gateway v2 responses
|
|
9
|
+
*/
|
|
10
|
+
export declare class Response {
|
|
11
|
+
static redirect(location: string, code?: number, cookies?: string[] | string): ApiGatewayV1Response;
|
|
12
|
+
static html(body: string, code?: number, cookies?: string[] | string): ApiGatewayV1Response;
|
|
13
|
+
static error(code?: number, message?: string): ApiGatewayV1Response;
|
|
14
|
+
static json(json: any, code?: number, cookies?: string[] | string): ApiGatewayV1Response;
|
|
15
|
+
static csv(csv: string, csvFileName: string, code?: number): ApiGatewayV1Response;
|
|
16
|
+
static ok(code?: number, message?: string): ApiGatewayV1Response;
|
|
17
|
+
private static cookieHeaderValue;
|
|
18
|
+
private static withCookieHeader;
|
|
19
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Response = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Utility class for sending API gateway v2 responses
|
|
6
|
+
*/
|
|
7
|
+
class Response {
|
|
8
|
+
static redirect(location, code = 302, cookies) {
|
|
9
|
+
const cookieHeaderValue = this.cookieHeaderValue(cookies);
|
|
10
|
+
const response = {
|
|
11
|
+
statusCode: code,
|
|
12
|
+
body: '',
|
|
13
|
+
headers: {
|
|
14
|
+
Location: location,
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
return Response.withCookieHeader(cookieHeaderValue, response);
|
|
18
|
+
}
|
|
19
|
+
static html(body, code = 200, cookies) {
|
|
20
|
+
const cookieHeaderValue = this.cookieHeaderValue(cookies);
|
|
21
|
+
return Response.withCookieHeader(cookieHeaderValue, {
|
|
22
|
+
statusCode: code,
|
|
23
|
+
body,
|
|
24
|
+
headers: {
|
|
25
|
+
'Content-type': 'text/html',
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
static error(code = 500, message) {
|
|
30
|
+
if (message) {
|
|
31
|
+
return this.json({ message: message }, code);
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
statusCode: code,
|
|
35
|
+
body: message ?? 'unknown error',
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
static json(json, code = 200, cookies) {
|
|
39
|
+
const cookieHeaderValue = this.cookieHeaderValue(cookies);
|
|
40
|
+
const body = JSON.stringify(json);
|
|
41
|
+
return Response.withCookieHeader(cookieHeaderValue, {
|
|
42
|
+
statusCode: code,
|
|
43
|
+
body,
|
|
44
|
+
headers: {
|
|
45
|
+
'Content-type': 'application/json',
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
static csv(csv, csvFileName, code = 200) {
|
|
50
|
+
return {
|
|
51
|
+
statusCode: code,
|
|
52
|
+
body: csv,
|
|
53
|
+
headers: {
|
|
54
|
+
'Content-type': 'text/csv',
|
|
55
|
+
'Content-Disposition': `attachment;filename=${csvFileName}`,
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
static ok(code = 200, message) {
|
|
60
|
+
if (code < 200 || code >= 300) {
|
|
61
|
+
throw new Error('Only 2xx statuscodes are allowed');
|
|
62
|
+
}
|
|
63
|
+
if (message) {
|
|
64
|
+
return this.json({ message: message }, code);
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
statusCode: code,
|
|
68
|
+
body: '',
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
static cookieHeaderValue(cookies) {
|
|
72
|
+
if (cookies != undefined && !Array.isArray(cookies)) {
|
|
73
|
+
cookies = [cookies];
|
|
74
|
+
}
|
|
75
|
+
return cookies ? cookies?.join('; ') : null;
|
|
76
|
+
}
|
|
77
|
+
static withCookieHeader(cookieheader, response) {
|
|
78
|
+
if (cookieheader) {
|
|
79
|
+
response.headers.Cookie = cookieheader;
|
|
80
|
+
}
|
|
81
|
+
return response;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.Response = Response;
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVjEvUmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUE7O0dBRUc7QUFDSCxNQUFhLFFBQVE7SUFFbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFnQixFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBMkI7UUFDdkUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsTUFBTSxRQUFRLEdBQXlCO1lBQ3JDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFO2dCQUNQLFFBQVEsRUFBRSxRQUFRO2FBQ25CO1NBQ0YsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQVksRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLE9BQTJCO1FBQy9ELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELE9BQU8sUUFBUSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFO1lBQ2xELFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUk7WUFDSixPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLFdBQVc7YUFDNUI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLE9BQWdCO1FBRXZDLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzlDO1FBRUQsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRSxPQUFPLElBQUksZUFBZTtTQUNqQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBUyxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBMkI7UUFDNUQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRTtZQUNsRCxVQUFVLEVBQUUsSUFBSTtZQUNoQixJQUFJO1lBQ0osT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxrQkFBa0I7YUFDbkM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFXLEVBQUUsV0FBbUIsRUFBRSxJQUFJLEdBQUcsR0FBRztRQUNyRCxPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUFFLEdBQUc7WUFDVCxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLFVBQVU7Z0JBQzFCLHFCQUFxQixFQUFFLHVCQUF1QixXQUFXLEVBQUU7YUFDNUQ7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxPQUFnQjtRQUNwQyxJQUFJLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7U0FDckQ7UUFFRCxJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUM5QztRQUVELE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSTtZQUNoQixJQUFJLEVBQUUsRUFBRTtTQUNULENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQTJCO1FBQzFELElBQUksT0FBTyxJQUFJLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbkQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDckI7UUFDRCxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzlDLENBQUM7SUFHTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsWUFBMkIsRUFBRSxRQUE4QjtRQUN6RixJQUFJLFlBQVksRUFBRTtZQUNoQixRQUFRLENBQUMsT0FBUSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUM7U0FDekM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBRUY7QUExRkQsNEJBMEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBJR2F0ZXdheVByb3h5UmVzdWx0IH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5cbi8qKlxuICogRXhwb3J0IHVuZGVyIGEgZGlmZmVyZW50IG5hbWUgZm9yIG5pY2UgY29kZSBjb21wbGV0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpR2F0ZXdheVYxUmVzcG9uc2UgZXh0ZW5kcyBBUElHYXRld2F5UHJveHlSZXN1bHQge1xufVxuXG4vKipcbiAqIFV0aWxpdHkgY2xhc3MgZm9yIHNlbmRpbmcgQVBJIGdhdGV3YXkgdjIgcmVzcG9uc2VzXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNwb25zZSB7XG5cbiAgc3RhdGljIHJlZGlyZWN0KGxvY2F0aW9uOiBzdHJpbmcsIGNvZGUgPSAzMDIsIGNvb2tpZXM/OiBzdHJpbmdbXSB8IHN0cmluZyk6IEFwaUdhdGV3YXlWMVJlc3BvbnNlIHtcbiAgICBjb25zdCBjb29raWVIZWFkZXJWYWx1ZSA9IHRoaXMuY29va2llSGVhZGVyVmFsdWUoY29va2llcyk7XG4gICAgY29uc3QgcmVzcG9uc2U6IEFwaUdhdGV3YXlWMVJlc3BvbnNlID0ge1xuICAgICAgc3RhdHVzQ29kZTogY29kZSxcbiAgICAgIGJvZHk6ICcnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBMb2NhdGlvbjogbG9jYXRpb24sXG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIFJlc3BvbnNlLndpdGhDb29raWVIZWFkZXIoY29va2llSGVhZGVyVmFsdWUsIHJlc3BvbnNlKTtcbiAgfVxuXG4gIHN0YXRpYyBodG1sKGJvZHk6IHN0cmluZywgY29kZSA9IDIwMCwgY29va2llcz86IHN0cmluZ1tdIHwgc3RyaW5nKTogQXBpR2F0ZXdheVYxUmVzcG9uc2Uge1xuICAgIGNvbnN0IGNvb2tpZUhlYWRlclZhbHVlID0gdGhpcy5jb29raWVIZWFkZXJWYWx1ZShjb29raWVzKTtcbiAgICByZXR1cm4gUmVzcG9uc2Uud2l0aENvb2tpZUhlYWRlcihjb29raWVIZWFkZXJWYWx1ZSwge1xuICAgICAgc3RhdHVzQ29kZTogY29kZSxcbiAgICAgIGJvZHksXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LXR5cGUnOiAndGV4dC9odG1sJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZXJyb3IoY29kZSA9IDUwMCwgbWVzc2FnZT86IHN0cmluZyk6IEFwaUdhdGV3YXlWMVJlc3BvbnNlIHtcblxuICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICByZXR1cm4gdGhpcy5qc29uKHsgbWVzc2FnZTogbWVzc2FnZSB9LCBjb2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzQ29kZTogY29kZSxcbiAgICAgIGJvZHk6IG1lc3NhZ2UgPz8gJ3Vua25vd24gZXJyb3InLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMganNvbihqc29uOiBhbnksIGNvZGUgPSAyMDAsIGNvb2tpZXM/OiBzdHJpbmdbXSB8IHN0cmluZyk6IEFwaUdhdGV3YXlWMVJlc3BvbnNlIHtcbiAgICBjb25zdCBjb29raWVIZWFkZXJWYWx1ZSA9IHRoaXMuY29va2llSGVhZGVyVmFsdWUoY29va2llcyk7XG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KGpzb24pO1xuICAgIHJldHVybiBSZXNwb25zZS53aXRoQ29va2llSGVhZGVyKGNvb2tpZUhlYWRlclZhbHVlLCB7XG4gICAgICBzdGF0dXNDb2RlOiBjb2RlLFxuICAgICAgYm9keSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgY3N2KGNzdjogc3RyaW5nLCBjc3ZGaWxlTmFtZTogc3RyaW5nLCBjb2RlID0gMjAwKTogQXBpR2F0ZXdheVYxUmVzcG9uc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXNDb2RlOiBjb2RlLFxuICAgICAgYm9keTogY3N2LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC10eXBlJzogJ3RleHQvY3N2JyxcbiAgICAgICAgJ0NvbnRlbnQtRGlzcG9zaXRpb24nOiBgYXR0YWNobWVudDtmaWxlbmFtZT0ke2NzdkZpbGVOYW1lfWAsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgb2soY29kZSA9IDIwMCwgbWVzc2FnZT86IHN0cmluZyk6IEFwaUdhdGV3YXlWMVJlc3BvbnNlIHtcbiAgICBpZiAoY29kZSA8IDIwMCB8fCBjb2RlID49IDMwMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IDJ4eCBzdGF0dXNjb2RlcyBhcmUgYWxsb3dlZCcpO1xuICAgIH1cblxuICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICByZXR1cm4gdGhpcy5qc29uKHsgbWVzc2FnZTogbWVzc2FnZSB9LCBjb2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzQ29kZTogY29kZSxcbiAgICAgIGJvZHk6ICcnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb29raWVIZWFkZXJWYWx1ZShjb29raWVzPzogc3RyaW5nW10gfCBzdHJpbmcpIHtcbiAgICBpZiAoY29va2llcyAhPSB1bmRlZmluZWQgJiYgIUFycmF5LmlzQXJyYXkoY29va2llcykpIHtcbiAgICAgIGNvb2tpZXMgPSBbY29va2llc107XG4gICAgfVxuICAgIHJldHVybiBjb29raWVzID8gY29va2llcz8uam9pbignOyAnKSA6IG51bGw7XG4gIH1cblxuXG4gIHByaXZhdGUgc3RhdGljIHdpdGhDb29raWVIZWFkZXIoY29va2llaGVhZGVyOiBzdHJpbmcgfCBudWxsLCByZXNwb25zZTogQXBpR2F0ZXdheVYxUmVzcG9uc2UpIHtcbiAgICBpZiAoY29va2llaGVhZGVyKSB7XG4gICAgICByZXNwb25zZS5oZWFkZXJzIS5Db29raWUgPSBjb29raWVoZWFkZXI7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG59XG4iXX0=
|
package/lib/V2/Response.d.ts
CHANGED
|
@@ -14,4 +14,5 @@ export declare class Response {
|
|
|
14
14
|
static json(json: any, code?: number, cookies?: string[] | string): ApiGatewayV2Response;
|
|
15
15
|
static csv(csv: string, csvFileName: string, code?: number): ApiGatewayV2Response;
|
|
16
16
|
static ok(code?: number, message?: string): ApiGatewayV2Response;
|
|
17
|
+
private static cookieArray;
|
|
17
18
|
}
|
package/lib/V2/Response.js
CHANGED
|
@@ -6,9 +6,7 @@ exports.Response = void 0;
|
|
|
6
6
|
*/
|
|
7
7
|
class Response {
|
|
8
8
|
static redirect(location, code = 302, cookies) {
|
|
9
|
-
|
|
10
|
-
cookies = [cookies];
|
|
11
|
-
}
|
|
9
|
+
cookies = Response.cookieArray(cookies);
|
|
12
10
|
return {
|
|
13
11
|
statusCode: code,
|
|
14
12
|
body: '',
|
|
@@ -19,9 +17,7 @@ class Response {
|
|
|
19
17
|
};
|
|
20
18
|
}
|
|
21
19
|
static html(body, code = 200, cookies) {
|
|
22
|
-
|
|
23
|
-
cookies = [cookies];
|
|
24
|
-
}
|
|
20
|
+
cookies = Response.cookieArray(cookies);
|
|
25
21
|
return {
|
|
26
22
|
statusCode: code,
|
|
27
23
|
body,
|
|
@@ -40,9 +36,7 @@ class Response {
|
|
|
40
36
|
};
|
|
41
37
|
}
|
|
42
38
|
static json(json, code = 200, cookies) {
|
|
43
|
-
|
|
44
|
-
cookies = [cookies];
|
|
45
|
-
}
|
|
39
|
+
cookies = Response.cookieArray(cookies);
|
|
46
40
|
const body = JSON.stringify(json);
|
|
47
41
|
return {
|
|
48
42
|
statusCode: code,
|
|
@@ -72,6 +66,12 @@ class Response {
|
|
|
72
66
|
}
|
|
73
67
|
return { statusCode: code };
|
|
74
68
|
}
|
|
69
|
+
static cookieArray(cookies) {
|
|
70
|
+
if (cookies != undefined && !Array.isArray(cookies)) {
|
|
71
|
+
cookies = [cookies];
|
|
72
|
+
}
|
|
73
|
+
return cookies;
|
|
74
|
+
}
|
|
75
75
|
}
|
|
76
76
|
exports.Response = Response;
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVjIvUmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUE7O0dBRUc7QUFDSCxNQUFhLFFBQVE7SUFFbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFnQixFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBMkI7UUFDdkUsT0FBTyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFO2dCQUNQLFFBQVEsRUFBRSxRQUFRO2FBQ25CO1lBQ0QsT0FBTztTQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFZLEVBQUUsSUFBSSxHQUFHLEdBQUcsRUFBRSxPQUEyQjtRQUMvRCxPQUFPLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSTtZQUNKLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsV0FBVzthQUM1QjtZQUNELE9BQU87U0FDUixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxPQUFnQjtRQUV2QyxJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUM5QztRQUVELE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBUyxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBMkI7UUFDNUQsT0FBTyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSTtZQUNKLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsa0JBQWtCO2FBQ25DO1lBQ0QsT0FBTztTQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFXLEVBQUUsV0FBbUIsRUFBRSxJQUFJLEdBQUcsR0FBRztRQUNyRCxPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSSxFQUFFLEdBQUc7WUFDVCxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLFVBQVU7Z0JBQzFCLHFCQUFxQixFQUFFLHVCQUF1QixXQUFXLEVBQUU7YUFDNUQ7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxPQUFnQjtRQUNwQyxJQUFJLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7U0FDckQ7UUFFRCxJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUM5QztRQUVELE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBc0M7UUFDL0QsSUFBSSxPQUFPLElBQUksU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQS9FRCw0QkErRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElHYXRld2F5UHJveHlTdHJ1Y3R1cmVkUmVzdWx0VjIgfSBmcm9tICdhd3MtbGFtYmRhJztcblxuLyoqXG4gKiBFeHBvcnQgdW5kZXIgYSBkaWZmZXJlbnQgbmFtZSBmb3IgbmljZSBjb2RlIGNvbXBsZXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlHYXRld2F5VjJSZXNwb25zZSBleHRlbmRzIEFQSUdhdGV3YXlQcm94eVN0cnVjdHVyZWRSZXN1bHRWMiB7XG59XG5cbi8qKlxuICogVXRpbGl0eSBjbGFzcyBmb3Igc2VuZGluZyBBUEkgZ2F0ZXdheSB2MiByZXNwb25zZXNcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc3BvbnNlIHtcblxuICBzdGF0aWMgcmVkaXJlY3QobG9jYXRpb246IHN0cmluZywgY29kZSA9IDMwMiwgY29va2llcz86IHN0cmluZ1tdIHwgc3RyaW5nKTogQXBpR2F0ZXdheVYyUmVzcG9uc2Uge1xuICAgIGNvb2tpZXMgPSBSZXNwb25zZS5jb29raWVBcnJheShjb29raWVzKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzQ29kZTogY29kZSxcbiAgICAgIGJvZHk6ICcnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBMb2NhdGlvbjogbG9jYXRpb24sXG4gICAgICB9LFxuICAgICAgY29va2llcyxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGh0bWwoYm9keTogc3RyaW5nLCBjb2RlID0gMjAwLCBjb29raWVzPzogc3RyaW5nW10gfCBzdHJpbmcpOiBBcGlHYXRld2F5VjJSZXNwb25zZSB7XG4gICAgY29va2llcyA9IFJlc3BvbnNlLmNvb2tpZUFycmF5KGNvb2tpZXMpO1xuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXNDb2RlOiBjb2RlLFxuICAgICAgYm9keSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtdHlwZSc6ICd0ZXh0L2h0bWwnLFxuICAgICAgfSxcbiAgICAgIGNvb2tpZXMsXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBlcnJvcihjb2RlID0gNTAwLCBtZXNzYWdlPzogc3RyaW5nKTogQXBpR2F0ZXdheVYyUmVzcG9uc2Uge1xuXG4gICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmpzb24oeyBtZXNzYWdlOiBtZXNzYWdlIH0sIGNvZGUpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXNDb2RlOiBjb2RlLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMganNvbihqc29uOiBhbnksIGNvZGUgPSAyMDAsIGNvb2tpZXM/OiBzdHJpbmdbXSB8IHN0cmluZyk6IEFwaUdhdGV3YXlWMlJlc3BvbnNlIHtcbiAgICBjb29raWVzID0gUmVzcG9uc2UuY29va2llQXJyYXkoY29va2llcyk7XG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KGpzb24pO1xuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXNDb2RlOiBjb2RlLFxuICAgICAgYm9keSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgICBjb29raWVzLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgY3N2KGNzdjogc3RyaW5nLCBjc3ZGaWxlTmFtZTogc3RyaW5nLCBjb2RlID0gMjAwKTogQXBpR2F0ZXdheVYyUmVzcG9uc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXNDb2RlOiBjb2RlLFxuICAgICAgYm9keTogY3N2LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC10eXBlJzogJ3RleHQvY3N2JyxcbiAgICAgICAgJ0NvbnRlbnQtRGlzcG9zaXRpb24nOiBgYXR0YWNobWVudDtmaWxlbmFtZT0ke2NzdkZpbGVOYW1lfWAsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgb2soY29kZSA9IDIwMCwgbWVzc2FnZT86IHN0cmluZyk6IEFwaUdhdGV3YXlWMlJlc3BvbnNlIHtcbiAgICBpZiAoY29kZSA8IDIwMCB8fCBjb2RlID49IDMwMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IDJ4eCBzdGF0dXNjb2RlcyBhcmUgYWxsb3dlZCcpO1xuICAgIH1cblxuICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICByZXR1cm4gdGhpcy5qc29uKHsgbWVzc2FnZTogbWVzc2FnZSB9LCBjb2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGF0dXNDb2RlOiBjb2RlIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb29raWVBcnJheShjb29raWVzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChjb29raWVzICE9IHVuZGVmaW5lZCAmJiAhQXJyYXkuaXNBcnJheShjb29raWVzKSkge1xuICAgICAgY29va2llcyA9IFtjb29raWVzXTtcbiAgICB9XG4gICAgcmV0dXJuIGNvb2tpZXM7XG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"projen": "npx projen"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@gemeentenijmegen/projen-project-type": "^1.10.
|
|
28
|
+
"@gemeentenijmegen/projen-project-type": "^1.10.3",
|
|
29
29
|
"@stylistic/eslint-plugin": "^2",
|
|
30
30
|
"@types/jest": "^29.5.14",
|
|
31
31
|
"@types/node": "^18",
|
|
@@ -34,23 +34,23 @@
|
|
|
34
34
|
"commit-and-tag-version": "^12",
|
|
35
35
|
"constructs": "^10.0.0",
|
|
36
36
|
"eslint": "^9",
|
|
37
|
-
"eslint-import-resolver-typescript": "^3.10.
|
|
37
|
+
"eslint-import-resolver-typescript": "^3.10.1",
|
|
38
38
|
"eslint-plugin-import": "^2.31.0",
|
|
39
39
|
"jest": "^29.7.0",
|
|
40
40
|
"jest-junit": "^16",
|
|
41
|
-
"projen": "^0.91.
|
|
42
|
-
"ts-jest": "^29.3.
|
|
41
|
+
"projen": "^0.91.27",
|
|
42
|
+
"ts-jest": "^29.3.2",
|
|
43
43
|
"typescript": "^4.9.5"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@types/aws-lambda": "^8.10.
|
|
46
|
+
"@types/aws-lambda": "^8.10.149"
|
|
47
47
|
},
|
|
48
48
|
"main": "lib/index.js",
|
|
49
49
|
"license": "EUPL-1.2",
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"access": "public"
|
|
52
52
|
},
|
|
53
|
-
"version": "0.0.
|
|
53
|
+
"version": "0.0.25",
|
|
54
54
|
"jest": {
|
|
55
55
|
"coverageProvider": "v8",
|
|
56
56
|
"testMatch": [
|