@elbwalker/destination-web-api
Version:
API web destination for walkerOS
1 lines • 2.38 kB
JavaScript
;var Destination=(()=>{var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,o={};((t,r)=>{for(var n in r)e(t,n,{get:r[n],enumerable:!0})})(o,{DestinationWebAPI:()=>f,default:()=>h,destinationWebAPI:()=>p});var s={merge:!0,shallow:!0,extend:!0};function a(e){return void 0===e||"string"==typeof e?e:JSON.stringify(e)}function c(e={}){return function(e,t={},r={}){r={...s,...r};const n=Object.entries(t).reduce(((t,[n,o])=>{const s=e[n];return r.merge&&Array.isArray(s)&&Array.isArray(o)?t[n]=o.reduce(((e,t)=>e.includes(t)?e:[...e,t]),[...s]):(r.extend||n in e)&&(t[n]=o),t}),{});return r.shallow?{...e,...n}:(Object.assign(e,n),e)}({"Content-Type":"application/json; charset=utf-8"},e)}function i(e,t){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}}}function u(e,t,r={transport:"fetch"}){switch(r.transport||"fetch"){case"beacon":return function(e,t){const r=a(t),n=navigator.sendBeacon(e,r);return{ok:n,error:n?void 0:"Failed to send beacon"}}(e,t);case"xhr":return function(e,t,r={}){const n=c(r.headers),o=r.method||"POST",s=a(t);return i((()=>{const t=new XMLHttpRequest;t.open(o,e,!1);for(const e in n)t.setRequestHeader(e,n[e]);t.send(s);const r=t.status>=200&&t.status<300;return{ok:r,data:i(JSON.parse,(()=>t.response))(t.response),error:r?void 0:`${t.status} ${t.statusText}`}}),(e=>({ok:!1,error:e.message})))()}(e,t,r);default:return async function(e,t,r={}){const n=c(r.headers),o=a(t);return(s=async()=>{const t=await fetch(e,{method:r.method||"POST",headers:n,keepalive:!0,credentials:r.credentials||"same-origin",mode:r.noCors?"no-cors":"cors",body:o}),s=r.noCors?"":await t.text();return{ok:t.ok,data:s,error:t.ok?void 0:t.statusText}},i=e=>({ok:!1,error:e.message}),async function(...e){try{return await s(...e)}catch(e){if(!i)return;return await i(e)}})();var s,i}(e,t,r)}}var d,f={},p={type:"api",config:{},push(e,t,r,n={}){const{custom:o={},fn:s}=t,{url:a,headers:c,method:i,transform:d,transport:f="fetch"}=o;if(!a)return;const p=void 0!==n.data?n.data:e;(s||u)(a,d?d(p,t,r):JSON.stringify(p),{headers:c,method:i,transport:f})}},h=p;return d=o,((o,s,a,c)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let i of r(s))n.call(o,i)||i===a||e(o,i,{get:()=>s[i],enumerable:!(c=t(s,i))||c.enumerable});return o})(e({},"__esModule",{value:!0}),d)})();