@tsed/platform-serverless 7.77.1 → 7.78.0

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.
Files changed (39) hide show
  1. package/jest.config.js +1 -1
  2. package/lib/cjs/builder/PlatformServerless.js +11 -2
  3. package/lib/cjs/builder/PlatformServerless.js.map +1 -1
  4. package/lib/cjs/builder/PlatformServerlessHandler.js +22 -6
  5. package/lib/cjs/builder/PlatformServerlessHandler.js.map +1 -1
  6. package/lib/cjs/domain/ServerlessContext.js +3 -1
  7. package/lib/cjs/domain/ServerlessContext.js.map +1 -1
  8. package/lib/cjs/domain/ServerlessResponse.js.map +1 -1
  9. package/lib/cjs/domain/ServerlessResponseStream.js +59 -0
  10. package/lib/cjs/domain/ServerlessResponseStream.js.map +1 -0
  11. package/lib/cjs/index.js +2 -0
  12. package/lib/cjs/index.js.map +1 -1
  13. package/lib/cjs/utils/isInAWS.js +12 -0
  14. package/lib/cjs/utils/isInAWS.js.map +1 -0
  15. package/lib/cjs/utils/setResponseHeaders.js +2 -2
  16. package/lib/cjs/utils/setResponseHeaders.js.map +1 -1
  17. package/lib/esm/builder/PlatformServerless.js +11 -2
  18. package/lib/esm/builder/PlatformServerless.js.map +1 -1
  19. package/lib/esm/builder/PlatformServerlessHandler.js +23 -7
  20. package/lib/esm/builder/PlatformServerlessHandler.js.map +1 -1
  21. package/lib/esm/domain/ServerlessContext.js +3 -1
  22. package/lib/esm/domain/ServerlessContext.js.map +1 -1
  23. package/lib/esm/domain/ServerlessResponse.js.map +1 -1
  24. package/lib/esm/domain/ServerlessResponseStream.js +55 -0
  25. package/lib/esm/domain/ServerlessResponseStream.js.map +1 -0
  26. package/lib/esm/index.js +2 -0
  27. package/lib/esm/index.js.map +1 -1
  28. package/lib/esm/utils/isInAWS.js +8 -0
  29. package/lib/esm/utils/isInAWS.js.map +1 -0
  30. package/lib/esm/utils/setResponseHeaders.js +2 -2
  31. package/lib/esm/utils/setResponseHeaders.js.map +1 -1
  32. package/lib/types/builder/PlatformServerless.d.ts +3 -2
  33. package/lib/types/builder/PlatformServerlessHandler.d.ts +1 -1
  34. package/lib/types/domain/ServerlessContext.d.ts +4 -1
  35. package/lib/types/domain/ServerlessEvent.d.ts +2 -2
  36. package/lib/types/domain/ServerlessResponseStream.d.ts +26 -0
  37. package/lib/types/index.d.ts +2 -0
  38. package/lib/types/utils/isInAWS.d.ts +1 -0
  39. package/package.json +11 -11
