UNPKG

@deltares/fews-web-oc-utils

Version:

Util Library for common Web OC functionality

1 lines 2.13 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["fews-web-oc-utils"]=t():e["fews-web-oc-utils"]=t()}(self,(()=>(()=>{"use strict";var e={d:(t,r)=>{for(var s in r)e.o(r,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:r[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{DefaultParser:()=>s,PiRestService:()=>a,PlainTextParser:()=>o,RequestOptions:()=>r});class r{_mode="cors";_relativeUrl=!0;get relativeUrl(){return this._relativeUrl}set relativeUrl(e){this._relativeUrl=e}get mode(){return this._mode}set mode(e){this._mode=e}}class s{async parse(e){return await e.json()}}class a{webserviceUrl;transformRequest;constructor(e,t){if(this.webserviceUrl=e,void 0!==t)this.transformRequest=t;else{async function r(e){return e}this.transformRequest=r}}async getDataWithParser(e,t,r){const s=t.relativeUrl?this.webserviceUrl+e:e,a=new Request(s,{method:"GET"}),o=await fetch(await this.transformRequest(a));if(!o.ok)throw new Error("Fetch Error",{cause:o});return await this.processResponse({},o,s,r)}async postDataWithParser(e,t,r,s,a){const o=t.relativeUrl?this.webserviceUrl+e:e,n={method:"POST"};n.body=s,n.headers=a;const i=new Request(o,n),c=await fetch(await this.transformRequest(i));if(!c.ok)throw new Error("Fetch Error",{cause:c});return await this.processResponse({},c,o,r)}async getData(e){const t=new r;return t.relativeUrl=!e.startsWith("http"),this.getDataWithParser(e,t,new s)}async postData(e,t,a={"Content-Type":"application/json"}){const o=new r;return o.relativeUrl=!e.startsWith("http"),this.postDataWithParser(e,o,new s,t,a)}async processResponse(e,t,r,s){e.responseCode=t.status,e.contentType=t.headers.get("content-type");try{e.data=await s.parse(t)}catch(e){throw new Error(`Parse Error for response ${r}.`,{cause:e})}return e}}class o{async parse(e){return await e.text()}}return t})()));