UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

2 lines (1 loc) 1.2 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.WebSocketLambdaIntegration=void 0;var aws_apigatewayv2_1=()=>{var tmp=require("../../../aws-apigatewayv2");return aws_apigatewayv2_1=()=>tmp,tmp},aws_iam_1=()=>{var tmp=require("../../../aws-iam");return aws_iam_1=()=>tmp,tmp},core_1=()=>{var tmp=require("../../../core");return core_1=()=>tmp,tmp};class WebSocketLambdaIntegration extends aws_apigatewayv2_1().WebSocketRouteIntegration{constructor(id,handler){super(id),this.handler=handler,this._id=id}bind(options){const route=options.route;this.handler.addPermission(`${this._id}-Permission`,{scope:options.scope,principal:new(aws_iam_1()).ServicePrincipal("apigateway.amazonaws.com"),sourceArn:core_1().Stack.of(route).formatArn({service:"execute-api",resource:route.webSocketApi.apiId,resourceName:`*${route.routeKey}`})});const integrationUri=core_1().Stack.of(route).formatArn({service:"apigateway",account:"lambda",resource:"path/2015-03-31/functions",resourceName:`${this.handler.functionArn}/invocations`});return{type:aws_apigatewayv2_1().WebSocketIntegrationType.AWS_PROXY,uri:integrationUri}}}exports.WebSocketLambdaIntegration=WebSocketLambdaIntegration;