package/jest.config.js CHANGED
@@ -12,7 +12,7 @@ module.exports = {
12
12
  coverageThreshold: {
13
13
  global: {
14
14
  statements: 98,
15
- branches: 91.47,
15
+ branches: 90.24,
16
16
  functions: 100,
17
17
  lines: 98
18
18
  }
@@ -29,6 +29,7 @@ const di_1 = require("@tsed/di");
29
29
  const logger_1 = require("@tsed/logger");
30
30
  const schema_1 = require("@tsed/schema");
31
31
  const ServerlessContext_js_1 = require("../domain/ServerlessContext.js");
32
+ const ServerlessResponseStream_1 = require("../domain/ServerlessResponseStream");
32
33
  const getRequestId_js_1 = require("../utils/getRequestId.js");
33
34
  const PlatformServerlessHandler_js_1 = require("./PlatformServerlessHandler.js");
34
35
  /**
@@ -122,15 +123,16 @@ class PlatformServerless {
122
123
  callback(token, propertyKey) {
123
124
  const entity = schema_1.JsonEntityStore.fromMethod(token, propertyKey);
124
125
  let handler;
125
- return async (event, context) => {
126
+ const wrappedHandler = async (event, responseStream, context) => {
126
127
  await this.init();
127
128
  if (!handler) {
128
129
  const platformHandler = this.injector.get(PlatformServerlessHandler_js_1.PlatformServerlessHandler);
129
- handler = await platformHandler.createHandler(token, propertyKey);
130
+ handler = platformHandler.createHandler(token, propertyKey);
130
131
  }
131
132
  const $ctx = new ServerlessContext_js_1.ServerlessContext({
132
133
  event,
133
134
  context,
135
+ responseStream,
134
136
  id: (0, getRequestId_js_1.getRequestId)(event, context),
135
137
  logger: this.injector.logger,
136
138
  injector: this.injector,
@@ -138,6 +140,13 @@ class PlatformServerless {
138
140
  });
139
141
  return handler($ctx);
140
142
  };
143
+ const isBinary = entity.operation.response?.isBinary();
144
+ if (isBinary) {
145
+ return ServerlessResponseStream_1.ServerlessResponseStream.streamifyResponse(wrappedHandler);
146
+ }
147
+ return (event, context) => {
148
+ return wrappedHandler(event, undefined, context);
149
+ };
141
150
  }
142
151
  async initRouter() {
143
152
  if (!this._router) {
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformServerless.js","sourceRoot":"","sources":["../../../src/builder/PlatformServerless.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlatformServerless.js","sourceRoot":"","sources":["../../../src/builder/PlatformServerless.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ const core_1 = require("@tsed/core");
6
6
  const di_1 = require("@tsed/di");
7
7
  const json_mapper_1 = require("@tsed/json-mapper");
8
8
  const platform_params_1 = require("@tsed/platform-params");
9
+ const promises_1 = require("node:stream/promises");
10
+ const ServerlessResponseStream_1 = require("../domain/ServerlessResponseStream");
9
11
  const setResponseHeaders_js_1 = require("../utils/setResponseHeaders.js");
10
12
  let PlatformServerlessHandler = class PlatformServerlessHandler {
11
13
  injector;
@@ -32,8 +34,7 @@ let PlatformServerlessHandler = class PlatformServerlessHandler {
32
34
  };
33
35
  }
34
36
  async flush($ctx) {
35
- (0, setResponseHeaders_js_1.setResponseHeaders)($ctx);
36
- const body = $ctx.isHttpEvent() ? this.mapHttpResponse($ctx) : $ctx.response.getBody();
37
+ const body = $ctx.isHttpEvent() ? await this.makeHttpResponse($ctx) : $ctx.response.getBody();
37
38
  await this.injector.emit("$onResponse", $ctx);
38
39
  $ctx.logger.flush();
39
40
  $ctx.destroy();
@@ -42,19 +43,34 @@ let PlatformServerlessHandler = class PlatformServerlessHandler {
42
43
  }
43
44
  return body;
44
45
  }
45
- mapHttpResponse($ctx) {
46
+ async makeHttpResponse($ctx) {
47
+ (0, setResponseHeaders_js_1.setResponseHeaders)($ctx);
46
48
  let body = $ctx.response.getBody();
47
49
  if ((0, core_1.isSerializable)(body)) {
48
50
  $ctx.response.set("content-type", "application/json");
49
51
  body = JSON.stringify(body);
50
52
  }
51
- return {
53
+ const meta = {
52
54
  statusCode: $ctx.response.getStatus(),
53
- body: body === undefined ? "" : body,
54
55
  headers: {
55
56
  ...$ctx.response.getHeaders(),
56
57
  "x-request-id": $ctx.id
57
- },
58
+ }
59
+ };
60
+ if ((0, core_1.isStream)(body) && $ctx.responseStream) {
61
+ const resStream = ServerlessResponseStream_1.ServerlessResponseStream.setMeta($ctx.responseStream, {
62
+ ...meta,
63
+ headers: {
64
+ "content-type": "application/octet-stream",
65
+ ...meta.headers
66
+ }
67
+ });
68
+ await (0, promises_1.pipeline)(body, resStream);
69
+ return undefined;
70
+ }
71
+ return {
72
+ ...meta,
73
+ body: body === undefined ? "" : body,
58
74
  isBase64Encoded: false
59
75
  };
60
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformServerlessHandler.js","sourceRoot":"","sources":["../../../src/builder/PlatformServerlessHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlatformServerlessHandler.js","sourceRoot":"","sources":["../../../src/builder/PlatformServerlessHandler.ts"],"names":[],"mappings":"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"}
@@ -9,14 +9,16 @@ class ServerlessContext extends di_1.DIContext {
9
9
  request;
10
10
  context;
11
11
  event;
12
+ responseStream;
12
13
  endpoint;
13
14
  PLATFORM = "SERVERLESS";
14
- constructor({ event, context, endpoint, ...options }) {
15
+ constructor({ event, context, endpoint, responseStream, ...options }) {
15
16
  super({
16
17
  ...options,
17
18
  maxStackSize: 0
18
19
  });
19
20
  this.context = context;
21
+ this.responseStream = responseStream;
20
22
  this.event = {
21
23
  ...event,
22
24
  headers: "headers" in event && event.headers
@@ -1 +1 @@
1
- {"version":3,"file":"ServerlessContext.js","sourceRoot":"","sources":["../../../src/domain/ServerlessContext.ts"],"names":[],"mappings":";;;AAAA,iCAAqD;AAGrD,iEAAyD;AACzD,mEAA2D;AAQ3D,MAAa,iBAA+D,SAAQ,cAAS;IAClF,QAAQ,CAA4B;IACpC,OAAO,CAA2B;IAClC,OAAO,CAAU;IACjB,KAAK,CAAQ;IACb,QAAQ,CAAkB;IAC1B,QAAQ,GAAG,YAAY,CAAC;IAEjC,YAAY,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAkC;QACjF,KAAK,CAAC;YACJ,GAAG,OAAO;YACV,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,KAAK;YACR,OAAO,EACL,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO;gBACjC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;gBACrG,CAAC,CAAC,EAAE;SACT,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,wCAAiB,CAAQ,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,0CAAkB,CAAQ,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,WAAW;QACT,OAAO,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;CACF;AAtCD,8CAsCC"}
1
+ {"version":3,"file":"ServerlessContext.js","sourceRoot":"","sources":["../../../src/domain/ServerlessContext.ts"],"names":[],"mappings":";;;AAAA,iCAAqD;AAGrD,iEAAyD;AACzD,mEAA2D;AAU3D,MAAa,iBAA+D,SAAQ,cAAS;IAClF,QAAQ,CAA4B;IACpC,OAAO,CAA2B;IAClC,OAAO,CAAU;IACjB,KAAK,CAAQ;IACb,cAAc,CAAuC;IACrD,QAAQ,CAAkB;IAC1B,QAAQ,GAAG,YAAY,CAAC;IAEjC,YAAY,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,EAAkC;QACjG,KAAK,CAAC;YACJ,GAAG,OAAO;YACV,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,KAAK;YACR,OAAO,EACL,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO;gBACjC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;gBACrG,CAAC,CAAC,EAAE;SACT,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,wCAAiB,CAAQ,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,0CAAkB,CAAQ,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,WAAW;QACT,OAAO,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;CACF;AAxCD,8CAwCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ServerlessResponse.js","sourceRoot":"","sources":["../../../src/domain/ServerlessResponse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServerlessResponse.js","sourceRoot":"","sources":["../../../src/domain/ServerlessResponse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServerlessResponseStream = void 0;
4
+ const node_stream_1 = require("node:stream");
5
+ const isInAWS_1 = require("../utils/isInAWS");
6
+ class ServerlessResponseStream extends node_stream_1.Stream.Writable {
7
+ _meta = { statusCode: 200, headers: {} };
8
+ #response;
9
+ constructor() {
10
+ super();
11
+ this.#response = [];
12
+ }
13
+ static setMeta(resStream, meta) {
14
+ if ((0, isInAWS_1.isInAWS)()) {
15
+ // @ts-ignore
16
+ return awslambda.HttpResponseStream.from(resStream, meta);
17
+ }
18
+ resStream.setMeta(meta);
19
+ return resStream;
20
+ }
21
+ static streamifyResponse(handler) {
22
+ // Check for global awslambda
23
+ if ((0, isInAWS_1.isInAWS)()) {
24
+ // @ts-ignore
25
+ return awslambda.streamifyResponse(handler);
26
+ }
27
+ else {
28
+ return async (event, response, context) => {
29
+ const args = patchArgs([event, response, context]);
30
+ const responseStream = args[1];
31
+ await handler(...args);
32
+ return {
33
+ ...responseStream._meta,
34
+ body: responseStream.getBufferedData().toString()
35
+ };
36
+ };
37
+ }
38
+ }
39
+ // streams, `chunk` may be any JavaScript value.
40
+ _write(chunk, encoding, callback) {
41
+ this.#response.push(Buffer.from(chunk, encoding));
42
+ callback();
43
+ }
44
+ setMeta(meta) {
45
+ this._meta = meta;
46
+ }
47
+ getBufferedData() {
48
+ return Buffer.concat(this.#response);
49
+ }
50
+ }
51
+ exports.ServerlessResponseStream = ServerlessResponseStream;
52
+ function patchArgs(args) {
53
+ if (!(args[1] instanceof ServerlessResponseStream)) {
54
+ const responseStream = new ServerlessResponseStream();
55
+ return [args[0], responseStream, ...args.splice(1, -1)];
56
+ }
57
+ return args;
58
+ }
59
+ //# sourceMappingURL=ServerlessResponseStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerlessResponseStream.js","sourceRoot":"","sources":["../../../src/domain/ServerlessResponseStream.ts"],"names":[],"mappings":";;;AACA,6CAAmC;AACnC,8CAAyC;AAoBzC,MAAa,wBAAyB,SAAQ,oBAAM,CAAC,QAAQ;IACpD,KAAK,GAA2B,EAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC;IACtE,SAAS,CAAW;IAEpB;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,SAAmC,EAAE,IAA4B;QAC9E,IAAI,IAAA,iBAAO,GAAE,EAAE;YACb,aAAa;YACb,OAAO,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SAC3D;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAExB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,OAAuB;QAC9C,6BAA6B;QAC7B,IAAI,IAAA,iBAAO,GAAE,EAAE;YACb,aAAa;YACb,OAAO,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;SAC7C;aAAM;YACL,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;gBACxC,MAAM,IAAI,GAAU,SAAS,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC1D,MAAM,cAAc,GAA6B,IAAI,CAAC,CAAC,CAAC,CAAC;gBAEzD,MAAO,OAAe,CAAC,GAAG,IAAI,CAAC,CAAC;gBAEhC,OAAO;oBACL,GAAG,cAAc,CAAC,KAAK;oBACvB,IAAI,EAAE,cAAc,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE;iBAClD,CAAC;YACJ,CAAC,CAAC;SACH;IACH,CAAC;IAED,gDAAgD;IAChD,MAAM,CAAC,KAAU,EAAE,QAAwB,EAAE,QAAwC;QACnF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClD,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,OAAO,CAAC,IAA4B;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,eAAe;QACb,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;CACF;AArDD,4DAqDC;AAED,SAAS,SAAS,CAAC,IAAW;IAC5B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,wBAAwB,CAAC,EAAE;QAClD,MAAM,cAAc,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAEtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACzD;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/lib/cjs/index.js CHANGED
@@ -10,7 +10,9 @@ tslib_1.__exportStar(require("./domain/ServerlessContext.js"), exports);
10
10
  tslib_1.__exportStar(require("./domain/ServerlessEvent.js"), exports);
11
11
  tslib_1.__exportStar(require("./domain/ServerlessRequest.js"), exports);
12
12
  tslib_1.__exportStar(require("./domain/ServerlessResponse.js"), exports);
13
+ tslib_1.__exportStar(require("./domain/ServerlessResponseStream.js"), exports);
13
14
  tslib_1.__exportStar(require("./exports.js"), exports);
14
15
  tslib_1.__exportStar(require("./utils/getRequestId.js"), exports);
16
+ tslib_1.__exportStar(require("./utils/isInAWS.js"), exports);
15
17
  tslib_1.__exportStar(require("./utils/setResponseHeaders.js"), exports);
16
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,0EAAgD;AAChD,iFAAuD;AACvD,wEAA8C;AAC9C,sEAA4C;AAC5C,wEAA8C;AAC9C,yEAA+C;AAC/C,uDAA6B;AAC7B,kEAAwC;AACxC,wEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,0EAAgD;AAChD,iFAAuD;AACvD,wEAA8C;AAC9C,sEAA4C;AAC5C,wEAA8C;AAC9C,yEAA+C;AAC/C,+EAAqD;AACrD,uDAA6B;AAC7B,kEAAwC;AACxC,6DAAmC;AACnC,wEAA8C"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isInAWS = void 0;
4
+ function isInAWS() {
5
+ return (
6
+ // @ts-ignore
7
+ globalThis.awslambda !== undefined &&
8
+ // @ts-ignore
9
+ awslambda.streamifyResponse !== undefined);
10
+ }
11
+ exports.isInAWS = isInAWS;
12
+ //# sourceMappingURL=isInAWS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isInAWS.js","sourceRoot":"","sources":["../../../src/utils/isInAWS.ts"],"names":[],"mappings":";;;AAAA,SAAgB,OAAO;IACrB,OAAO;IACL,aAAa;IACb,UAAU,CAAC,SAAS,KAAK,SAAS;QAClC,aAAa;QACb,SAAS,CAAC,iBAAiB,KAAK,SAAS,CAC1C,CAAC;AACJ,CAAC;AAPD,0BAOC"}
@@ -19,10 +19,10 @@ function mergeHeaders(specHeaders, headers) {
19
19
  */
20
20
  function setResponseHeaders(ctx) {
21
21
  const { response, endpoint } = ctx;
22
- const operation = endpoint.operation;
23
22
  if (ctx.isDone()) {
24
23
  return;
25
24
  }
25
+ const operation = endpoint.operation;
26
26
  if (!operation) {
27
27
  ctx.logger.debug({
28
28
  event: "MISSING_OPERATION_METADATA",
@@ -32,7 +32,7 @@ function setResponseHeaders(ctx) {
32
32
  return;
33
33
  }
34
34
  if (!response.hasStatus()) {
35
- // apply status only if the isn't already modified
35
+ // apply status only if isn't already modified
36
36
  response.status(operation.getStatus());
37
37
  }
38
38
  const statusCode = response.statusCode;
@@ -1 +1 @@
1
- {"version":3,"file":"setResponseHeaders.js","sourceRoot":"","sources":["../../../src/utils/setResponseHeaders.ts"],"names":[],"mappings":";;;AAKA,SAAS,YAAY,CAAC,WAA2D,EAAE,OAAoC;IACrH,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACjE,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAExB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEvE,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO;gBACL,GAAG,OAAO;gBACV,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;aACrB,CAAC;SACH;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,GAAuC;IACxE,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAC,GAAG,GAAG,CAAC;IACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IAErC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;QAChB,OAAO;KACR;IAED,IAAI,CAAC,SAAS,EAAE;QACd,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,EAAE,4BAA4B;YACnC,OAAO,EAAE,uEAAuE;YAChF,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO;KACR;IAED,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;QACzB,kDAAkD;QAClD,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;KACxC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnE,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAEnC,IAAI,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;QACvC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAClE;AACH,CAAC;AA/BD,gDA+BC"}
1
+ {"version":3,"file":"setResponseHeaders.js","sourceRoot":"","sources":["../../../src/utils/setResponseHeaders.ts"],"names":[],"mappings":";;;AAKA,SAAS,YAAY,CAAC,WAA2D,EAAE,OAAoC;IACrH,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACjE,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAExB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEvE,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO;gBACL,GAAG,OAAO;gBACV,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;aACrB,CAAC;SACH;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,GAAuC;IACxE,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAC,GAAG,GAAG,CAAC;IACjC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;QAChB,OAAO;KACR;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAsC,CAAC;IAElE,IAAI,CAAC,SAAS,EAAE;QACd,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,EAAE,4BAA4B;YACnC,OAAO,EAAE,uEAAuE;YAChF,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO;KACR;IAED,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;QACzB,8CAA8C;QAC9C,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;KACxC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnE,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAEnC,IAAI,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;QACvC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAClE;AACH,CAAC;AA/BD,gDA+BC"}
@@ -3,6 +3,7 @@ import { createContainer, InjectorService, setLoggerConfiguration } from "@tsed/
3
3
  import { $log } from "@tsed/logger";
4
4
  import { getOperationsRoutes, JsonEntityStore } from "@tsed/schema";
5
5
  import { ServerlessContext } from "../domain/ServerlessContext.js";
6
+ import { ServerlessResponseStream } from "../domain/ServerlessResponseStream.js";
6
7
  import { getRequestId } from "../utils/getRequestId.js";
7
8
  import { PlatformServerlessHandler } from "./PlatformServerlessHandler.js";
8
9
  /**
@@ -96,15 +97,16 @@ export class PlatformServerless {
96
97
  callback(token, propertyKey) {
97
98
  const entity = JsonEntityStore.fromMethod(token, propertyKey);
98
99
  let handler;
99
- return async (event, context) => {
100
+ const wrappedHandler = async (event, responseStream, context) => {
100
101
  await this.init();
101
102
  if (!handler) {
102
103
  const platformHandler = this.injector.get(PlatformServerlessHandler);
103
- handler = await platformHandler.createHandler(token, propertyKey);
104
+ handler = platformHandler.createHandler(token, propertyKey);
104
105
  }
105
106
  const $ctx = new ServerlessContext({
106
107
  event,
107
108
  context,
109
+ responseStream,
108
110
  id: getRequestId(event, context),
109
111
  logger: this.injector.logger,
110
112
  injector: this.injector,
@@ -112,6 +114,13 @@ export class PlatformServerless {
112
114
  });
113
115
  return handler($ctx);
114
116
  };
117
+ const isBinary = entity.operation.response?.isBinary();
118
+ if (isBinary) {
119
+ return ServerlessResponseStream.streamifyResponse(wrappedHandler);
120
+ }
121
+ return (event, context) => {
122
+ return wrappedHandler(event, undefined, context);
123
+ };
115
124
  }
116
125
  async initRouter() {
117
126
  if (!this._router) {
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformServerless.js","sourceRoot":"","sources":["../../../src/builder/PlatformServerless.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlatformServerless.js","sourceRoot":"","sources":["../../../src/builder/PlatformServerless.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { AnyToPromise, isSerializable } from "@tsed/core";
2
+ import { AnyToPromise, isSerializable, isStream } from "@tsed/core";
3
3
  import { Inject, Injectable, InjectorService, LazyInject, ProviderScope } from "@tsed/di";
4
4
  import { serialize } from "@tsed/json-mapper";
5
5
  import { DeserializerPipe, PlatformParams, ValidationPipe } from "@tsed/platform-params";
6
+ import { pipeline } from "node:stream/promises";
7
+ import { ServerlessResponseStream } from "../domain/ServerlessResponseStream.js";
6
8
  import { setResponseHeaders } from "../utils/setResponseHeaders.js";
7
9
  let PlatformServerlessHandler = class PlatformServerlessHandler {
8
10
  injector;
@@ -29,8 +31,7 @@ let PlatformServerlessHandler = class PlatformServerlessHandler {
29
31
  };
30
32
  }
31
33
  async flush($ctx) {
32
- setResponseHeaders($ctx);
33
- const body = $ctx.isHttpEvent() ? this.mapHttpResponse($ctx) : $ctx.response.getBody();
34
+ const body = $ctx.isHttpEvent() ? await this.makeHttpResponse($ctx) : $ctx.response.getBody();
34
35
  await this.injector.emit("$onResponse", $ctx);
35
36
  $ctx.logger.flush();
36
37
  $ctx.destroy();
@@ -39,19 +40,34 @@ let PlatformServerlessHandler = class PlatformServerlessHandler {
39
40
  }
40
41
  return body;
41
42
  }
42
- mapHttpResponse($ctx) {
43
+ async makeHttpResponse($ctx) {
44
+ setResponseHeaders($ctx);
43
45
  let body = $ctx.response.getBody();
44
46
  if (isSerializable(body)) {
45
47
  $ctx.response.set("content-type", "application/json");
46
48
  body = JSON.stringify(body);
47
49
  }
48
- return {
50
+ const meta = {
49
51
  statusCode: $ctx.response.getStatus(),
50
- body: body === undefined ? "" : body,
51
52
  headers: {
52
53
  ...$ctx.response.getHeaders(),
53
54
  "x-request-id": $ctx.id
54
- },
55
+ }
56
+ };
57
+ if (isStream(body) && $ctx.responseStream) {
58
+ const resStream = ServerlessResponseStream.setMeta($ctx.responseStream, {
59
+ ...meta,
60
+ headers: {
61
+ "content-type": "application/octet-stream",
62
+ ...meta.headers
63
+ }
64
+ });
65
+ await pipeline(body, resStream);
66
+ return undefined;
67
+ }
68
+ return {
69
+ ...meta,
70
+ body: body === undefined ? "" : body,
55
71
  isBase64Encoded: false
56
72
  };
57
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformServerlessHandler.js","sourceRoot":"","sources":["../../../src/builder/PlatformServerlessHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlatformServerlessHandler.js","sourceRoot":"","sources":["../../../src/builder/PlatformServerlessHandler.ts"],"names":[],"mappings":"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"}
@@ -6,14 +6,16 @@ export class ServerlessContext extends DIContext {
6
6
  request;
7
7
  context;
8
8
  event;
9
+ responseStream;
9
10
  endpoint;
10
11
  PLATFORM = "SERVERLESS";
11
- constructor({ event, context, endpoint, ...options }) {
12
+ constructor({ event, context, endpoint, responseStream, ...options }) {
12
13
  super({
13
14
  ...options,
14
15
  maxStackSize: 0
15
16
  });
16
17
  this.context = context;
18
+ this.responseStream = responseStream;
17
19
  this.event = {
18
20
  ...event,
19
21
  headers: "headers" in event && event.headers
@@ -1 +1 @@
1
- {"version":3,"file":"ServerlessContext.js","sourceRoot":"","sources":["../../../src/domain/ServerlessContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAmB,MAAM,UAAU,CAAC;AAGrD,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAQ3D,MAAM,OAAO,iBAA+D,SAAQ,SAAS;IAClF,QAAQ,CAA4B;IACpC,OAAO,CAA2B;IAClC,OAAO,CAAU;IACjB,KAAK,CAAQ;IACb,QAAQ,CAAkB;IAC1B,QAAQ,GAAG,YAAY,CAAC;IAEjC,YAAY,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAkC;QACjF,KAAK,CAAC;YACJ,GAAG,OAAO;YACV,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,KAAK;YACR,OAAO,EACL,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO;gBACjC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;gBACrG,CAAC,CAAC,EAAE;SACT,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,CAAQ,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAQ,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,WAAW;QACT,OAAO,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"ServerlessContext.js","sourceRoot":"","sources":["../../../src/domain/ServerlessContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAmB,MAAM,UAAU,CAAC;AAGrD,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAU3D,MAAM,OAAO,iBAA+D,SAAQ,SAAS;IAClF,QAAQ,CAA4B;IACpC,OAAO,CAA2B;IAClC,OAAO,CAAU;IACjB,KAAK,CAAQ;IACb,cAAc,CAAuC;IACrD,QAAQ,CAAkB;IAC1B,QAAQ,GAAG,YAAY,CAAC;IAEjC,YAAY,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,EAAkC;QACjG,KAAK,CAAC;YACJ,GAAG,OAAO;YACV,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,KAAK;YACR,OAAO,EACL,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO;gBACjC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;gBACrG,CAAC,CAAC,EAAE;SACT,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,CAAQ,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAQ,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,WAAW;QACT,OAAO,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ServerlessResponse.js","sourceRoot":"","sources":["../../../src/domain/ServerlessResponse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServerlessResponse.js","sourceRoot":"","sources":["../../../src/domain/ServerlessResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAW,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAE9C,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AAKxB;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAOP;IANtB,OAAO,GAAW,GAAG,CAAC;IACtB,KAAK,GAAQ,SAAS,CAAC;IACvB,QAAQ,GAAgC,EAAE,CAAC;IAC3C,OAAO,GAAwB,EAAE,CAAC;IAClC,cAAc,GAAG,KAAK,CAAC;IAEvB,YAAsB,IAA8B;QAA9B,SAAI,GAAJ,IAAI,CAA0B;IAAG,CAAC;IAExD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,UAAU,CAAC,MAAM;QACnB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,KAAU;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;;OAQG;IACH,GAAG,CAAC,IAAY;QACd,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,UAAU;QACR,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;SACjB,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;OAUG;IACH,UAAU,CAAC,OAAoC;QAC7C,gBAAgB;QAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,IAAoC;QACzD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;YACvC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAExB,IAAI,GAAG,KAAK,UAAU,EAAE;gBACtB,sCAAsC;gBACtC,IAAI,IAAI,KAAK,MAAM,EAAE;oBACnB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;iBAC5C;gBAED,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;aAChC;YAED,IAAI,CAAC,QAAQ,GAAG;gBACd,GAAG,IAAI,CAAC,QAAQ;gBAChB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,IAAW;aACjC,CAAC;SACH;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,WAAmB;QAC7B,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAE1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC9B,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;SAC7D;IACH,CAAC;IAED,cAAc;QACZ,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,MAAc,EAAE,GAAW;QAClC,sBAAsB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,oBAAoB,OAAO,EAAE,CAAC;QAEtE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9E,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,GAAW;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CAAC,IAAS;QACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,55 @@
1
+ import { Stream } from "node:stream";
2
+ import { isInAWS } from "../utils/isInAWS.js";
3
+ export class ServerlessResponseStream extends Stream.Writable {
4
+ _meta = { statusCode: 200, headers: {} };
5
+ #response;
6
+ constructor() {
7
+ super();
8
+ this.#response = [];
9
+ }
10
+ static setMeta(resStream, meta) {
11
+ if (isInAWS()) {
12
+ // @ts-ignore
13
+ return awslambda.HttpResponseStream.from(resStream, meta);
14
+ }
15
+ resStream.setMeta(meta);
16
+ return resStream;
17
+ }
18
+ static streamifyResponse(handler) {
19
+ // Check for global awslambda
20
+ if (isInAWS()) {
21
+ // @ts-ignore
22
+ return awslambda.streamifyResponse(handler);
23
+ }
24
+ else {
25
+ return async (event, response, context) => {
26
+ const args = patchArgs([event, response, context]);
27
+ const responseStream = args[1];
28
+ await handler(...args);
29
+ return {
30
+ ...responseStream._meta,
31
+ body: responseStream.getBufferedData().toString()
32
+ };
33
+ };
34
+ }
35
+ }
36
+ // streams, `chunk` may be any JavaScript value.
37
+ _write(chunk, encoding, callback) {
38
+ this.#response.push(Buffer.from(chunk, encoding));
39
+ callback();
40
+ }
41
+ setMeta(meta) {
42
+ this._meta = meta;
43
+ }
44
+ getBufferedData() {
45
+ return Buffer.concat(this.#response);
46
+ }
47
+ }
48
+ function patchArgs(args) {
49
+ if (!(args[1] instanceof ServerlessResponseStream)) {
50
+ const responseStream = new ServerlessResponseStream();
51
+ return [args[0], responseStream, ...args.splice(1, -1)];
52
+ }
53
+ return args;
54
+ }
55
+ //# sourceMappingURL=ServerlessResponseStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerlessResponseStream.js","sourceRoot":"","sources":["../../../src/domain/ServerlessResponseStream.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAoBzC,MAAM,OAAO,wBAAyB,SAAQ,MAAM,CAAC,QAAQ;IACpD,KAAK,GAA2B,EAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC;IACtE,SAAS,CAAW;IAEpB;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,SAAmC,EAAE,IAA4B;QAC9E,IAAI,OAAO,EAAE,EAAE;YACb,aAAa;YACb,OAAO,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SAC3D;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAExB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,OAAuB;QAC9C,6BAA6B;QAC7B,IAAI,OAAO,EAAE,EAAE;YACb,aAAa;YACb,OAAO,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;SAC7C;aAAM;YACL,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;gBACxC,MAAM,IAAI,GAAU,SAAS,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC1D,MAAM,cAAc,GAA6B,IAAI,CAAC,CAAC,CAAC,CAAC;gBAEzD,MAAO,OAAe,CAAC,GAAG,IAAI,CAAC,CAAC;gBAEhC,OAAO;oBACL,GAAG,cAAc,CAAC,KAAK;oBACvB,IAAI,EAAE,cAAc,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE;iBAClD,CAAC;YACJ,CAAC,CAAC;SACH;IACH,CAAC;IAED,gDAAgD;IAChD,MAAM,CAAC,KAAU,EAAE,QAAwB,EAAE,QAAwC;QACnF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClD,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,OAAO,CAAC,IAA4B;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,eAAe;QACb,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;CACF;AAED,SAAS,SAAS,CAAC,IAAW;IAC5B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,wBAAwB,CAAC,EAAE;QAClD,MAAM,cAAc,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAEtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACzD;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/lib/esm/index.js CHANGED
@@ -7,7 +7,9 @@ export * from "./domain/ServerlessContext.js";
7
7
  export * from "./domain/ServerlessEvent.js";
8
8
  export * from "./domain/ServerlessRequest.js";
9
9
  export * from "./domain/ServerlessResponse.js";
10
+ export * from "./domain/ServerlessResponseStream.js";
10
11
  export * from "./exports.js";
11
12
  export * from "./utils/getRequestId.js";
13
+ export * from "./utils/isInAWS.js";
12
14
  export * from "./utils/setResponseHeaders.js";
13
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,8 @@
1
+ export function isInAWS() {
2
+ return (
3
+ // @ts-ignore
4
+ globalThis.awslambda !== undefined &&
5
+ // @ts-ignore
6
+ awslambda.streamifyResponse !== undefined);
7
+ }
8
+ //# sourceMappingURL=isInAWS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isInAWS.js","sourceRoot":"","sources":["../../../src/utils/isInAWS.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,OAAO;IACrB,OAAO;IACL,aAAa;IACb,UAAU,CAAC,SAAS,KAAK,SAAS;QAClC,aAAa;QACb,SAAS,CAAC,iBAAiB,KAAK,SAAS,CAC1C,CAAC;AACJ,CAAC"}
@@ -16,10 +16,10 @@ function mergeHeaders(specHeaders, headers) {
16
16
  */
17
17
  export function setResponseHeaders(ctx) {
18
18
  const { response, endpoint } = ctx;
19
- const operation = endpoint.operation;
20
19
  if (ctx.isDone()) {
21
20
  return;
22
21
  }
22
+ const operation = endpoint.operation;
23
23
  if (!operation) {
24
24
  ctx.logger.debug({
25
25
  event: "MISSING_OPERATION_METADATA",
@@ -29,7 +29,7 @@ export function setResponseHeaders(ctx) {
29
29
  return;
30
30
  }
31
31
  if (!response.hasStatus()) {
32
- // apply status only if the isn't already modified
32
+ // apply status only if isn't already modified
33
33
  response.status(operation.getStatus());
34
34
  }
35
35
  const statusCode = response.statusCode;
@@ -1 +1 @@
1
- {"version":3,"file":"setResponseHeaders.js","sourceRoot":"","sources":["../../../src/utils/setResponseHeaders.ts"],"names":[],"mappings":"AAKA,SAAS,YAAY,CAAC,WAA2D,EAAE,OAAoC;IACrH,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACjE,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAExB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEvE,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO;gBACL,GAAG,OAAO;gBACV,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;aACrB,CAAC;SACH;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAuC;IACxE,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAC,GAAG,GAAG,CAAC;IACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IAErC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;QAChB,OAAO;KACR;IAED,IAAI,CAAC,SAAS,EAAE;QACd,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,EAAE,4BAA4B;YACnC,OAAO,EAAE,uEAAuE;YAChF,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO;KACR;IAED,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;QACzB,kDAAkD;QAClD,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;KACxC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnE,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAEnC,IAAI,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;QACvC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAClE;AACH,CAAC"}
1
+ {"version":3,"file":"setResponseHeaders.js","sourceRoot":"","sources":["../../../src/utils/setResponseHeaders.ts"],"names":[],"mappings":"AAKA,SAAS,YAAY,CAAC,WAA2D,EAAE,OAAoC;IACrH,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACjE,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAExB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEvE,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO;gBACL,GAAG,OAAO;gBACV,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;aACrB,CAAC;SACH;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAuC;IACxE,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAC,GAAG,GAAG,CAAC;IACjC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;QAChB,OAAO;KACR;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAsC,CAAC;IAElE,IAAI,CAAC,SAAS,EAAE;QACd,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;YACf,KAAK,EAAE,4BAA4B;YACnC,OAAO,EAAE,uEAAuE;YAChF,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO;KACR;IAED,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE;QACzB,8CAA8C;QAC9C,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;KACxC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAEnE,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAEnC,IAAI,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;QACvC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAClE;AACH,CAAC"}
@@ -3,6 +3,7 @@ import { InjectorService } from "@tsed/di";
3
3
  import type { Handler } from "aws-lambda";
4
4
  import type { Instance } from "find-my-way";
5
5
  import type { ServerlessEvent } from "../domain/ServerlessEvent";
6
+ import { type RequestHandler } from "../domain/ServerlessResponseStream";
6
7
  export interface PlatformServerlessSettings extends Partial<TsED.Configuration> {
7
8
  lambda?: Type[];
8
9
  }
@@ -23,13 +24,13 @@ export declare class PlatformServerless {
23
24
  /**
24
25
  * Create a new handler from the given token and propertyKey. No routing is used here.
25
26
  */
26
- static callback(token: Type<any>, propertyKey: string, settings?: Partial<TsED.Configuration>): Handler;
27
+ static callback(token: Type<any>, propertyKey: string, settings?: Partial<TsED.Configuration>): Handler<ServerlessEvent> | RequestHandler;
27
28
  handler(): Handler;
28
29
  callbacks(tokens?: Type | Type[], callbacks?: any): Record<string, Handler>;
29
30
  ready(): Promise<void>;
30
31
  stop(): Promise<void>;
31
32
  init(): Promise<any>;
32
- protected callback(token: Type<any>, propertyKey: string): Handler<ServerlessEvent>;
33
+ protected callback(token: Type<any>, propertyKey: string): Handler<ServerlessEvent> | RequestHandler;
33
34
  protected initRouter(): Promise<Instance<any>>;
34
35
  protected createInjector(settings: any): this;
35
36
  protected loadInjector(): Promise<void>;
@@ -9,6 +9,6 @@ export declare class PlatformServerlessHandler {
9
9
  protected exceptionsManager: Promise<PlatformExceptions>;
10
10
  createHandler(token: TokenProvider, propertyKey: string | symbol): ($ctx: ServerlessContext<ServerlessEvent>) => Promise<any>;
11
11
  private flush;
12
- private mapHttpResponse;
12
+ private makeHttpResponse;
13
13
  private processResult;
14
14
  }
@@ -3,9 +3,11 @@ import { JsonEntityStore } from "@tsed/schema";
3
3
  import { type APIGatewayProxyEvent, Context } from "aws-lambda";
4
4
  import { ServerlessRequest } from "./ServerlessRequest.js";
5
5
  import { ServerlessResponse } from "./ServerlessResponse.js";
6
+ import type { ServerlessResponseStream } from "./ServerlessResponseStream";
6
7
  export interface ServerlessContextOptions<Event = APIGatewayProxyEvent> extends DIContextOptions {
7
8
  event: Event;
8
9
  context: Context;
10
+ responseStream?: ServerlessResponseStream;
9
11
  endpoint: JsonEntityStore;
10
12
  }
11
13
  export declare class ServerlessContext<Event extends object = APIGatewayProxyEvent> extends DIContext {
@@ -13,9 +15,10 @@ export declare class ServerlessContext<Event extends object = APIGatewayProxyEve
13
15
  readonly request: ServerlessRequest<Event>;
14
16
  readonly context: Context;
15
17
  readonly event: Event;
18
+ readonly responseStream: ServerlessResponseStream | undefined;
16
19
  readonly endpoint: JsonEntityStore;
17
20
  readonly PLATFORM = "SERVERLESS";
18
- constructor({ event, context, endpoint, ...options }: ServerlessContextOptions<Event>);
21
+ constructor({ event, context, endpoint, responseStream, ...options }: ServerlessContextOptions<Event>);
19
22
  isHttpEvent(): boolean;
20
23
  destroy(): Promise<void>;
21
24
  isDone(): boolean;
@@ -1,2 +1,2 @@
1
- import type { APIGatewayProxyEvent, APIGatewayTokenAuthorizerEvent, CloudWatchLogsEvent, DynamoDBStreamEvent, KinesisStreamEvent, S3Event, ScheduledEvent, SNSEvent, SQSEvent } from "aws-lambda";
2
- export type ServerlessEvent = APIGatewayProxyEvent | S3Event | SQSEvent | SNSEvent | DynamoDBStreamEvent | KinesisStreamEvent | CloudWatchLogsEvent | ScheduledEvent | APIGatewayTokenAuthorizerEvent;
1
+ import type { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayTokenAuthorizerEvent, CloudWatchLogsEvent, DynamoDBStreamEvent, KinesisStreamEvent, S3Event, ScheduledEvent, SNSEvent, SQSEvent } from "aws-lambda";
2
+ export type ServerlessEvent = APIGatewayProxyEvent | APIGatewayProxyEventV2 | S3Event | SQSEvent | SNSEvent | DynamoDBStreamEvent | KinesisStreamEvent | CloudWatchLogsEvent | ScheduledEvent | APIGatewayTokenAuthorizerEvent;
@@ -0,0 +1,26 @@
1
+ /// <reference types="node" />
2
+ import type { APIGatewayProxyEventV2, Callback, Context, Handler } from "aws-lambda";
3
+ import { Stream } from "node:stream";
4
+ export type ServerlessResponseMeta = {
5
+ statusCode: number;
6
+ headers: Record<string, string>;
7
+ };
8
+ declare global {
9
+ const awsLambda: {
10
+ streamifyResponse(handler: Handler): unknown | Promise<unknown>;
11
+ HttpResponseStream: {
12
+ from(resStream: ServerlessResponseStream | unknown, meta: ServerlessResponseMeta): ServerlessResponseStream;
13
+ };
14
+ };
15
+ }
16
+ export type RequestHandler = (ev: APIGatewayProxyEventV2, streamResponse: ServerlessResponseStream, ctx?: Context, callback?: Callback) => unknown | Promise<unknown>;
17
+ export declare class ServerlessResponseStream extends Stream.Writable {
18
+ #private;
19
+ _meta: ServerlessResponseMeta;
20
+ constructor();
21
+ static setMeta(resStream: ServerlessResponseStream, meta: ServerlessResponseMeta): any;
22
+ static streamifyResponse(handler: RequestHandler): RequestHandler;
23
+ _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
24
+ setMeta(meta: ServerlessResponseMeta): void;
25
+ getBufferedData(): Buffer;
26
+ }
@@ -7,6 +7,8 @@ export * from "./domain/ServerlessContext.js";
7
7
  export * from "./domain/ServerlessEvent.js";
8
8
  export * from "./domain/ServerlessRequest.js";
9
9
  export * from "./domain/ServerlessResponse.js";
10
+ export * from "./domain/ServerlessResponseStream.js";
10
11
  export * from "./exports.js";
11
12
  export * from "./utils/getRequestId.js";
13
+ export * from "./utils/isInAWS.js";
12
14
  export * from "./utils/setResponseHeaders.js";
@@ -0,0 +1 @@
1
+ export declare function isInAWS(): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsed/platform-serverless",
3
- "version": "7.77.1",
3
+ "version": "7.78.0",
4
4
  "description": "Platform serverless module for Ts.ED Framework",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./lib/cjs/index.js",
@@ -19,21 +19,21 @@
19
19
  "build:ts": "tsc --build tsconfig.json && tsc --build tsconfig.esm.json"
20
20
  },
21
21
  "dependencies": {
22
- "@tsed/core": "7.77.1",
23
- "@tsed/exceptions": "7.77.1",
24
- "@tsed/json-mapper": "7.77.1",
25
- "@tsed/platform-exceptions": "7.77.1",
26
- "@tsed/platform-params": "7.77.1",
27
- "@tsed/schema": "7.77.1",
22
+ "@tsed/core": "7.78.0",
23
+ "@tsed/exceptions": "7.78.0",
24
+ "@tsed/json-mapper": "7.78.0",
25
+ "@tsed/platform-exceptions": "7.78.0",
26
+ "@tsed/platform-params": "7.78.0",
27
+ "@tsed/schema": "7.78.0",
28
28
  "encodeurl": "^2.0.0",
29
29
  "mime": "^3.0.0",
30
30
  "tslib": "2.6.1",
31
31
  "uuid": "^9.0.1"
32
32
  },
33
33
  "devDependencies": {
34
- "@tsed/barrels": "7.77.1",
35
- "@tsed/platform-serverless-testing": "7.77.1",
36
- "@tsed/typescript": "7.77.1",
34
+ "@tsed/barrels": "7.78.0",
35
+ "@tsed/platform-serverless-testing": "7.78.0",
36
+ "@tsed/typescript": "7.78.0",
37
37
  "@types/aws-lambda": "^8.10.136",
38
38
  "@types/encodeurl": "^1.0.2",
39
39
  "@types/mime": "^3.0.4",
@@ -42,7 +42,7 @@
42
42
  "jest": "^29.7.0"
43
43
  },
44
44
  "peerDependencies": {
45
- "@tsed/di": "7.77.1",
45
+ "@tsed/di": "7.78.0",
46
46
  "@tsed/logger": ">=6.7.5",
47
47
  "find-my-way": ">=7.0.0"
48
48
  },