@gemeentenijmegen/apigateway-http 0.0.2 → 0.0.3

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 CHANGED
@@ -6,7 +6,7 @@ A package useful when developing serverless functions using AWS Lambda/Apigatewa
6
6
  A response object with several methods for common http responses. Return these from your lambda handler:
7
7
 
8
8
  ```
9
- import { Response } from @gemeentenijmegen/apigateway-http/lib/V2/Response;
9
+ import { Response } from '@gemeentenijmegen/apigateway-http/lib/V2/Response';
10
10
 
11
11
  // Redirect to https://example.com
12
12
  Response.redirect('https://example.com');
@@ -19,4 +19,7 @@ Response.error(403);
19
19
 
20
20
  // Return a html page
21
21
  Response.html('<!doctype html><html><head><title>My page</title></head><body>The html body</body></html>');
22
+
23
+ // Return a json response from a javascript object
24
+ Response.html({ key: 'value' });
22
25
  ```
@@ -11,6 +11,6 @@ export declare class Response {
11
11
  static redirect(location: string, code?: number, cookies?: string[] | string): ApiGatewayV2Response;
12
12
  static html(body: string, code?: number, cookies?: string[] | string): ApiGatewayV2Response;
13
13
  static error(code?: number, message?: string): ApiGatewayV2Response;
14
- static json(json: any, code?: number): ApiGatewayV2Response;
14
+ static json(json: any, code?: number, cookies?: string[] | string): ApiGatewayV2Response;
15
15
  static ok(code?: number, message?: string): ApiGatewayV2Response;
16
16
  }
@@ -39,7 +39,10 @@ class Response {
39
39
  statusCode: code,
40
40
  };
41
41
  }
