tracking-params
Version:
Easily get and remove unwanted tracking parameters from URLs.
3 lines (2 loc) • 2.19 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var a=[{domain:".",params:["__twitter_impression","_hsenc","_openstat","action_object_map","action_ref_map","action_type_map","adgroupid","amp","campaignid","CNDID","fb_action_ids","fb_action_types","fb_ref","fb_source","fbclid","feeditemid","ga_campaign","ga_content","ga_medium","ga_place","ga_source","ga_term","gclid","gs_l","hmb_campaign","hmb_medium","hmb_source","mbid","mc_cid","mc_eid","mkt_tok",/pd_rd\w+/,/pf_rd\w+/,"referrer","spJobID","spMailingID","spReportId","spUserID",/utm_\w+/,"wt_mc_o","WT.mc_ev","WT.mc_id","WT.srch","yclid"]},{domain:"amazon",params:["_encoding","creative","creativeASIN","dchild","ie","linkCode","linkId","orig","psc","qid","ref","refRID","sr","tag"],handler:function(a){var e=new URL(a.toString()),r=e.pathname.match(/ref=\w+/);if(null==r?void 0:r.length){var n=e.pathname.indexOf(r[0]);e.pathname=e.pathname.substring(0,n);var t=[{key:"ref",value:a.pathname.substring(n+4)}];return{newCleanUrl:e.toString(),newParams:t}}}},{domain:"bing",params:["cvid","form","pq","qs","sc","sk","sp"]},{domain:"google",params:["ei","gws_rd","sei","ved"]},{domain:"instagram",params:["igshid"]},{domain:"nytimes",params:["emc","partner"]},{domain:"reddit",params:["context","ref","ref_source","st"]},{domain:"twitter",params:["vertical","src","s","ref_src","ref_url"]},{domain:"youtube",params:["ab_channel","attr_tag","feature","kw"]}],e=function(e){var r=new URL(e),n={url:e,isDirty:!1,trackingParams:[],cleanUrl:e};return r.searchParams.toString().length?(a.forEach((function(a){var e;if(r.hostname.includes(a.domain)&&((e={},r.searchParams.forEach((function(a,r){e[r]=a})),Object.entries(e)).forEach((function(e){var t=e[0],i=e[1];a.params.forEach((function(a){("string"==typeof a?t===a:a.test(t))&&(n.isDirty=!0,n.trackingParams.push({key:t,value:i}),r.searchParams.delete(t),n.cleanUrl=r.toString())}))})),"function"==typeof a.handler)){var t,i=a.handler(r);i&&((t=n.trackingParams).push.apply(t,i.newParams),n.cleanUrl=i.newCleanUrl)}})),n):n};exports.cleanUrl=function(a){return e(a).cleanUrl},exports.getTrackingData=e;
//# sourceMappingURL=tracking-params.cjs.production.min.js.map