Skip to content

Commit 36ee07d

Browse files
authored
Merge branch 'master' into develop
2 parents ac8eb74 + 0456920 commit 36ee07d

3 files changed

Lines changed: 32 additions & 35 deletions

File tree

package.json

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
{
22
"name": "@ostro/serverless",
3-
"version": "1.3.11",
3+
"version": "1.3.13",
44
"description": "Serverless module for OstroJS",
55
"main": "serverless.js",
66
"scripts": {
7-
"test": "echo \"Error: no test specified\" && exit 1",
8-
"start": "node serverless.js"
7+
"test": "echo \"Error: no test specified\" && exit 1"
98
},
109
"dependencies": {
1110
},
1211
"engines": {
13-
"node": ">=12.0.0"
12+
"node": ">=14.0.0"
1413
},
1514
"engineStrict": true,
1615
"keywords": [
1716
"serverless",
1817
"nodejs serverless",
19-
"lambda"
18+
"lambda",
19+
"cloud function",
20+
"function"
2021
],
2122
"author": "amar",
2223
"license": "MIT",

serverless.js

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
1-
const { values } = require('lodash');
1+
22
const StreamRequest = require('./stream/request');
33
const StreamResponse = require('./stream/response');
4-
4+
const { resolveWithRequire } = require("./utils")
55
class Serverless {
66
constructor({ serverless }) {
77
this.stream();
88
const handler = this.handle()
9-
Object.defineProperty(this, "handler", {
10-
value: (event, context) => {
11-
return handler(event, context);
9+
Object.defineProperties(this, {
10+
handler: {
11+
value: (event, context) => handler(event, context)
12+
},
13+
$serverless: {
14+
value: serverless
1215
}
13-
})
14-
Object.defineProperty(this, "$config", {
15-
value: serverless
16-
})
16+
});
17+
this.entry(resolveWithRequire(serverless.handler))
1718
}
1819

1920
stream(request = StreamRequest, response = StreamResponse) {
@@ -56,25 +57,24 @@ class Serverless {
5657
}
5758

5859
handle() {
59-
if (!this.$entryPath) {
60-
this.loadMainModule(process.cwd() + '/serverless.js');
61-
}
6260
return (event, context) => {
6361
return new Promise((resolve) => {
64-
const request = new this.$request(new this.$streamRequest(event, context, this.$config.platform, this.$config.getway));
65-
const response = new this.$response(new this.$streamResponse(resolve, this.$config.platform, this.$config.getway))
62+
const serverlessPlateform = this.$serverless.platform || "generic";
63+
const serverlessGetway = this.$serverless.getway;
64+
const request = new this.$request(new this.$streamRequest(event, context, serverlessPlateform, serverlessGetway));
65+
const response = new this.$response(new this.$streamResponse(resolve, serverlessPlateform, serverlessGetway))
6666
Object.defineProperty(response, 'request', { value: request })
6767
this.$handler(request, response, (err) => {
68-
this.next(err, resolve);
68+
response.send(err)
6969
});
7070
});
7171
};
7272
}
7373

7474
entry(entryPath) {
75-
this.$entryPath = entryPath;
7675
this.loadMainModule(entryPath);
7776
}
77+
7878
loadMainModule(mainModulePath) {
7979
const mainPath = path.resolve(mainModulePath);
8080
const mainModule = require(mainPath);
@@ -89,20 +89,6 @@ class Serverless {
8989

9090
return mainModule;
9191
}
92-
93-
next(err, resolve) {
94-
if (err) {
95-
resolve({
96-
statusCode: 500,
97-
body: JSON.stringify({ message: 'Internal Server Error' }),
98-
});
99-
} else {
100-
resolve({
101-
statusCode: 404,
102-
body: JSON.stringify({ message: 'Not Found' }),
103-
});
104-
}
105-
};
10692
}
10793

10894
module.exports = Serverless;

utils.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,13 @@ exports.normalizeHeaders = function normalizeHeaders(headers, platform, subtype
7070
}
7171
return normalized;
7272
}
73+
74+
exports.resolveWithRequire = function resolveWithRequire(input, baseDir = process.cwd()) {
75+
const parts = input.split('.');
76+
const filePath = path.join(baseDir, ...parts.slice(0, -1)); // exclude handler
77+
try {
78+
return require.resolve(filePath);
79+
} catch (err) {
80+
return null; // or throw err for more detail
81+
}
82+
}

0 commit comments

Comments
 (0)