42
- static json(json, code = 200) {
42
+ static json(json, code = 200, cookies) {
43
+ if (cookies != undefined && !Array.isArray(cookies)) {
44
+ cookies = [cookies];
45
+ }
43
46
  const body = JSON.stringify(json);
44
47
  return {
45
48
  statusCode: code,
@@ -47,6 +50,7 @@ class Response {
47
50
  headers: {
48
51
  'Content-type': 'application/json',
49
52
  },
53
+ cookies,
50
54
  };
51
55
  }
52
56
  static ok(code = 200, message) {
@@ -60,4 +64,4 @@ class Response {
60
64
  }
61
65
  }
62
66
  exports.Response = Response;
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVjIvUmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUE7O0dBRUc7QUFDSCxNQUFhLFFBQVE7SUFFbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFnQixFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBMkI7UUFDdkUsSUFBSSxPQUFPLElBQUksU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyQjtRQUNELE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSTtZQUNoQixJQUFJLEVBQUUsRUFBRTtZQUNSLE9BQU8sRUFBRTtnQkFDUCxRQUFRLEVBQUUsUUFBUTthQUNuQjtZQUNELE9BQU87U0FDUixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBWSxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBMkI7UUFDL0QsSUFBSSxPQUFPLElBQUksU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyQjtRQUNELE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSTtZQUNoQixJQUFJO1lBQ0osT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxXQUFXO2FBQzVCO1lBQ0QsT0FBTztTQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLE9BQWdCO1FBRXZDLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzlDO1FBRUQsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFTLEVBQUUsSUFBSSxHQUFHLEdBQUc7UUFDL0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSTtZQUNKLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsa0JBQWtCO2FBQ25DO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBZ0I7UUFDcEMsSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1NBQ3JEO1FBRUQsSUFBSSxPQUFPLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDOUM7UUFFRCxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FFRjtBQWhFRCw0QkFnRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElHYXRld2F5UHJveHlTdHJ1Y3R1cmVkUmVzdWx0VjIgfSBmcm9tICdhd3MtbGFtYmRhJztcblxuLyoqXG4gKiBFeHBvcnQgdW5kZXIgYSBkaWZmZXJlbnQgbmFtZSBmb3IgbmljZSBjb2RlIGNvbXBsZXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlHYXRld2F5VjJSZXNwb25zZSBleHRlbmRzIEFQSUdhdGV3YXlQcm94eVN0cnVjdHVyZWRSZXN1bHRWMiB7XG59XG5cbi8qKlxuICogVXRpbGl0eSBjbGFzcyBmb3Igc2VuZGluZyBBUEkgZ2F0ZXdheSB2MiByZXNwb25zZXNcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc3BvbnNlIHtcblxuICBzdGF0aWMgcmVkaXJlY3QobG9jYXRpb246IHN0cmluZywgY29kZSA9IDMwMiwgY29va2llcz86IHN0cmluZ1tdIHwgc3RyaW5nKTogQXBpR2F0ZXdheVYyUmVzcG9uc2Uge1xuICAgIGlmIChjb29raWVzICE9IHVuZGVmaW5lZCAmJiAhQXJyYXkuaXNBcnJheShjb29raWVzKSkge1xuICAgICAgY29va2llcyA9IFtjb29raWVzXTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGU6IGNvZGUsXG4gICAgICBib2R5OiAnJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgTG9jYXRpb246IGxvY2F0aW9uLFxuICAgICAgfSxcbiAgICAgIGNvb2tpZXMsXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBodG1sKGJvZHk6IHN0cmluZywgY29kZSA9IDIwMCwgY29va2llcz86IHN0cmluZ1tdIHwgc3RyaW5nKTogQXBpR2F0ZXdheVYyUmVzcG9uc2Uge1xuICAgIGlmIChjb29raWVzICE9IHVuZGVmaW5lZCAmJiAhQXJyYXkuaXNBcnJheShjb29raWVzKSkge1xuICAgICAgY29va2llcyA9IFtjb29raWVzXTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGU6IGNvZGUsXG4gICAgICBib2R5LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC10eXBlJzogJ3RleHQvaHRtbCcsXG4gICAgICB9LFxuICAgICAgY29va2llcyxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGVycm9yKGNvZGUgPSA1MDAsIG1lc3NhZ2U/OiBzdHJpbmcpOiBBcGlHYXRld2F5VjJSZXNwb25zZSB7XG5cbiAgICBpZiAobWVzc2FnZSkge1xuICAgICAgcmV0dXJuIHRoaXMuanNvbih7IG1lc3NhZ2U6IG1lc3NhZ2UgfSwgY29kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGU6IGNvZGUsXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBqc29uKGpzb246IGFueSwgY29kZSA9IDIwMCk6IEFwaUdhdGV3YXlWMlJlc3BvbnNlIHtcbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGU6IGNvZGUsXG4gICAgICBib2R5LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIG9rKGNvZGUgPSAyMDAsIG1lc3NhZ2U/OiBzdHJpbmcpOiBBcGlHYXRld2F5VjJSZXNwb25zZSB7XG4gICAgaWYgKGNvZGUgPCAyMDAgfHwgY29kZSA+PSAzMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignT25seSAyeHggc3RhdHVzY29kZXMgYXJlIGFsbG93ZWQnKTtcbiAgICB9XG5cbiAgICBpZiAobWVzc2FnZSkge1xuICAgICAgcmV0dXJuIHRoaXMuanNvbih7IG1lc3NhZ2U6IG1lc3NhZ2UgfSwgY29kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc3RhdHVzQ29kZTogY29kZSB9O1xuICB9XG5cbn0iXX0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVjIvUmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUE7O0dBRUc7QUFDSCxNQUFhLFFBQVE7SUFFbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFnQixFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBMkI7UUFDdkUsSUFBSSxPQUFPLElBQUksU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyQjtRQUNELE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSTtZQUNoQixJQUFJLEVBQUUsRUFBRTtZQUNSLE9BQU8sRUFBRTtnQkFDUCxRQUFRLEVBQUUsUUFBUTthQUNuQjtZQUNELE9BQU87U0FDUixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBWSxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBMkI7UUFDL0QsSUFBSSxPQUFPLElBQUksU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyQjtRQUNELE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSTtZQUNoQixJQUFJO1lBQ0osT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxXQUFXO2FBQzVCO1lBQ0QsT0FBTztTQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLE9BQWdCO1FBRXZDLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzlDO1FBRUQsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFTLEVBQUUsSUFBSSxHQUFHLEdBQUcsRUFBRSxPQUEyQjtRQUM1RCxJQUFJLE9BQU8sSUFBSSxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25ELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3JCO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSTtZQUNKLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsa0JBQWtCO2FBQ25DO1lBQ0QsT0FBTztTQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLE9BQWdCO1FBQ3BDLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztTQUNyRDtRQUVELElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzlDO1FBRUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0NBRUY7QUFwRUQsNEJBb0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBJR2F0ZXdheVByb3h5U3RydWN0dXJlZFJlc3VsdFYyIH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5cbi8qKlxuICogRXhwb3J0IHVuZGVyIGEgZGlmZmVyZW50IG5hbWUgZm9yIG5pY2UgY29kZSBjb21wbGV0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpR2F0ZXdheVYyUmVzcG9uc2UgZXh0ZW5kcyBBUElHYXRld2F5UHJveHlTdHJ1Y3R1cmVkUmVzdWx0VjIge1xufVxuXG4vKipcbiAqIFV0aWxpdHkgY2xhc3MgZm9yIHNlbmRpbmcgQVBJIGdhdGV3YXkgdjIgcmVzcG9uc2VzXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNwb25zZSB7XG5cbiAgc3RhdGljIHJlZGlyZWN0KGxvY2F0aW9uOiBzdHJpbmcsIGNvZGUgPSAzMDIsIGNvb2tpZXM/OiBzdHJpbmdbXSB8IHN0cmluZyk6IEFwaUdhdGV3YXlWMlJlc3BvbnNlIHtcbiAgICBpZiAoY29va2llcyAhPSB1bmRlZmluZWQgJiYgIUFycmF5LmlzQXJyYXkoY29va2llcykpIHtcbiAgICAgIGNvb2tpZXMgPSBbY29va2llc107XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXNDb2RlOiBjb2RlLFxuICAgICAgYm9keTogJycsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIExvY2F0aW9uOiBsb2NhdGlvbixcbiAgICAgIH0sXG4gICAgICBjb29raWVzLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgaHRtbChib2R5OiBzdHJpbmcsIGNvZGUgPSAyMDAsIGNvb2tpZXM/OiBzdHJpbmdbXSB8IHN0cmluZyk6IEFwaUdhdGV3YXlWMlJlc3BvbnNlIHtcbiAgICBpZiAoY29va2llcyAhPSB1bmRlZmluZWQgJiYgIUFycmF5LmlzQXJyYXkoY29va2llcykpIHtcbiAgICAgIGNvb2tpZXMgPSBbY29va2llc107XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXNDb2RlOiBjb2RlLFxuICAgICAgYm9keSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtdHlwZSc6ICd0ZXh0L2h0bWwnLFxuICAgICAgfSxcbiAgICAgIGNvb2tpZXMsXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBlcnJvcihjb2RlID0gNTAwLCBtZXNzYWdlPzogc3RyaW5nKTogQXBpR2F0ZXdheVYyUmVzcG9uc2Uge1xuXG4gICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmpzb24oeyBtZXNzYWdlOiBtZXNzYWdlIH0sIGNvZGUpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzdGF0dXNDb2RlOiBjb2RlLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMganNvbihqc29uOiBhbnksIGNvZGUgPSAyMDAsIGNvb2tpZXM/OiBzdHJpbmdbXSB8IHN0cmluZyk6IEFwaUdhdGV3YXlWMlJlc3BvbnNlIHtcbiAgICBpZiAoY29va2llcyAhPSB1bmRlZmluZWQgJiYgIUFycmF5LmlzQXJyYXkoY29va2llcykpIHtcbiAgICAgIGNvb2tpZXMgPSBbY29va2llc107XG4gICAgfVxuICAgIGNvbnN0IGJvZHkgPSBKU09OLnN0cmluZ2lmeShqc29uKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzQ29kZTogY29kZSxcbiAgICAgIGJvZHksXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICB9LFxuICAgICAgY29va2llcyxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIG9rKGNvZGUgPSAyMDAsIG1lc3NhZ2U/OiBzdHJpbmcpOiBBcGlHYXRld2F5VjJSZXNwb25zZSB7XG4gICAgaWYgKGNvZGUgPCAyMDAgfHwgY29kZSA+PSAzMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignT25seSAyeHggc3RhdHVzY29kZXMgYXJlIGFsbG93ZWQnKTtcbiAgICB9XG5cbiAgICBpZiAobWVzc2FnZSkge1xuICAgICAgcmV0dXJuIHRoaXMuanNvbih7IG1lc3NhZ2U6IG1lc3NhZ2UgfSwgY29kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc3RhdHVzQ29kZTogY29kZSB9O1xuICB9XG5cbn0iXX0=
package/package.json CHANGED
@@ -46,7 +46,7 @@
46
46
  "publishConfig": {
47
47
  "access": "public"
48
48
  },
49
- "version": "0.0.2",
49
+ "version": "0.0.3",
50
50
  "jest": {
51
51
  "testMatch": [
52
52
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",