@samwen/lambda-helper
Version:
An effort to enable single lambda handles functionally the same requests from different sources: console test, sns, sqs, api gateway and api invoke. It also addresses AWS lambda EMFILE issue.
78 lines (59 loc) • 1.59 kB
JavaScript
;
const EventContext = require('./EventContext');
const Emfiles = require('./Emfiles');
module.exports = {
get_type_messages,
get_response,
start_emfiles_verify,
final_emfiles_check,
start,
get_type,
get_arns,
get_http,
get_messages,
get_remaining_time_ms,
get_memory_limit_mb,
done,
};
let emfiles;
let event_context;
function start(event, context) {
start_emfiles_verify();
event_context = new EventContext(event, context);
}
function done(max_emfiles_needed = 100) {
final_emfiles_check(max_emfiles_needed);
}
async function start_emfiles_verify() {
if (!emfiles) emfiles = new Emfiles();
emfiles.start_verify();
}
async function final_emfiles_check(max_emfiles_needed = 100, exit_process = true) {
emfiles?.final_check(max_emfiles_needed, exit_process)
}
function get_type_messages(event, context) {
event_context = new EventContext(event, context);
const {type, messages} = event_context;
return {type, messages};
}
function get_response(data = {status: 'OK'}, status_code = 200) {
return event_context?.get_response(data, status_code);
}
function get_type() {
return event_context?.get_type();
}
function get_http() {
return event_context?.get_http();
}
function get_arns() {
return event_context?.get_arns();
}
function get_messages() {
return event_context?.get_messages();
}
function get_remaining_time_ms() {
return event_context?.get_remaining_time_ms();
}
function get_memory_limit_mb() {
return event_context?.get_memory_limit_mb();
}