Skip to content

Commit fdba663

Browse files
authored
Merge pull request #22 from ostrojs/develop
Develop
2 parents 8795791 + 1467e6d commit fdba663

2 files changed

Lines changed: 26 additions & 17 deletions

File tree

serverless.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@ class Serverless {
88
const handler = this.handle()
99
Object.defineProperties(this, {
1010
handler: {
11-
value: (event, context) => handler(event, context)
11+
value: handler
1212
},
13-
$serverless: {
13+
$config: {
1414
value: serverless
1515
}
1616
});
17+
1718
this.entry(resolveWithRequire(serverless.handler))
1819
}
1920

@@ -59,8 +60,8 @@ class Serverless {
5960
handle() {
6061
return (event, context) => {
6162
return new Promise((resolve) => {
62-
const serverlessPlateform = this.$serverless.platform || "generic";
63-
const serverlessGetway = this.$serverless.getway;
63+
const serverlessPlateform = this.$config.platform || "generic";
64+
const serverlessGetway = this.$config.getway;
6465
const request = new this.$request(new this.$streamRequest(event, context, serverlessPlateform, serverlessGetway));
6566
const response = new this.$response(new this.$streamResponse(resolve, serverlessPlateform, serverlessGetway))
6667
Object.defineProperty(response, 'request', { value: request })
@@ -74,7 +75,7 @@ class Serverless {
7475
entry(entryPath) {
7576
this.loadMainModule(entryPath);
7677
}
77-
78+
7879
loadMainModule(mainModulePath) {
7980
const mainPath = path.resolve(mainModulePath);
8081
const mainModule = require(mainPath);

stream/response.js

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@ const { normalizeHeaders } = require('../utils');
44

55
class Response extends ServerResponse {
66
constructor(resolve, platform, getwayType) {
7-
super({ writable: true } instanceof Writable ? { writable: true } : new Writable());
7+
const dummyWritable = new Writable({
8+
write(chunk, encoding, callback) {
9+
callback(); // noop
10+
}
11+
});
12+
13+
super(dummyWritable);
814

915
this._resolve = resolve;
1016
this._chunks = [];
@@ -27,10 +33,9 @@ class Response extends ServerResponse {
2733
if (chunk) this.write(chunk);
2834

2935
const result = this.toJSON();
30-
3136
this._resolve(result);
32-
33-
return super.end(...args);
37+
38+
return super.end(null, ...args);
3439
}
3540

3641
encode(encoding) {
@@ -52,21 +57,24 @@ class Response extends ServerResponse {
5257
const isBase64Encoded = this.isBase64Encoded();
5358
const body = isBase64Encoded ? buffer.toString('base64') : buffer.toString('utf8');
5459

55-
const headers = normalizeHeaders(this.getHeaders(), this._platform, this._getwayType)
56-
let cookies = '';
60+
const headers = normalizeHeaders(this.getHeaders(), this._platform, this._getwayType);
61+
62+
headers['content-length'] = buffer.length;
63+
64+
let cookies = undefined;
5765
if (this.isPlatform('aws')) {
5866
const setCookieKey = Object.keys(headers).find(
5967
key => key.toLowerCase() === 'set-cookie'
6068
);
61-
cookies = setCookieKey ? headers[setCookieKey] : undefined;
6269
if (setCookieKey) {
70+
cookies = headers[setCookieKey];
6371
delete headers[setCookieKey];
6472
}
6573
}
6674

67-
const platform = this._platform;
6875
const statusCode = this.statusCode || 200;
69-
switch (platform) {
76+
77+
switch (this._platform) {
7078
case 'azure':
7179
return {
7280
status: statusCode,
@@ -85,14 +93,14 @@ class Response extends ServerResponse {
8593
headers,
8694
body,
8795
cookies,
88-
isBase64Encoded
89-
}
96+
isBase64Encoded,
97+
};
9098
default:
9199
return {
92100
statusCode,
93101
headers,
94102
body,
95-
isBase64Encoded
103+
isBase64Encoded,
96104
};
97105
}
98106
}

0 commit comments

Comments
 (0)