UNPKG

@walkeros/server-destination-aws

Version:

AWS server destination for walkerOS

1 lines 2.34 kB
var e=Object.defineProperty;((t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})})({},{Level:()=>a});var e2,a=((e2=a||{})[e2.ERROR=0]="ERROR",e2[e2.INFO=1]="INFO",e2[e2.DEBUG=2]="DEBUG",e2);function isAWSEnvironment(env){var _a;return Boolean(env&&"object"==typeof env&&"AWS"in env&&(null==(_a=env.AWS)?void 0:_a.FirehoseClient))}function getConfigFirehose(firehoseConfig,env){const{streamName:streamName,region:region="eu-central-1",config:config={}}=firehoseConfig;streamName||function(e2){throw new Error(String(e2))}("Firehose: Config custom streamName missing"),config.region||(config.region=region);let client=firehoseConfig.client;return!client&&isAWSEnvironment(env)&&(client=new env.AWS.FirehoseClient(config)),{streamName:streamName,client:client,region:region}}var push=async function(event,context){const{firehose:firehose}=context.config.settings||{};firehose&&async function(pushEvents,config,context){const{client:client,streamName:streamName}=config,{env:env,logger:logger}=context;if(!client)return{queue:pushEvents};const records=pushEvents.map(({event:event})=>({Data:Buffer.from(JSON.stringify(event))}));if(logger.debug("Calling AWS Firehose API",{stream:streamName,recordCount:records.length}),isAWSEnvironment(env))await client.send(new env.AWS.PutRecordBatchCommand({DeliveryStreamName:streamName,Records:records}));else{const{PutRecordBatchCommand:PutRecordBatchCommand}=await import("@aws-sdk/client-firehose");await client.send(new PutRecordBatchCommand({DeliveryStreamName:streamName,Records:records}))}null==logger||logger.debug("AWS Firehose API response",{ok:!0})}([{event:event}],firehose,context)},types_exports={},destinationFirehose={type:"aws-firehose",config:{},async init({config:partialConfig,env:env,logger:logger}){const config=function(partialConfig={},env){const settings=partialConfig.settings||{};return settings.firehose&&(settings.firehose=getConfigFirehose(settings.firehose,env)),{settings:settings}}(partialConfig,env);return function(e2,t){return typeof e2==typeof t}(config.settings,{})||logger.throw("Config settings invalid"),config},push:async(event,{config:config,collector:collector,env:env,logger:logger})=>await push(event,{config:config,collector:collector,env:env,logger:logger})};export{types_exports as DestinationFirehose,destinationFirehose};//# sourceMappingURL=index.mjs.map