UNPKG

@bitblit/ratchet-epsilon-common

Version:

Tiny adapter to simplify building API gateway Lambda APIS

66 lines 2.18 kB
export class AwsUtil { static apiGatewayV2ToApiGatewayV1(srcEvt) { const rval = { requestContext: AwsUtil.apiGatewayV2RequestContextToApiGatewayV1RequestContext(srcEvt.requestContext), httpMethod: srcEvt.requestContext.http.method, path: srcEvt.requestContext.http.path, queryStringParameters: srcEvt.queryStringParameters, headers: srcEvt.headers, body: srcEvt.body, isBase64Encoded: srcEvt.isBase64Encoded, multiValueHeaders: null, multiValueQueryStringParameters: null, pathParameters: srcEvt.pathParameters, stageVariables: srcEvt.stageVariables, resource: null, }; return rval; } static apiGatewayV2RequestContextToApiGatewayV1RequestContext(srcEvt) { const rval = { accountId: srcEvt.accountId, apiId: srcEvt.apiId, authorizer: null, domainName: srcEvt.domainName, domainPrefix: srcEvt.domainPrefix, requestId: srcEvt.requestId, routeKey: srcEvt.routeKey, stage: srcEvt.stage, requestTime: srcEvt.time, requestTimeEpoch: srcEvt.timeEpoch, protocol: srcEvt.http.protocol, httpMethod: srcEvt.http.method, identity: null, path: srcEvt.http.path, resourceId: null, resourcePath: null, }; return rval; } static findInMap(toFind, map) { let rval = null; map.forEach((val, key) => { if (AwsUtil.matchExact(key, toFind)) { rval = val; } }); return rval; } static matchExact(r, str) { const match = str.match(r); return match != null && str == match[0]; } static resolvePotentialFunctionToResult(src, def) { let rval = def; if (src) { if (typeof src === 'function') { rval = src(); } else { rval = src; } } return rval; } } //# sourceMappingURL=aws-util.js.map