@gemeentenijmegen/apigateway-http 0.0.0 → 0.0.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.
@@ -8,7 +8,9 @@ export interface ApiGatewayV2Response extends APIGatewayProxyStructuredResultV2
8
8
  * Utility class for sending API gateway v2 responses
9
9
  */
10
10
  export declare class Response {
11
- static redirect(location: string, code?: number): ApiGatewayV2Response;
12
- static html(body: string, cookies?: string[] | string, code?: number): ApiGatewayV2Response;
11
+ static redirect(location: string, code?: number, cookies?: string[] | string): ApiGatewayV2Response;
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;
15
+ static ok(code?: number, message?: string): ApiGatewayV2Response;
14
16
  }
@@ -5,16 +5,20 @@ exports.Response = void 0;
5
5
  * Utility class for sending API gateway v2 responses
6
6
  */
7
7
  class Response {
8
- static redirect(location, code = 302) {
8
+ static redirect(location, code = 302, cookies) {
9
+ if (cookies != undefined && !Array.isArray(cookies)) {
10
+ cookies = [cookies];
11
+ }
9
12
  return {
10
13
  statusCode: code,
11
14
  body: '',
12
15
  headers: {
13
16
  Location: location,
14
17
  },
18
+ cookies,
15
19
  };
16
20
  }
17
- static html(body, cookies, code = 200) {
21
+ static html(body, code = 200, cookies) {
18
22
  if (cookies != undefined && !Array.isArray(cookies)) {
19
23
  cookies = [cookies];
20
24
  }
@@ -28,17 +32,32 @@ class Response {
28
32
  };
29
33
  }
30
34
  static error(code = 500, message) {
31
- let body = !message ? undefined : {
32
- body: JSON.stringify({ message: message }),
33
- headers: {
34
- 'Content-type': 'application/json',
35
- },
35
+ if (message) {
36
+ return this.json({ message: message }, code);
37
+ }
38
+ return {
39
+ statusCode: code,
36
40
  };
41
+ }
42
+ static json(json, code = 200) {
43
+ const body = JSON.stringify(json);
37
44
  return {
38
45
  statusCode: code,
39
- ...body,
46
+ body,
47
+ headers: {
48
+ 'Content-type': 'application/json',
49
+ },
40
50
  };
41
51
  }
52
+ static ok(code = 200, message) {
53
+ if (code < 200 || code >= 300) {
54
+ throw new Error('Only 2xx statuscodes are allowed');
55
+ }
56
+ if (message) {
57
+ return this.json({ message: message }, code);
58
+ }
59
+ return { statusCode: code };
60
+ }
42
61
  }
43
62
  exports.Response = Response;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVjIvUmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUE7O0dBRUc7QUFDSCxNQUFhLFFBQVE7SUFFbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFnQixFQUFFLElBQUksR0FBRyxHQUFHO1FBQzFDLE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSTtZQUNoQixJQUFJLEVBQUUsRUFBRTtZQUNSLE9BQU8sRUFBRTtnQkFDUCxRQUFRLEVBQUUsUUFBUTthQUNuQjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFZLEVBQUUsT0FBMkIsRUFBRSxJQUFJLEdBQUcsR0FBRztRQUMvRCxJQUFJLE9BQU8sSUFBSSxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25ELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3JCO1FBQ0QsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUk7WUFDSixPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLFdBQVc7YUFDNUI7WUFDRCxPQUFPO1NBQ1IsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBZ0I7UUFDdkMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDMUMsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxrQkFBa0I7YUFDbkM7U0FDRixDQUFDO1FBRUYsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLEdBQUcsSUFBSTtTQUNSLENBQUM7SUFDSixDQUFDO0NBRUY7QUF4Q0QsNEJBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBJR2F0ZXdheVByb3h5U3RydWN0dXJlZFJlc3VsdFYyIH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5cbi8qKlxuICogRXhwb3J0IHVuZGVyIGEgZGlmZmVyZW50IG5hbWUgZm9yIG5pY2UgY29kZSBjb21wbGV0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpR2F0ZXdheVYyUmVzcG9uc2UgZXh0ZW5kcyBBUElHYXRld2F5UHJveHlTdHJ1Y3R1cmVkUmVzdWx0VjIge1xufVxuXG4vKipcbiAqIFV0aWxpdHkgY2xhc3MgZm9yIHNlbmRpbmcgQVBJIGdhdGV3YXkgdjIgcmVzcG9uc2VzXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNwb25zZSB7XG5cbiAgc3RhdGljIHJlZGlyZWN0KGxvY2F0aW9uOiBzdHJpbmcsIGNvZGUgPSAzMDIpOiBBcGlHYXRld2F5VjJSZXNwb25zZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGU6IGNvZGUsXG4gICAgICBib2R5OiAnJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgTG9jYXRpb246IGxvY2F0aW9uLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGh0bWwoYm9keTogc3RyaW5nLCBjb29raWVzPzogc3RyaW5nW10gfCBzdHJpbmcsIGNvZGUgPSAyMDApOiBBcGlHYXRld2F5VjJSZXNwb25zZSB7XG4gICAgaWYgKGNvb2tpZXMgIT0gdW5kZWZpbmVkICYmICFBcnJheS5pc0FycmF5KGNvb2tpZXMpKSB7XG4gICAgICBjb29raWVzID0gW2Nvb2tpZXNdO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzQ29kZTogY29kZSxcbiAgICAgIGJvZHksXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LXR5cGUnOiAndGV4dC9odG1sJyxcbiAgICAgIH0sXG4gICAgICBjb29raWVzLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZXJyb3IoY29kZSA9IDUwMCwgbWVzc2FnZT86IHN0cmluZyk6IEFwaUdhdGV3YXlWMlJlc3BvbnNlIHtcbiAgICBsZXQgYm9keSA9ICFtZXNzYWdlID8gdW5kZWZpbmVkIDoge1xuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBtZXNzYWdlOiBtZXNzYWdlIH0pLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGU6IGNvZGUsXG4gICAgICAuLi5ib2R5LFxuICAgIH07XG4gIH1cblxufSJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVjIvUmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUE7O0dBRUc7QUFDSCxNQUFhLFFBQVE7SUFFbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFnQixFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBMkI7UUFDdkUsSUFBSSxPQUFPLElBQUksU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyQjtRQUNELE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSTtZQUNoQixJQUFJLEVBQUUsRUFBRTtZQUNSLE9BQU8sRUFBRTtnQkFDUCxRQUFRLEVBQUUsUUFBUTthQUNuQjtZQUNELE9BQU87U0FDUixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBWSxFQUFFLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBMkI7UUFDL0QsSUFBSSxPQUFPLElBQUksU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyQjtRQUNELE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSTtZQUNoQixJQUFJO1lBQ0osT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxXQUFXO2FBQzVCO1lBQ0QsT0FBTztTQUNSLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLE9BQWdCO1FBRXZDLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzlDO1FBRUQsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFTLEVBQUUsSUFBSSxHQUFHLEdBQUc7UUFDL0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUk7WUFDaEIsSUFBSTtZQUNKLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsa0JBQWtCO2FBQ25DO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsT0FBZ0I7UUFDcEMsSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1NBQ3JEO1FBRUQsSUFBSSxPQUFPLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDOUM7UUFFRCxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FFRjtBQWhFRCw0QkFnRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElHYXRld2F5UHJveHlTdHJ1Y3R1cmVkUmVzdWx0VjIgfSBmcm9tICdhd3MtbGFtYmRhJztcblxuLyoqXG4gKiBFeHBvcnQgdW5kZXIgYSBkaWZmZXJlbnQgbmFtZSBmb3IgbmljZSBjb2RlIGNvbXBsZXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlHYXRld2F5VjJSZXNwb25zZSBleHRlbmRzIEFQSUdhdGV3YXlQcm94eVN0cnVjdHVyZWRSZXN1bHRWMiB7XG59XG5cbi8qKlxuICogVXRpbGl0eSBjbGFzcyBmb3Igc2VuZGluZyBBUEkgZ2F0ZXdheSB2MiByZXNwb25zZXNcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc3BvbnNlIHtcblxuICBzdGF0aWMgcmVkaXJlY3QobG9jYXRpb246IHN0cmluZywgY29kZSA9IDMwMiwgY29va2llcz86IHN0cmluZ1tdIHwgc3RyaW5nKTogQXBpR2F0ZXdheVYyUmVzcG9uc2Uge1xuICAgIGlmIChjb29raWVzICE9IHVuZGVmaW5lZCAmJiAhQXJyYXkuaXNBcnJheShjb29raWVzKSkge1xuICAgICAgY29va2llcyA9IFtjb29raWVzXTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGU6IGNvZGUsXG4gICAgICBib2R5OiAnJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgTG9jYXRpb246IGxvY2F0aW9uLFxuICAgICAgfSxcbiAgICAgIGNvb2tpZXMsXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBodG1sKGJvZHk6IHN0cmluZywgY29kZSA9IDIwMCwgY29va2llcz86IHN0cmluZ1tdIHwgc3RyaW5nKTogQXBpR2F0ZXdheVYyUmVzcG9uc2Uge1xuICAgIGlmIChjb29raWVzICE9IHVuZGVmaW5lZCAmJiAhQXJyYXkuaXNBcnJheShjb29raWVzKSkge1xuICAgICAgY29va2llcyA9IFtjb29raWVzXTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGU6IGNvZGUsXG4gICAgICBib2R5LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC10eXBlJzogJ3RleHQvaHRtbCcsXG4gICAgICB9LFxuICAgICAgY29va2llcyxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGVycm9yKGNvZGUgPSA1MDAsIG1lc3NhZ2U/OiBzdHJpbmcpOiBBcGlHYXRld2F5VjJSZXNwb25zZSB7XG5cbiAgICBpZiAobWVzc2FnZSkge1xuICAgICAgcmV0dXJuIHRoaXMuanNvbih7IG1lc3NhZ2U6IG1lc3NhZ2UgfSwgY29kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGU6IGNvZGUsXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBqc29uKGpzb246IGFueSwgY29kZSA9IDIwMCk6IEFwaUdhdGV3YXlWMlJlc3BvbnNlIHtcbiAgICBjb25zdCBib2R5ID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXR1c0NvZGU6IGNvZGUsXG4gICAgICBib2R5LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIG9rKGNvZGUgPSAyMDAsIG1lc3NhZ2U/OiBzdHJpbmcpOiBBcGlHYXRld2F5VjJSZXNwb25zZSB7XG4gICAgaWYgKGNvZGUgPCAyMDAgfHwgY29kZSA+PSAzMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignT25seSAyeHggc3RhdHVzY29kZXMgYXJlIGFsbG93ZWQnKTtcbiAgICB9XG5cbiAgICBpZiAobWVzc2FnZSkge1xuICAgICAgcmV0dXJuIHRoaXMuanNvbih7IG1lc3NhZ2U6IG1lc3NhZ2UgfSwgY29kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc3RhdHVzQ29kZTogY29kZSB9O1xuICB9XG5cbn0iXX0=
package/package.json CHANGED
@@ -46,7 +46,7 @@
46
46
  "publishConfig": {
47
47
  "access": "public"
48
48
  },
49
- "version": "0.0.0",
49
+ "version": "0.0.2",
50
50
  "jest": {
51
51
  "testMatch": [
52
52
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",