@bitblit/epsilon
Version:
Tiny adapter to simplify building API gateway Lambda APIS
34 lines (33 loc) • 1.63 kB
TypeScript
import { Context, ProxyResult, SNSEvent } from 'aws-lambda';
import { BackgroundConfig } from '../config/background/background-config';
import { InternalBackgroundEntry } from './internal-background-entry';
import { EpsilonLambdaEventHandler } from '../config/epsilon-lambda-event-handler';
import { BackgroundManagerLike } from './manager/background-manager-like';
import { ModelValidator } from '@bitblit/ratchet/model-validator';
/**
* We use a FIFO queue so that 2 different Lambdas don't both work on the same
* thing at the same time.
*/
export declare class BackgroundHandler implements EpsilonLambdaEventHandler<SNSEvent> {
private cfg;
private mgr;
private modelValidator?;
private processors;
private validator;
constructor(cfg: BackgroundConfig, mgr: BackgroundManagerLike, modelValidator?: ModelValidator);
extractLabel(evt: SNSEvent, context: Context): string;
handlesEvent(evt: any): boolean;
isBackgroundSNSEvent(event: any): boolean;
isBackgroundStartSnsEvent(event: any): boolean;
isBackgroundImmediateFireEvent(event: any): boolean;
parseImmediateFireBackgroundEntry(event: any): InternalBackgroundEntry<any>;
processEvent(event: any, context: Context): Promise<ProxyResult>;
private takeAndProcessSingleBackgroundQueueEntry;
private safeWriteToLogger;
private conditionallyStartTransactionLog;
private conditionallyCompleteTransactionLog;
private conditionallyRunErrorProcessor;
private fireListenerEvent;
processSingleBackgroundEntry(inE: InternalBackgroundEntry<any>): Promise<boolean>;
getConfig(): BackgroundConfig;
}