minimonolith 0.6.2 → 0.6.3
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/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import http from 'http';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { getServerHandler } from './serverHandler.js';
|
|
4
4
|
|
|
5
|
-
const runLambdaServer = (
|
|
6
|
-
const serverHandler =
|
|
5
|
+
const runLambdaServer = (lambdaHandler, port) => {
|
|
6
|
+
const serverHandler = getServerHandler(lambdaHandler);
|
|
7
7
|
const server = http.createServer(serverHandler);
|
|
8
8
|
server.listen(port);
|
|
9
9
|
}
|
|
@@ -10,24 +10,39 @@ const reqBodyPromise = req => {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
const parseJWT = token => {
|
|
13
|
-
|
|
14
|
-
return tokenString;
|
|
13
|
+
return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString());
|
|
15
14
|
}
|
|
16
15
|
|
|
17
|
-
const
|
|
16
|
+
const putCORS = res => {
|
|
17
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
18
|
+
res.setHeader('Access-Control-Request-Method', '*');
|
|
19
|
+
res.setHeader('Access-Control-Allow-Methods', 'OPTIONS,GET,POST,PUT,PATCH,DELETE');
|
|
20
|
+
res.setHeader('Access-Control-Allow-Headers', '*');
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const getEvent = (req, queryString, token, body) => {
|
|
24
|
+
return {
|
|
25
|
+
path: req.url,
|
|
26
|
+
httpMethod: req.method,
|
|
27
|
+
queryStringParameters: queryString,
|
|
28
|
+
requestContext: {
|
|
29
|
+
http: { path: req.url, method: req.method, },
|
|
30
|
+
authorizer: { jwt: { claims: token }, },
|
|
31
|
+
},
|
|
32
|
+
headers: {
|
|
33
|
+
accept: req.headers.accept,
|
|
34
|
+
'User-Agent': req.headers['user-agent']
|
|
35
|
+
},
|
|
36
|
+
body,
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const getServerHandler = lambdaHandler => async (req, res) => {
|
|
18
41
|
try {
|
|
19
|
-
res
|
|
20
|
-
|
|
21
|
-
res.setHeader('Access-Control-Allow-Methods', 'OPTIONS,GET,POST,PUT,PATCH,DELETE');
|
|
22
|
-
res.setHeader('Access-Control-Allow-Headers', '*');
|
|
23
|
-
if (req.method === 'OPTIONS') {
|
|
24
|
-
res.writeHead(200);
|
|
25
|
-
res.end();
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
42
|
+
putCORS(res);
|
|
43
|
+
if (req.method === 'OPTIONS') { res.writeHead(200); res.end(); return; }
|
|
28
44
|
|
|
29
|
-
const token =
|
|
30
|
-
req.headers.authorization && req.headers.authorization.startsWith('Bearer ') ?
|
|
45
|
+
const token = req.headers.authorization && req.headers.authorization.startsWith('Bearer ') ?
|
|
31
46
|
parseJWT(req.headers.authorization.split(" ")[1]) : null;
|
|
32
47
|
|
|
33
48
|
const tempQueryString = url.parse(req.url, true).query;
|
|
@@ -36,31 +51,12 @@ const serverHandlerContext = lambdaAPIHandler => async (req, res) => {
|
|
|
36
51
|
const tempBody = await reqBodyPromise(req);
|
|
37
52
|
const body = tempBody? tempBody : undefined;
|
|
38
53
|
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
httpMethod: req.method,
|
|
42
|
-
queryStringParameters: queryString,
|
|
43
|
-
requestContext: {
|
|
44
|
-
http: {
|
|
45
|
-
path: req.url,
|
|
46
|
-
method: req.method,
|
|
47
|
-
},
|
|
48
|
-
authorizer: {
|
|
49
|
-
jwt: { claims: token },
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
headers: {
|
|
53
|
-
accept: req.headers.accept,
|
|
54
|
-
'User-Agent': req.headers['user-agent']
|
|
55
|
-
},
|
|
56
|
-
body,
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
const resL = await lambdaAPIHandler(e, null)
|
|
54
|
+
const event = getEvent(req, queryString, token, body);
|
|
55
|
+
const resL = await lambdaHandler(event, null)
|
|
60
56
|
|
|
61
57
|
res.statusCode = resL.statusCode;
|
|
62
58
|
res.end(resL.body);
|
|
63
59
|
} catch(err) { console.log(err); }
|
|
64
60
|
}
|
|
65
61
|
|
|
66
|
-
export {
|
|
62
|
+
export { getServerHandler };
|