diff --git a/index.js b/index.js index c8a217b..16fdc40 100644 --- a/index.js +++ b/index.js @@ -16,6 +16,12 @@ const { isApiGatewayContext, isApiGatewayV2Context, isAlbContext, + isApiGatewayEvent, + isApiGatewayV2Event, + isAlbEvent, + isApiGatewayRequest, + isApiGatewayV2Request, + isAlbRequest, } = require('./lib/typeguards'); class API { @@ -564,3 +570,9 @@ module.exports.default = module.exports; module.exports.isApiGatewayContext = isApiGatewayContext; module.exports.isApiGatewayV2Context = isApiGatewayV2Context; module.exports.isAlbContext = isAlbContext; +module.exports.isApiGatewayEvent = isApiGatewayEvent; +module.exports.isApiGatewayV2Event = isApiGatewayV2Event; +module.exports.isAlbEvent = isAlbEvent; +module.exports.isApiGatewayRequest = isApiGatewayRequest; +module.exports.isApiGatewayV2Request = isApiGatewayV2Request; +module.exports.isAlbRequest = isAlbRequest; diff --git a/lib/typeguards.js b/lib/typeguards.js index 7188004..2897df9 100644 --- a/lib/typeguards.js +++ b/lib/typeguards.js @@ -1,19 +1,49 @@ 'use strict'; const isApiGatewayContext = (context) => { - return 'identity' in context; + return context && 'identity' in context; }; const isApiGatewayV2Context = (context) => { - return 'http' in context; + return context && 'http' in context; }; const isAlbContext = (context) => { - return 'elb' in context; + return context && 'elb' in context; +}; + +const isApiGatewayEvent = (event) => { + return event && event.requestContext && 'identity' in event.requestContext; +}; + +const isApiGatewayV2Event = (event) => { + return event && event.requestContext && 'http' in event.requestContext; +}; + +const isAlbEvent = (event) => { + return event && event.requestContext && 'elb' in event.requestContext; +}; + +const isApiGatewayRequest = (req) => { + return req && req.requestContext && 'identity' in req.requestContext; +}; + +const isApiGatewayV2Request = (req) => { + return req && req.requestContext && 'http' in req.requestContext; +}; + +const isAlbRequest = (req) => { + return req && req.requestContext && 'elb' in req.requestContext; }; module.exports = { isApiGatewayContext, isApiGatewayV2Context, isAlbContext, + isApiGatewayEvent, + isApiGatewayV2Event, + isAlbEvent, + isApiGatewayRequest, + isApiGatewayV2Request, + isAlbRequest, };