@bitblit/ratchet-aws
Version:
Common tools for use with AWS browser and node
42 lines • 2.01 kB
JavaScript
export class LambdaEventDetector {
static isValidCronEvent(event) {
return event && event.source == 'aws.events' && event.resources && event.resources.length > 0;
}
static isValidSnsEvent(event) {
return event && event.Records && event.Records.length > 0 && event.Records[0].EventSource == 'aws:sns';
}
static isValidSqsEvent(event) {
return event && event.Records && event.Records.length > 0 && event.Records[0].eventSource == 'aws:sqs';
}
static isValidDynamoDBEvent(event) {
return event && event.Records && event.Records.length > 0 && event.Records[0].eventSource == 'aws:dynamodb';
}
static isValidS3Event(event) {
return event && event.Records && event.Records.length > 0 && event.Records[0].eventSource == 'aws:s3';
}
static isValidApiGatewayV2WithRequestContextEvent(event) {
return event && event.rawPath && event.requestContext && event.routeKey;
}
static isValidApiGatewayEvent(event) {
return event && event.httpMethod && event.path && event.requestContext;
}
static isValidApiGatewayAuthorizerEvent(event) {
return event && event.authorizationToken && event.methodArn;
}
static isSingleCronEvent(event) {
return this.isValidCronEvent(event) && LambdaEventDetector.isSingleEntryEvent(event, 'resources');
}
static isSingleSnsEvent(event) {
return this.isValidSnsEvent(event) && LambdaEventDetector.isSingleEntryEvent(event);
}
static isSingleDynamoDBEvent(event) {
return this.isValidDynamoDBEvent(event) && LambdaEventDetector.isSingleEntryEvent(event);
}
static isSingleS3Event(event) {
return this.isValidS3Event(event) && LambdaEventDetector.isSingleEntryEvent(event);
}
static isSingleEntryEvent(event, entryName = 'Records') {
return event && event[entryName] && event[entryName] instanceof Array && event[entryName].length === 1;
}
}
//# sourceMappingURL=lambda-event-detector.js.map