@openrtb/converter
Version:
TypeScript converter library compliant with OpenRTB 2.6/3.0 and AdCOM 1.0 and Native-Ad 1.2
2 lines (1 loc) • 3.19 kB
JavaScript
var r=class{to(e){return{api:e.apis?.[0],w:e.w,h:e.h,wratio:e.wratio,hratio:e.hratio,adm:e.adm}}from(e){return{adm:e.adm,apis:e?.api?[e.api]:[],w:e.w,h:e.h,wratio:e.wratio,hratio:e.hratio}}};var o=class{to(e){let t=JSON.parse(e.adm||"{}");return{link:this.convertLink(t.link),asset:t.assets?.map(i=>this.convertAsset(i))||[]}}from(e){if(!e?.link)throw new Error("Link is required.");let t={link:this.convertLinkToResponse(e.link),assets:e.asset?.map(i=>this.convertAssetToResponse(i))||[]};return{adm:JSON.stringify(t)}}convertLink(e){return{url:e.url,urlfb:e.fallback,trkr:e.clicktrackers}}convertAsset(e){let t={id:e.id,req:e.required===1?1:0};return e.title&&(t.title=this.convertTitle(e.title)),e.img&&(t.image=this.convertImage(e.img)),e.data&&(t.data=this.convertData(e.data)),e.video&&(t.video=this.convertVideo(e.video)),e.link&&(t.link=this.convertLink(e.link)),t}convertTitle(e){return{text:e.text,len:e.len}}convertImage(e){return{url:e.url,w:e.w,h:e.h,type:e.type}}convertData(e){return{value:e.value,len:e.len,type:e.type}}convertLinkToResponse(e){return{url:e.url,fallback:e.urlfb,clicktrackers:e.trkr}}convertVideo(e){return{adm:e.vasttag}}convertAssetToResponse(e){let t={id:e.id,required:e.req===1?1:0};return e.title&&(t.title=this.convertTitleToResponse(e.title)),e.image&&(t.img=this.convertImageToResponse(e.image)),e.data&&(t.data=this.convertDataToResponse(e.data)),e.video&&(t.video=this.convertVideoToResponse(e.video)),t}convertTitleToResponse(e){return{text:e.text,len:e.len}}convertImageToResponse(e){return{url:e.url,w:e.w,h:e.h,type:e.type}}convertDataToResponse(e){return{value:e.value,len:e.len,type:e.type}}convertVideoToResponse(e){return{vasttag:e.adm||""}}};import{v4 as d}from"uuid";var s=class{to(e){let t={id:e.adid||d(),adomain:e.adomain,bundle:e.bundle?[e.bundle]:[],iurl:e.iurl,cat:e.cat,cattax:e.cattax,lang:e.language,attr:e.attr};if(e.mtype===1){let n=new r().to(e);t.display=n}else if(e.mtype===4){let n=new o().to(e);t.display={native:n}}return t}from(e){let t={adid:e.id,adomain:e.adomain,bundle:e.bundle?e.bundle[0]:void 0,iurl:e.iurl,cat:e.cat,cattax:e.cattax,language:e.lang,attr:e.attr};if(e.display?.native){let i=new o;t.adm=i.from(e).adm}else if(e.display){let i=new r;t={...t,...i.from(e)}}return t}};var p=class{to(e){return{asset:this.convertAssetsToAssetFormats(e.assets)}}convertAssetsToAssetFormats(e){return e.map(t=>({id:t.id,req:t.required,title:t.title,img:t.img,data:t.data,video:t.video?this.convertV12VideoToVideoPlacement(t.video):void 0}))}convertV12VideoToVideoPlacement(e){return{mime:e.mimes,ctype:e.protocols,maxdur:e.maxduration,mindur:e.minduration}}from(e){return{assets:this.convertAssetFormatsToAssets(e.asset),ver:"1.2"}}convertAssetFormatsToAssets(e){return e.map(t=>{let i={id:t.id,required:t.req};return t.title&&(i.title=t.title),t.img&&(i.img=t.img),t.data&&(i.data=t.data),t.video&&(i.video=this.convertVideoPlacementToV12Video(t.video)),i})}convertVideoPlacementToV12Video(e){return{mimes:e.mime,protocols:e.ctype,maxduration:e.maxdur||500,minduration:e.mindur||0}}};export{p as V12NativeRequestToNativeFormatConverter,s as V26BidToAdConverter,r as V26BidToDisplayConverter,o as V26BidToNativeConverter};