serverless-simple-middleware 0.0.45 → 0.0.50

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.
@@ -24,10 +24,12 @@ export declare class HandlerResponse {
24
24
  result: any | Promise<any> | undefined;
25
25
  private corsHeaders;
26
26
  private cookies;
27
+ private crossOrigin?;
27
28
  constructor(callback: any);
28
29
  ok(body?: {}, code?: number): any;
29
30
  fail(body?: {}, code?: number): any;
30
- addCookie(key: string, value: string, domain?: string): void;
31
+ addCookie(key: string, value: string, domain?: string, specifyCrossOrigin?: true): void;
32
+ setCrossOrigin: (origin?: string | undefined) => void;
31
33
  }
32
34
  export interface HandlerAuxBase {
33
35
  [key: string]: any;
@@ -60,6 +60,10 @@ var HandlerRequest = /** @class */ (function () {
60
60
  exports.HandlerRequest = HandlerRequest;
61
61
  var HandlerResponse = /** @class */ (function () {
62
62
  function HandlerResponse(callback) {
63
+ var _this = this;
64
+ this.setCrossOrigin = function (origin) {
65
+ _this.crossOrigin = origin;
66
+ };
63
67
  this.callback = callback;
64
68
  this.completed = false;
65
69
  this.corsHeaders = {
@@ -74,6 +78,9 @@ var HandlerResponse = /** @class */ (function () {
74
78
  if (code === void 0) { code = 200; }
75
79
  logger.stupid("ok", body);
76
80
  var headers = __assign({}, this.corsHeaders);
81
+ if (this.crossOrigin) {
82
+ headers['Access-Control-Allow-Origin'] = this.crossOrigin;
83
+ }
77
84
  var multiValueHeaders = undefined;
78
85
  if (this.cookies.length > 0) {
79
86
  multiValueHeaders = { 'Set-Cookie': this.cookies };
@@ -99,10 +106,14 @@ var HandlerResponse = /** @class */ (function () {
99
106
  this.completed = true;
100
107
  return result;
101
108
  };
102
- HandlerResponse.prototype.addCookie = function (key, value, domain) {
109
+ HandlerResponse.prototype.addCookie = function (key, value, domain, specifyCrossOrigin) {
103
110
  var keyValueStr = key + "=" + value;
104
111
  var domainStr = domain ? "Domain=" + domain : '';
105
- var cookieStr = [keyValueStr, domainStr].filter(function (x) { return x; }).join('; ');
112
+ var sameSiteStr = specifyCrossOrigin ? 'SameSite=None' : '';
113
+ var secureStr = specifyCrossOrigin ? 'Secure' : '';
114
+ var cookieStr = [keyValueStr, domainStr, sameSiteStr, secureStr]
115
+ .filter(function (x) { return x; })
116
+ .join('; ');
106
117
  this.cookies.push(cookieStr);
107
118
  };
108
119
  return HandlerResponse;
@@ -122,7 +122,9 @@ var Tracer = /** @class */ (function () {
122
122
  case 5:
123
123
  begin += chunkSize;
124
124
  return [3 /*break*/, 3];
125
- case 6: return [3 /*break*/, 8];
125
+ case 6:
126
+ this.buffer = [];
127
+ return [3 /*break*/, 8];
126
128
  case 7:
127
129
  error_1 = _a.sent();
128
130
  logger.warn("Error in eventSource: " + error_1);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "serverless-simple-middleware",
3
3
  "description": "Simple middleware to translate the interface of lambda's handler to request => response",
4
- "version": "0.0.45",
4
+ "version": "0.0.50",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "author": "VoyagerX",
@@ -57,4 +57,4 @@
57
57
  "singleQuote": true,
58
58
  "trailingComma": "all"
59
59
  }
60
- }
60
+ }
@@ -57,6 +57,7 @@ export class HandlerResponse {
57
57
 
58
58
  private corsHeaders: { [header: string]: any };
59
59
  private cookies: string[];
60
+ private crossOrigin?: string;
60
61
 
61
62
  constructor(callback: any) {
62
63
  this.callback = callback;
@@ -74,6 +75,9 @@ export class HandlerResponse {
74
75
  const headers = {
75
76
  ...this.corsHeaders,
76
77
  };
78
+ if (this.crossOrigin) {
79
+ headers['Access-Control-Allow-Origin'] = this.crossOrigin;
80
+ }
77
81
  let multiValueHeaders = undefined;
78
82
  if (this.cookies.length > 0) {
79
83
  multiValueHeaders = { 'Set-Cookie': this.cookies };
@@ -99,12 +103,25 @@ export class HandlerResponse {
99
103
  return result;
100
104
  }
101
105
 
102
- public addCookie(key: string, value: string, domain?: string) {
106
+ public addCookie(
107
+ key: string,
108
+ value: string,
109
+ domain?: string,
110
+ specifyCrossOrigin?: true,
111
+ ) {
103
112
  const keyValueStr = `${key}=${value}`;
104
113
  const domainStr = domain ? `Domain=${domain}` : '';
105
- const cookieStr = [keyValueStr, domainStr].filter(x => x).join('; ');
114
+ const sameSiteStr = specifyCrossOrigin ? 'SameSite=None' : '';
115
+ const secureStr = specifyCrossOrigin ? 'Secure' : '';
116
+ const cookieStr = [keyValueStr, domainStr, sameSiteStr, secureStr]
117
+ .filter(x => x)
118
+ .join('; ');
106
119
  this.cookies.push(cookieStr);
107
120
  }
121
+
122
+ public setCrossOrigin = (origin?: string) => {
123
+ this.crossOrigin = origin;
124
+ };
108
125
  }
109
126
 
110
127
  export interface HandlerAuxBase {
@@ -103,6 +103,8 @@ export class Tracer {
103
103
  .promise();
104
104
  logger.stupid(`sendBatchResult`, sendBatchResult);
105
105
  }
106
+
107
+ this.buffer = [];
106
108
  } catch (error) {
107
109
  logger.warn(`Error in eventSource: ${error}`);
108
110
  }