@tsed/platform-serverless 7.78.0 → 7.78.1
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/jest.config.js +2 -2
- package/lib/cjs/domain/ServerlessResponseStream.js +22 -5
- package/lib/cjs/domain/ServerlessResponseStream.js.map +1 -1
- package/lib/esm/domain/ServerlessResponseStream.js +22 -5
- package/lib/esm/domain/ServerlessResponseStream.js.map +1 -1
- package/lib/types/domain/ServerlessResponseStream.d.ts +2 -1
- package/package.json +11 -11
package/jest.config.js
CHANGED
|
@@ -22,20 +22,37 @@ class ServerlessResponseStream extends node_stream_1.Stream.Writable {
|
|
|
22
22
|
// Check for global awslambda
|
|
23
23
|
if ((0, isInAWS_1.isInAWS)()) {
|
|
24
24
|
// @ts-ignore
|
|
25
|
-
return awslambda.streamifyResponse(
|
|
25
|
+
return awslambda.streamifyResponse(async (event, responseStream, context) => {
|
|
26
|
+
const isFallbackMode = context === undefined;
|
|
27
|
+
if (context === undefined) {
|
|
28
|
+
context = responseStream;
|
|
29
|
+
responseStream = new ServerlessResponseStream();
|
|
30
|
+
console.warn({
|
|
31
|
+
event: "WRONG_AWS_STREAM_CONFIGURATION",
|
|
32
|
+
message: "The lambda didn't receive a ResponseStream from AWS. Ts.ED therefore generated a ServerlessResponseStream as a fallback. This mode is not optimized for use in PRODUCTION. Please check the AWS configuration of your lambda."
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
await handler(event, responseStream, context);
|
|
36
|
+
if (isFallbackMode) {
|
|
37
|
+
return ServerlessResponseStream.buildResponse(responseStream);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
26
40
|
}
|
|
27
41
|
else {
|
|
28
42
|
return async (event, response, context) => {
|
|
29
43
|
const args = patchArgs([event, response, context]);
|
|
30
44
|
const responseStream = args[1];
|
|
31
45
|
await handler(...args);
|
|
32
|
-
return
|
|
33
|
-
...responseStream._meta,
|
|
34
|
-
body: responseStream.getBufferedData().toString()
|
|
35
|
-
};
|
|
46
|
+
return ServerlessResponseStream.buildResponse(responseStream);
|
|
36
47
|
};
|
|
37
48
|
}
|
|
38
49
|
}
|
|
50
|
+
static buildResponse(responseStream) {
|
|
51
|
+
return {
|
|
52
|
+
...responseStream._meta,
|
|
53
|
+
body: responseStream.getBufferedData().toString()
|
|
54
|
+
};
|
|
55
|
+
}
|
|
39
56
|
// streams, `chunk` may be any JavaScript value.
|
|
40
57
|
_write(chunk, encoding, callback) {
|
|
41
58
|
this.#response.push(Buffer.from(chunk, encoding));
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"ServerlessResponseStream.js","sourceRoot":"","sources":["../../../src/domain/ServerlessResponseStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,20 +19,37 @@ export class ServerlessResponseStream extends Stream.Writable {
|
|
|
19
19
|
// Check for global awslambda
|
|
20
20
|
if (isInAWS()) {
|
|
21
21
|
// @ts-ignore
|
|
22
|
-
return awslambda.streamifyResponse(
|
|
22
|
+
return awslambda.streamifyResponse(async (event, responseStream, context) => {
|
|
23
|
+
const isFallbackMode = context === undefined;
|
|
24
|
+
if (context === undefined) {
|
|
25
|
+
context = responseStream;
|
|
26
|
+
responseStream = new ServerlessResponseStream();
|
|
27
|
+
console.warn({
|
|
28
|
+
event: "WRONG_AWS_STREAM_CONFIGURATION",
|
|
29
|
+
message: "The lambda didn't receive a ResponseStream from AWS. Ts.ED therefore generated a ServerlessResponseStream as a fallback. This mode is not optimized for use in PRODUCTION. Please check the AWS configuration of your lambda."
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
await handler(event, responseStream, context);
|
|
33
|
+
if (isFallbackMode) {
|
|
34
|
+
return ServerlessResponseStream.buildResponse(responseStream);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
23
37
|
}
|
|
24
38
|
else {
|
|
25
39
|
return async (event, response, context) => {
|
|
26
40
|
const args = patchArgs([event, response, context]);
|
|
27
41
|
const responseStream = args[1];
|
|
28
42
|
await handler(...args);
|
|
29
|
-
return
|
|
30
|
-
...responseStream._meta,
|
|
31
|
-
body: responseStream.getBufferedData().toString()
|
|
32
|
-
};
|
|
43
|
+
return ServerlessResponseStream.buildResponse(responseStream);
|
|
33
44
|
};
|
|
34
45
|
}
|
|
35
46
|
}
|
|
47
|
+
static buildResponse(responseStream) {
|
|
48
|
+
return {
|
|
49
|
+
...responseStream._meta,
|
|
50
|
+
body: responseStream.getBufferedData().toString()
|
|
51
|
+
};
|
|
52
|
+
}
|
|
36
53
|
// streams, `chunk` may be any JavaScript value.
|
|
37
54
|
_write(chunk, encoding, callback) {
|
|
38
55
|
this.#response.push(Buffer.from(chunk, encoding));
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"ServerlessResponseStream.js","sourceRoot":"","sources":["../../../src/domain/ServerlessResponseStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,13 +13,14 @@ declare global {
|
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
-
export type RequestHandler = (ev: APIGatewayProxyEventV2, streamResponse
|
|
16
|
+
export type RequestHandler = (ev: APIGatewayProxyEventV2, streamResponse?: ServerlessResponseStream, ctx?: Context, callback?: Callback) => unknown | Promise<unknown>;
|
|
17
17
|
export declare class ServerlessResponseStream extends Stream.Writable {
|
|
18
18
|
#private;
|
|
19
19
|
_meta: ServerlessResponseMeta;
|
|
20
20
|
constructor();
|
|
21
21
|
static setMeta(resStream: ServerlessResponseStream, meta: ServerlessResponseMeta): any;
|
|
22
22
|
static streamifyResponse(handler: RequestHandler): RequestHandler;
|
|
23
|
+
private static buildResponse;
|
|
23
24
|
_write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
|
|
24
25
|
setMeta(meta: ServerlessResponseMeta): void;
|
|
25
26
|
getBufferedData(): Buffer;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/platform-serverless",
|
|
3
|
-
"version": "7.78.
|
|
3
|
+
"version": "7.78.1",
|
|
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.78.
|
|
23
|
-
"@tsed/exceptions": "7.78.
|
|
24
|
-
"@tsed/json-mapper": "7.78.
|
|
25
|
-
"@tsed/platform-exceptions": "7.78.
|
|
26
|
-
"@tsed/platform-params": "7.78.
|
|
27
|
-
"@tsed/schema": "7.78.
|
|
22
|
+
"@tsed/core": "7.78.1",
|
|
23
|
+
"@tsed/exceptions": "7.78.1",
|
|
24
|
+
"@tsed/json-mapper": "7.78.1",
|
|
25
|
+
"@tsed/platform-exceptions": "7.78.1",
|
|
26
|
+
"@tsed/platform-params": "7.78.1",
|
|
27
|
+
"@tsed/schema": "7.78.1",
|
|
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.78.
|
|
35
|
-
"@tsed/platform-serverless-testing": "7.78.
|
|
36
|
-
"@tsed/typescript": "7.78.
|
|
34
|
+
"@tsed/barrels": "7.78.1",
|
|
35
|
+
"@tsed/platform-serverless-testing": "7.78.1",
|
|
36
|
+
"@tsed/typescript": "7.78.1",
|
|
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.78.
|
|
45
|
+
"@tsed/di": "7.78.1",
|
|
46
46
|
"@tsed/logger": ">=6.7.5",
|
|
47
47
|
"find-my-way": ">=7.0.0"
|
|
48
48
|
},
|