Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
return async (req: Request, res: Response, next: NextFunction) => {
const { path, method, query, headers, body } = req;
if (!pathRegex.test(path)) {
return next();
}
if (
method !== "GET" &&
method !== "POST" &&
method !== "PUT" &&
method !== "DELETE"
) {
return next();
}
const serverLogic = new ServerLogic(serverParams);
const encodedHttpRequest: EncodedHttpRequest = {
method,
headers: headers as EncodedHttpRequest["headers"],
path,
qsParams: query
};
if (!body) {
encodedHttpRequest.body = await getRawBody(req, true);
} else if (typeof body === "object") {
encodedHttpRequest.parsedBody = body;
} else {
encodedHttpRequest.body = body;
}
const response = await serverLogic.handleRequest(encodedHttpRequest);
res
return async (
event: LambdaEvent,
context: LambdaContext,
cb: LambdaCallback
): Promise => {
/**
* Universal server logic.
* Offers the flow: EncodedHttpRequest => EncodedHttpResponse
*/
const logic = new ServerLogic(params);
const encodedHttpRequest = {
method: event.httpMethod,
path: event.path,
body: event.body,
headers: event.headers,
qsParams: event.queryStringParameters
};
const encodedHttpResponse = await logic.handleRequest(encodedHttpRequest);
cb(null, encodedHttpResponse);
};
};
constructor(server: http.Server | https.Server, params: GeneralServerParams) {
this.server = server;
this.logic = new ServerLogic(params);
}
/**