@heimdallr-sdk/wx-request
Version:
2 lines (1 loc) • 3.95 kB
JavaScript
var e,t=((e=t||{}).NAME="@heimdallr-sdk",e),E=(e=>(e[e.FATAL=1]="FATAL",e[e.ERROR=2]="ERROR",e[e.WARN=3]="WARN",e[e.INFO=4]="INFO",e[e.DEBUG=5]="DEBUG",e))(E||{}),O=(e=>(e.SESSION_ID="HEIMDALLR_SDK_SESSION_ID",e.USER_ID="HEIMDALLR_SDK_USER_ID",e.APP="HEIMDALLR_SDK_APP_ID",e))(O||{}),r=(e=>(e.GET="GET",e.POST="POST",e.PUT="PUT",e.DELETE="DELETE",e))(r||{}),R=(e=>(e[e.LIFECYCLE=1]="LIFECYCLE",e[e.ERROR=2]="ERROR",e[e.PERFORMANCE=3]="PERFORMANCE",e[e.API=4]="API",e[e.DOM=5]="DOM",e[e.ROUTE=6]="ROUTE",e[e.CONSOLE=7]="CONSOLE",e[e.RECORD=8]="RECORD",e[e.VUE=9]="VUE",e[e.CUSTOMER=10]="CUSTOMER",e[e.EXTEND=11]="EXTEND",e))(R||{}),s=(e=>(e[e.BEACON=1]="BEACON",e[e.IMG=2]="IMG",e[e.GET=3]="GET",e[e.POST=4]="POST",e))(s||{}),n=(e=>(e.LOG="log",e.INFO="info",e.WARN="warn",e.ERROR="error",e.ASSERT="assert",e))(n||{}),a=(e=>(e[e.XHR=41]="XHR",e[e.FETCH=42]="FETCH",e))(a||{}),o=(e=>(e[e.HASH=61]="HASH",e[e.HISTORY=62]="HISTORY",e))(o||{}),i=(e=>(e.LOCAL="local",e.SESSION="session",e.COOKIE="cookie",e.GLOBAL="global",e))(i||{}),L=(e=>(e[e.LOAD=11]="LOAD",e[e.UNLOAD=12]="UNLOAD",e))(L||{}),C=(e=>(e[e.MOBILE=1]="MOBILE",e[e.PC=2]="PC",e))(C||{}),l=(e=>(e[e.BROWSER=1]="BROWSER",e[e.WECHAT=2]="WECHAT",e[e.NODE=3]="NODE",e))(l||{}),A=(e=>(e[e.ROUTE=11]="ROUTE",e[e.CLICK=12]="CLICK",e[e.CONSOLE=13]="CONSOLE",e[e.XHR=14]="XHR",e[e.FETCH=15]="FETCH",e[e.UNHANDLEDREJECTION=16]="UNHANDLEDREJECTION",e[e.RESOURCE=17]="RESOURCE",e[e.CODE_ERROR=18]="CODE_ERROR",e[e.CUSTOMER=19]="CUSTOMER",e[e.FRAMEWORK=20]="FRAMEWORK",e[e.LIFECYCLE=21]="LIFECYCLE",e[e.CRASH=22]="CRASH",e))(A||{}),T=(e=>(e[e.API=21]="API",e[e.ROUTE=22]="ROUTE",e[e.CLICK=23]="CLICK",e[e.ERROR=24]="ERROR",e[e.LIFECYCLE=25]="LIFECYCLE",e[e.CUSTOMER=26]="CUSTOMER",e))(T||{});const I=e=>{if(!e)return"";/^[a-zA-Z]+:\/\//.test(e)||(e=e.startsWith("/")?`http://dummyhost${e}`:`http://${e}`);const t=e.match(/^[a-zA-Z]+:\/\/(?:[^/?#]*@)?([^/?#]*)(\/[^?#]*)?/);let E=(null==t?void 0:t[2])||"";return E.endsWith("/")&&E.length>1&&(E=E.slice(0,-1)),E||"/"};var c=(e=>(e.REQUEST="request",e.DOWNLOAD_FILE="downloadFile",e.UPLOAD_FILE="uploadFile",e))(c||{}),S=Object.defineProperty,D=Object.defineProperties,u=Object.getOwnPropertyDescriptors,x=Object.getOwnPropertySymbols,N=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable,U=(e,t,E)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:E}):e[t]=E,f=(e,t)=>{for(var E in t||(t={}))N.call(t,E)&&U(e,E,t[E]);if(x)for(var E of x(t))P.call(t,E)&&U(e,E,t[E]);return e};function d(e={}){const{ignoreUrls:t=[],reportResponds:O=!1}=e;return{name:"wxRequestPlugin",monitor(e){const{initUrl:E,uploadUrl:R}=this.getContext(),s=this,n=[...t,R,E].map((e=>I(e)));[c.REQUEST,c.DOWNLOAD_FILE,c.UPLOAD_FILE].forEach((t=>{const E=wx[t];Object.defineProperty(wx,t,{writable:!0,enumerable:!0,configurable:!0,value:function(...R){const a=R[0],{url:o}=a;if(n.includes(I(o)))return E.call(this,a);let i,L="";switch(L=a.method?a.method:t===c.DOWNLOAD_FILE?r.GET:r.POST,t){case c.REQUEST:i=a.data;break;case c.DOWNLOAD_FILE:i={filePath:a.filePath};break;case c.UPLOAD_FILE:i={filePath:a.filePath,name:a.name}}const C=s.getTime(),l={req:{url:o,m:L,dat:i},res:{},t:C},A=a.success,T=a.fail,S=(x=f({},a),D(x,u({success:function(t){const E=s.getTime();if(O&&(l.res.dat=t.data),l.et=E-C,l.res.sta=t.statusCode,l.res.msg=t.errMsg,e(l),"function"==typeof A)return A(t)},fail:function(t){const E=s.getTime();if(l.et=E-C,l.res.msg=t.errMsg,l.res.sta=0,e(l),"function"==typeof T)return T(t)}})));var x;return E.call(this,S)}})}))},transform(e){const t="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})),{req:{m:O,url:r,dat:s},et:n,res:{sta:o}}=e;return this.breadcrumb.unshift({lid:t,bt:T.API,l:0===o?E.WARN:E.INFO,message:`${O} "${r}" width "${JSON.stringify(s)}" took ${n} ms`,t:this.getTime()}),{lid:t,t:this.getTime(),e:R.API,dat:f({st:a.XHR},e)}}}}export{d as default};