UNPKG

@bitblit/ratchet-aws

Version:

Common tools for use with AWS browser and node

42 lines 2.01 kB
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