serverless-aws-lambda
Version:
AWS Application Load Balancer and API Gateway - Lambda dev tool for Serverless. Allows Express synthax in handlers. Supports packaging, local invoking and offline ALB, APG, S3, SNS, SQS, DynamoDB Stream server mocking.
2 lines (1 loc) • 3.8 kB
JavaScript
;var m=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var Q=Object.prototype.hasOwnProperty;var I=(o,n)=>{for(var r in n)m(o,r,{get:n[r],enumerable:!0})},k=(o,n,r,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let e of P(n))!Q.call(o,e)&&e!==r&&m(o,e,{get:()=>n[e],enumerable:!(a=q(n,e))||a.enumerable});return o};var A=o=>k(m({},"__esModule",{value:!0}),o);var g=(o,n,r)=>new Promise((a,e)=>{var s=i=>{try{d(r.next(i))}catch(t){e(t)}},u=i=>{try{d(r.throw(i))}catch(t){e(t)}},d=i=>i.done?a(i.value):Promise.resolve(i.value).then(s,u);d((r=r.apply(o,n)).next())});var L={};I(L,{default:()=>M,sqsPlugin:()=>b});module.exports=A(L);var D=(o,n)=>(n&&(n.override&&Object.entries(n.override).forEach(r=>{let[a,e]=r;a in o&&(o[a]=e)}),n.default&&Object.entries(n.default).forEach(r=>{let[a,e]=r;o[a]==null&&(o[a]=e)})),o),F=o=>{let{QueueName:n,ContentBasedDeduplication:r,DeduplicationScope:a,DelaySeconds:e,FifoQueue:s,FifoThroughputLimit:u,KmsDataKeyReusePeriodSeconds:d,KmsMasterKeyId:i,MaximumMessageSize:t,MessageRetentionPeriod:c,ReceiveMessageWaitTimeSeconds:h,VisibilityTimeout:R,Tags:y,RedrivePolicy:l}=o,p={QueueName:n};y&&Object.keys(y).length&&(p.tags=y);let f={};return typeof r!="undefined"&&(f.ContentBasedDeduplication=r),typeof a!="undefined"&&(f.DeduplicationScope=a),typeof e!="undefined"&&(f.DelaySeconds=e),typeof s!="undefined"&&(f.FifoQueue=s),typeof u!="undefined"&&(f.FifoThroughputLimit=u),typeof d!="undefined"&&(f.KmsDataKeyReusePeriodSeconds=d),typeof i!="undefined"&&(f.KmsMasterKeyId=i),typeof t!="undefined"&&(f.MaximumMessageSize=t),typeof c!="undefined"&&(f.MessageRetentionPeriod=c),typeof h!="undefined"&&(f.ReceiveMessageWaitTimeSeconds=h),typeof R!="undefined"&&(f.VisibilityTimeout=R),typeof l!="undefined"&&(f.RedrivePolicy=JSON.stringify({deadLetterTargetArn:l.deadLetterTargetArn,maxReceiveCount:l.maxReceiveCount})),n.endsWith(".fifo")&&(f.FifoQueue="true"),Object.keys(f).length&&(p.Attributes=f),p},v=(o,n,r)=>{let a=Object.values(o),e=s=>{if(a.findIndex(d=>d.QueueName==s)==-1){let d={QueueName:s};return a.push(d),!0}};return n.forEach(s=>{var u,d,i;s.sns.forEach(t=>{typeof t.redrivePolicy=="string"&&e(t.redrivePolicy)}),s.ddb.forEach(t=>{var c;((c=t.onFailure)==null?void 0:c.kind)=="sqs"&&e(t.onFailure.name)}),s.kinesis.forEach(t=>{var c;((c=t.onFailure)==null?void 0:c.kind)=="sqs"&&e(t.onFailure.name)}),((u=s.onError)==null?void 0:u.kind)=="sqs"&&e(s.onError.name),((d=s.onFailure)==null?void 0:d.kind)=="sqs"&&e(s.onFailure.name),((i=s.onSuccess)==null?void 0:i.kind)=="sqs"&&e(s.onSuccess.name),s.sqs.forEach(t=>{e(t.name)})}),a.forEach(s=>{s.RedrivePolicy&&e(s.RedrivePolicy.name)}),a.map(s=>F(D(s,r)))};var S=require("local-aws-sqs");var b=o=>{let n=(i,t)=>{},r,a,e=[],s=()=>g(void 0,null,function*(){u.pluginData.isReady=!0;for(let i of e)try{yield i()}catch(t){}}),u={name:"sqs-plugin",pluginData:{isReady:!1,onReady:i=>{typeof i=="function"?e.push(i):console.warn("onReady callback must be a function")}},onInit:function(){var i,t;if(!this.isDeploying&&!this.isPackaging){let c=this.serverless.service.provider.region;c&&(r=c),(t=(i=this.serverless.providers)==null?void 0:i.aws)!=null&&t.accountId&&(a=this.serverless.providers.aws.accountId)}},offline:{onReady(i,t){return g(this,null,function*(){this.getServices().sqs||(yield this.setServices({sqs:{region:"us-east-1",endpoint:`http://localhost:${i}/@sqs`,credentials:{accessKeyId:"fake",secretAccessKey:"fake"}}})),n=(0,S.createRequestHandler)({port:i,region:r,accountId:a,validateDlqDestination:!1,emulateQueueCreationLifecycle:!1,baseUrl:"/@sqs/",queues:v(this.resources.sqs,this.lambdas,o)}),s()})},request:[{method:"POST",filter:"/@sqs",callback:function(i,t){n(i,t)}}]}};return u},M=b;0&&(module.exports={sqsPlugin});