@bitblit/ratchet-epsilon-common
Version:
Tiny adapter to simplify building API gateway Lambda APIS
66 lines • 2.18 kB
JavaScript
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