@opra/client 0.30.1 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser.js +1 -1
- package/cjs/http/fetch-backend.js +13 -1
- package/esm/http/fetch-backend.js +14 -2
- package/package.json +2 -2
package/browser.js
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* http://www.panates.com
|
|
4
4
|
*****************************************/
|
|
5
5
|
|
|
6
|
-
var $=Object.defineProperty,se=Object.defineProperties;var ce=Object.getOwnPropertyDescriptors;var Y=Object.getOwnPropertySymbols;var le=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable;var Z=(c,e,r)=>e in c?$(c,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):c[e]=r,x=(c,e)=>{for(var r in e||(e={}))le.call(e,r)&&Z(c,r,e[r]);if(Y)for(var r of Y(e))de.call(e,r)&&Z(c,r,e[r]);return c},k=(c,e)=>se(c,ce(e)),l=(c,e)=>$(c,"name",{value:e,configurable:!0});var A=class A{constructor(e){this.api=e==null?void 0:e.api}};l(A,"Backend");var p=A;var he=Symbol.for("kClient"),u=Symbol.for("kBackend"),n=Symbol.for("kContext");var G=class G{constructor(e){Object.defineProperty(this,u,{enumerable:!1,value:e})}};l(G,"ClientBase");var j=G;var M=class M extends Error{constructor(e,r){super(e.message),this.cause=r,this.issues=e.issues||[],this.status=e.status,r&&(this.cause=r,r.stack&&(this.stack=r.stack))}};l(M,"ClientError");var S=M;import{Observable as me}from"rxjs";import{isReadableStreamLike as ue}from"rxjs/internal/util/isReadableStreamLike";import z from"@browsery/type-is";import{isBlob as fe}from"@opra/common";var I=class I extends p{constructor(e,r){super(r),this.serviceUrl=e}};l(I,"HttpBackend");var R=I;var v=class v{constructor(e){this.hasBody=!1,this.headers=(e==null?void 0:e.headers)instanceof Headers?e==null?void 0:e.headers:new Headers(e==null?void 0:e.headers),this.status=(e==null?void 0:e.status)||200,this.statusText=(e==null?void 0:e.statusText)||"OK",this.url=(e==null?void 0:e.url)||null,this.ok=this.status>=200&&this.status<300,this.body=e==null?void 0:e.body,this.hasBody=(e==null?void 0:e.body)!=null||!!(e!=null&&e.hasBody),this.contentType=(this.headers.get("content-type")||"").split(";")[0]}clone(e){return new v(x(x({},this),e))}};l(v,"HttpResponse");var T=v;var y;(function(c){c.Sent="Sent",c.UploadProgress="UploadProgress",c.ResponseHeader="ResponseHeader",c.DownloadProgress="DownloadProgress",c.Response="Response",c.User="User"})(y||(y={}));var F=class F extends R{constructor(e,r){var t,a,s,d,m,w;super(e,r),this.interceptors=Array.from(new Set([...(r==null?void 0:r.interceptors)||[]])),this.defaults=k(x({},r==null?void 0:r.defaults),{headers:((t=r==null?void 0:r.defaults)==null?void 0:t.headers)instanceof Headers?(a=r==null?void 0:r.defaults)==null?void 0:a.headers:new Headers((s=r==null?void 0:r.defaults)==null?void 0:s.headers),params:((d=r==null?void 0:r.defaults)==null?void 0:d.params)instanceof URLSearchParams?(m=r==null?void 0:r.defaults)==null?void 0:m.params:new URLSearchParams((w=r==null?void 0:r.defaults)==null?void 0:w.params)})}handle(e){return new me(r=>{(async()=>{let t=this.prepareRequest(e);if(t.body&&e.reportProgress){let C=t.body,O=t.headers.get("content-length")||"0",D=parseInt(O,10)||0,g=0,q=new TransformStream({transform(b,H){H.enqueue(b),g+=b.byteLength,r.next({type:y.UploadProgress,request:t,total:D,loaded:g})}});t=new Request(t.url,{cache:t.cache,credentials:t.credentials,headers:t.headers,integrity:t.integrity,keepalive:t.keepalive,method:t.method,mode:t.mode,redirect:t.redirect,referrer:t.referrer,referrerPolicy:t.referrerPolicy,signal:t.signal,body:C.pipeThrough(q),window:e.window,duplex:"half"})}let a=this.send(t);r.next({request:t,type:y.Sent});let s=await a,d=this.createResponse({url:s.url,headers:s.headers,status:s.status,statusText:s.statusText,hasBody:!!s.body});r.next({request:t,type:y.ResponseHeader,response:d});let m;if(s.body)if(e.reportProgress){let C=s.body,O=s.headers.get("content-length")||"0",D=parseInt(O,10)||0,g=0,q=new Response(new ReadableStream({async start(b){let H=C.getReader();for(;;){let{done:ae,value:X}=await H.read();if(ae)break;g+=X.byteLength,b.enqueue(X),r.next({type:y.DownloadProgress,request:t,total:D,loaded:g})}b.close()}}));m=await this.parseBody(q)}else m=await this.parseBody(s);let w=this.createResponse({url:s.url,headers:s.headers,status:s.status,statusText:s.statusText,body:m});r.next({request:t,type:y.Response,response:w}),r.complete()})().catch(t=>r.error(t))})}send(e){return fetch(e)}prepareRequest(e){let r=e.headers||new Headers,t=k(x({},e),{headers:r}),a=t.body;if(a){let s;typeof a=="string"||typeof a=="number"||typeof a=="boolean"?(s='text/plain; charset="UTF-8"',t.body=new Blob([String(a)],{type:s}),r.set("Content-Length",String(t.body.size)),delete t.duplex):ue(a)?(s="application/octet-stream",t.duplex="half"):Buffer.isBuffer(a)?(s="application/octet-stream",r.set("Content-Length",String(a.length)),delete t.duplex):fe(a)?(s=a.type||"application/octet-stream",r.set("Content-Length",String(a.size)),delete t.duplex):(s='application/json;charset="UTF-8"',t.body=new Blob([JSON.stringify(a)],{type:s}),r.set("Content-Length",String(t.body.size)),delete t.duplex),s&&!r.has("Content-Type")&&r.set("Content-Type",s)}return new Request(t.url.toString(),t)}createResponse(e){return new T(e)}async parseBody(e){let r,t=e.headers.get("Content-Type")||"";if(z.is(t,["json","application/*+json"]))r=await e.json(),typeof r=="string"&&(r=JSON.parse(r));else if(z.is(t,["text"]))r=await e.text();else if(z.is(t,["multipart"]))r=await e.formData();else{let a=await e.arrayBuffer();a.byteLength&&(r=a)}return r}};l(F,"FetchBackend");var P=F;import{ApiDocumentFactory as xe,ResponsiveMap as re}from"@opra/common";import{toArrayDef as f}from"putil-varhelpers";import{OpraURL as K}from"@opra/common";import{lastValueFrom as ee,Observable as ye}from"rxjs";import ie from"@browsery/type-is";import{OpraURL as oe}from"@opra/common";var i;(function(c){c.ResponseHeader="response-header",c.Response="response",c.Body="body",c.Events="events"})(i||(i={}));var J=class J{constructor(e,r){this.chain=e.reduceRight((t,a)=>(s,d)=>a.intercept(s,{handle:m=>t(m,d)}),ne),this.finalHandler=r}handle(e){return this.chain(e,r=>this.finalHandler.handle(r))}};l(J,"HttpInterceptorHandler");var B=J;function ne(c,e){return e(c)}l(ne,"chainEnd");var E=class E extends ye{constructor(e,r){super(a=>{let s=this[n].observe;new B(e.interceptors||[],this[u]).handle(this[n]).subscribe({next(d){if(s===i.Events){a.next(d);return}if(s===i.ResponseHeader&&d.type===y.ResponseHeader){a.next(d.response),a.complete();return}if(d.type===y.Response){let{response:m}=d;if(s===i.Response){a.next(m),a.complete();return}let w=ie.is(d.response.contentType||"",["application/opra+json"]);if(m.status>=400&&m.status<600){a.error(new S({message:m.status+" "+m.statusText,status:m.status,issues:w?m.body.errors:void 0})),a.complete();return}a.next(d.response.body),a.complete()}},error(d){a.error(d)},complete(){a.complete()}})}),Object.defineProperty(this,u,{enumerable:!1,value:e});let t=new oe(r==null?void 0:r.url,e.serviceUrl.toString());Object.defineProperty(this,n,{enumerable:!1,value:k(x({},r),{observe:i.Body,headers:new Headers(r==null?void 0:r.headers),url:t})})}clone(){return new E(this[u],this[n])}options(e){return Object.assign(this[n],e),this}header(e,r){let t=this[n].headers;return typeof e=="object"?((e instanceof Headers?e:new Headers(e)).forEach((s,d)=>{d.toLowerCase()==="set-cookie"?t.append(d,s):t.set(d,s)}),this):(r==null||r===""?t.delete(e):t.append(e,String(r)),this)}param(e,r){let t=this[n].url.searchParams;return typeof e=="object"?((e instanceof URLSearchParams?e:new URLSearchParams(e)).forEach((s,d)=>t.set(d,s)),this):(r==null?t.delete(e):t.set(e,String(r)),this)}observe(e){if(e===this[n].observe)return this;let r=this.clone();return r[n].observe=e||i.Body,r}getBody(){return ee(this.observe(i.Body))}getResponse(){return ee(this.observe(i.Response))}};l(E,"HttpRequestObservable");var h=E;var N=class N{constructor(e,r){this._backend=e,this._path=r}create(e,r){let t=new h(this._backend,{method:"POST",url:this._path,body:e});return r!=null&&r.include&&t.param("include",f(r.include,[]).join(",")),r!=null&&r.pick&&t.param("pick",f(r.pick,[]).join(",")),r!=null&&r.omit&&t.param("omit",f(r.omit,[]).join(",")),t}delete(e){if(e==null||e==="")throw new TypeError("'id' argument must have a value");let r=new K;return r.join({resource:this._path,key:e}),new h(this._backend,{method:"DELETE",url:r})}deleteMany(e){let r=new h(this._backend,{method:"DELETE",url:this._path});return e!=null&&e.filter&&r.param("filter",String(e.filter)),r}get(e,r){if(e==null||e==="")throw new TypeError("'id' argument must have a value");let t=new K;t.join({resource:this._path,key:e});let a=new h(this._backend,{method:"GET",url:t});return r!=null&&r.include&&a.param("include",f(r.include,[]).join(",")),r!=null&&r.pick&&a.param("pick",f(r.pick,[]).join(",")),r!=null&&r.omit&&a.param("omit",f(r.omit,[]).join(",")),a}findMany(e){let r=new h(this._backend,{method:"GET",url:this._path});return e!=null&&e.include&&r.param("include",f(e.include,[]).join(",")),e!=null&&e.pick&&r.param("pick",f(e.pick,[]).join(",")),e!=null&&e.omit&&r.param("omit",f(e.omit,[]).join(",")),e!=null&&e.sort&&r.param("sort",f(e.sort,[]).join(",")),e!=null&&e.filter&&r.param("filter",String(e.filter)),(e==null?void 0:e.limit)!=null&&r.param("limit",String(e.limit)),(e==null?void 0:e.skip)!=null&&r.param("skip",String(e.skip)),(e==null?void 0:e.count)!=null&&r.param("count",String(e.count)),(e==null?void 0:e.distinct)!=null&&r.param("distinct",String(e.distinct)),r}update(e,r,t){if(e==null)throw new TypeError("'id' argument must have a value");let a=new K;a.join({resource:this._path,key:e});let s=new h(this._backend,{method:"PATCH",url:a,body:r});return t!=null&&t.include&&s.param("include",f(t.include,[]).join(",")),t!=null&&t.pick&&s.param("pick",f(t.pick,[]).join(",")),t!=null&&t.omit&&s.param("omit",f(t.omit,[]).join(",")),s}updateMany(e,r){let t=new h(this._backend,{method:"PATCH",url:this._path,body:e});return r!=null&&r.filter&&t.param("filter",String(r.filter)),t}};l(N,"HttpCollectionNode");var _=N;import{toArrayDef as o}from"putil-varhelpers";var V=class V{constructor(e,r){this._backend=e,this._path=r}create(e,r){let t=new h(this._backend,{method:"POST",url:this._path,body:e});return r!=null&&r.include&&t.param("include",o(r.include,[]).join(",")),r!=null&&r.pick&&t.param("pick",o(r.pick,[]).join(",")),r!=null&&r.omit&&t.param("omit",o(r.omit,[]).join(",")),t}delete(){return new h(this._backend,{method:"DELETE",url:this._path})}get(e){let r=new h(this._backend,{method:"GET",url:this._path});return e!=null&&e.include&&r.param("include",o(e.include,[]).join(",")),e!=null&&e.pick&&r.param("pick",o(e.pick,[]).join(",")),e!=null&&e.omit&&r.param("omit",o(e.omit,[]).join(",")),r}update(e,r){let t=new h(this._backend,{method:"PATCH",url:this._path,body:e});return r!=null&&r.include&&t.param("include",o(r.include,[]).join(",")),r!=null&&r.pick&&t.param("pick",o(r.pick,[]).join(",")),r!=null&&r.omit&&t.param("omit",o(r.omit,[]).join(",")),t}};l(V,"HttpSingletonNode");var L=V;var Q=class Q extends j{constructor(e){super(e),this._collectionCache=new re,this._singletonCache=new re}get serviceUrl(){return this[u].serviceUrl}async getMetadata(){let e=this._metadataPromise;if(e)return e;let r=new h(this[u],{method:"GET",url:"/",headers:new Headers({accept:"application/json"})});return this._metadataPromise=e=r.getBody(),await e.then(async t=>{if(!t)throw new Error("No response returned.");let a=await xe.createDocument(t);return this[u].api=a,a}).catch(t=>{throw t.message="Unable to fetch metadata from service url ("+this.serviceUrl+"). "+t.message,t}).finally(()=>delete this._metadataPromise)}collection(e){let r=this._collectionCache.get(e);return r||(r=new _(this[u],e),this._collectionCache.set(e,r)),r}singleton(e){let r=this._singletonCache.get(e);return r||(r=new L(this[u],e),this._singletonCache.set(e,r)),r}action(e,r){let t=new h(this[u],{method:"GET",url:e});return r&&(Object.keys(r).forEach(a=>r[a]=String(r[a])),t.param(r)),t}};l(Q,"HttpClientBase");var U=Q;var W=class W extends U{constructor(e,r){super(new P(e,r))}get defaults(){return this[u].defaults}};l(W,"OpraHttpClient");var te=W;export{p as Backend,j as ClientBase,S as ClientError,P as FetchBackend,R as HttpBackend,U as HttpClientBase,_ as HttpCollectionNode,y as HttpEventType,i as HttpObserveType,h as HttpRequestObservable,T as HttpResponse,L as HttpSingletonNode,te as OpraHttpClient,u as kBackend,he as kClient,n as kContext};
|
|
6
|
+
var $=Object.defineProperty,se=Object.defineProperties;var ce=Object.getOwnPropertyDescriptors;var Y=Object.getOwnPropertySymbols;var le=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable;var Z=(l,e,r)=>e in l?$(l,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):l[e]=r,x=(l,e)=>{for(var r in e||(e={}))le.call(e,r)&&Z(l,r,e[r]);if(Y)for(var r of Y(e))de.call(e,r)&&Z(l,r,e[r]);return l},k=(l,e)=>se(l,ce(e)),d=(l,e)=>$(l,"name",{value:e,configurable:!0});var A=class A{constructor(e){this.api=e==null?void 0:e.api}};d(A,"Backend");var p=A;var he=Symbol.for("kClient"),f=Symbol.for("kBackend"),n=Symbol.for("kContext");var G=class G{constructor(e){Object.defineProperty(this,f,{enumerable:!1,value:e})}};d(G,"ClientBase");var j=G;var M=class M extends Error{constructor(e,r){super(e.message),this.cause=r,this.issues=e.issues||[],this.status=e.status,r&&(this.cause=r,r.stack&&(this.stack=r.stack))}};d(M,"ClientError");var S=M;import{Observable as me}from"rxjs";import{isReadableStreamLike as fe}from"rxjs/internal/util/isReadableStreamLike";import I from"@browsery/type-is";import{isBlob as ue,OpraURL as ne}from"@opra/common";var z=class z extends p{constructor(e,r){super(r),this.serviceUrl=e}};d(z,"HttpBackend");var R=z;var T=class T{constructor(e){this.hasBody=!1,this.headers=(e==null?void 0:e.headers)instanceof Headers?e==null?void 0:e.headers:new Headers(e==null?void 0:e.headers),this.status=(e==null?void 0:e.status)||200,this.statusText=(e==null?void 0:e.statusText)||"OK",this.url=(e==null?void 0:e.url)||null,this.ok=this.status>=200&&this.status<300,this.body=e==null?void 0:e.body,this.hasBody=(e==null?void 0:e.body)!=null||!!(e!=null&&e.hasBody),this.contentType=(this.headers.get("content-type")||"").split(";")[0]}clone(e){return new T(x(x({},this),e))}};d(T,"HttpResponse");var v=T;var i;(function(l){l.Sent="Sent",l.UploadProgress="UploadProgress",l.ResponseHeader="ResponseHeader",l.DownloadProgress="DownloadProgress",l.Response="Response",l.User="User"})(i||(i={}));var F=class F extends R{constructor(e,r){var t,s,a,c,h,w;super(e,r),this.interceptors=Array.from(new Set([...(r==null?void 0:r.interceptors)||[]])),this.defaults=k(x({},r==null?void 0:r.defaults),{headers:((t=r==null?void 0:r.defaults)==null?void 0:t.headers)instanceof Headers?(s=r==null?void 0:r.defaults)==null?void 0:s.headers:new Headers((a=r==null?void 0:r.defaults)==null?void 0:a.headers),params:((c=r==null?void 0:r.defaults)==null?void 0:c.params)instanceof URLSearchParams?(h=r==null?void 0:r.defaults)==null?void 0:h.params:new URLSearchParams((w=r==null?void 0:r.defaults)==null?void 0:w.params)})}handle(e){return new me(r=>{(async()=>{let t=this.prepareRequest(e);if(t.body&&e.reportProgress){let C=t.body,O=t.headers.get("content-length")||"0",D=parseInt(O,10)||0,g=0,q=new TransformStream({transform(b,H){H.enqueue(b),g+=b.byteLength,r.next({type:i.UploadProgress,request:t,total:D,loaded:g})}});t=new Request(t.url,{cache:t.cache,credentials:t.credentials,headers:t.headers,integrity:t.integrity,keepalive:t.keepalive,method:t.method,mode:t.mode,redirect:t.redirect,referrer:t.referrer,referrerPolicy:t.referrerPolicy,signal:t.signal,body:C.pipeThrough(q),window:e.window,duplex:"half"})}let s=this.send(t);r.next({request:t,type:i.Sent});let a=await s,c=this.createResponse({url:a.url,headers:a.headers,status:a.status,statusText:a.statusText,hasBody:!!a.body});r.next({request:t,type:i.ResponseHeader,response:c});let h;if(a.body)if(e.reportProgress){let C=a.body,O=a.headers.get("content-length")||"0",D=parseInt(O,10)||0,g=0,q=new Response(new ReadableStream({async start(b){let H=C.getReader();for(;;){let{done:ae,value:X}=await H.read();if(ae)break;g+=X.byteLength,b.enqueue(X),r.next({type:i.DownloadProgress,request:t,total:D,loaded:g})}b.close()}}));h=await this.parseBody(q)}else h=await this.parseBody(a);let w=this.createResponse({url:a.url,headers:a.headers,status:a.status,statusText:a.statusText,body:h});r.next({request:t,type:i.Response,response:w}),r.complete()})().catch(t=>r.error(t))})}send(e){return fetch(e)}prepareRequest(e){let r=e.headers||new Headers,t=k(x({},e),{headers:r});this.defaults.headers.forEach((c,h)=>{r.has(h)||r.set(h,c)});let s=new ne(t.url,this.serviceUrl);this.defaults.params.size&&(this.defaults.params.forEach((c,h)=>{s.searchParams.has(h)||s.searchParams.set(h,c)}),t.url=s.toString());let a=t.body;if(a){let c;typeof a=="string"||typeof a=="number"||typeof a=="boolean"?(c='text/plain; charset="UTF-8"',t.body=new Blob([String(a)],{type:c}),r.set("Content-Length",String(t.body.size)),delete t.duplex):fe(a)?(c="application/octet-stream",t.duplex="half"):Buffer.isBuffer(a)?(c="application/octet-stream",r.set("Content-Length",String(a.length)),delete t.duplex):ue(a)?(c=a.type||"application/octet-stream",r.set("Content-Length",String(a.size)),delete t.duplex):(c='application/json;charset="UTF-8"',t.body=new Blob([JSON.stringify(a)],{type:c}),r.set("Content-Length",String(t.body.size)),delete t.duplex),c&&!r.has("Content-Type")&&r.set("Content-Type",c)}return new Request(s.toString(),t)}createResponse(e){return new v(e)}async parseBody(e){let r,t=e.headers.get("Content-Type")||"";if(I.is(t,["json","application/*+json"]))r=await e.json(),typeof r=="string"&&(r=JSON.parse(r));else if(I.is(t,["text"]))r=await e.text();else if(I.is(t,["multipart"]))r=await e.formData();else{let s=await e.arrayBuffer();s.byteLength&&(r=s)}return r}};d(F,"FetchBackend");var P=F;import{ApiDocumentFactory as we,ResponsiveMap as re}from"@opra/common";import{toArrayDef as u}from"putil-varhelpers";import{OpraURL as K}from"@opra/common";import{lastValueFrom as ee,Observable as ye}from"rxjs";import oe from"@browsery/type-is";import{OpraURL as xe}from"@opra/common";var y;(function(l){l.ResponseHeader="response-header",l.Response="response",l.Body="body",l.Events="events"})(y||(y={}));var J=class J{constructor(e,r){this.chain=e.reduceRight((t,s)=>(a,c)=>s.intercept(a,{handle:h=>t(h,c)}),ie),this.finalHandler=r}handle(e){return this.chain(e,r=>this.finalHandler.handle(r))}};d(J,"HttpInterceptorHandler");var E=J;function ie(l,e){return e(l)}d(ie,"chainEnd");var B=class B extends ye{constructor(e,r){super(s=>{let a=this[n].observe;new E(e.interceptors||[],this[f]).handle(this[n]).subscribe({next(c){if(a===y.Events){s.next(c);return}if(a===y.ResponseHeader&&c.type===i.ResponseHeader){s.next(c.response),s.complete();return}if(c.type===i.Response){let{response:h}=c;if(a===y.Response){s.next(h),s.complete();return}let w=oe.is(c.response.contentType||"",["application/opra+json"]);if(h.status>=400&&h.status<600){s.error(new S({message:h.status+" "+h.statusText,status:h.status,issues:w?h.body.errors:void 0})),s.complete();return}s.next(c.response.body),s.complete()}},error(c){s.error(c)},complete(){s.complete()}})}),Object.defineProperty(this,f,{enumerable:!1,value:e});let t=new xe(r==null?void 0:r.url,e.serviceUrl.toString());Object.defineProperty(this,n,{enumerable:!1,value:k(x({},r),{observe:y.Body,headers:new Headers(r==null?void 0:r.headers),url:t})})}clone(){return new B(this[f],this[n])}options(e){return Object.assign(this[n],e),this}header(e,r){let t=this[n].headers;return typeof e=="object"?((e instanceof Headers?e:new Headers(e)).forEach((a,c)=>{c.toLowerCase()==="set-cookie"?t.append(c,a):t.set(c,a)}),this):(r==null||r===""?t.delete(e):t.append(e,String(r)),this)}param(e,r){let t=this[n].url.searchParams;return typeof e=="object"?((e instanceof URLSearchParams?e:new URLSearchParams(e)).forEach((a,c)=>t.set(c,a)),this):(r==null?t.delete(e):t.set(e,String(r)),this)}observe(e){if(e===this[n].observe)return this;let r=this.clone();return r[n].observe=e||y.Body,r}getBody(){return ee(this.observe(y.Body))}getResponse(){return ee(this.observe(y.Response))}};d(B,"HttpRequestObservable");var m=B;var N=class N{constructor(e,r){this._backend=e,this._path=r}create(e,r){let t=new m(this._backend,{method:"POST",url:this._path,body:e});return r!=null&&r.include&&t.param("include",u(r.include,[]).join(",")),r!=null&&r.pick&&t.param("pick",u(r.pick,[]).join(",")),r!=null&&r.omit&&t.param("omit",u(r.omit,[]).join(",")),t}delete(e){if(e==null||e==="")throw new TypeError("'id' argument must have a value");let r=new K;return r.join({resource:this._path,key:e}),new m(this._backend,{method:"DELETE",url:r})}deleteMany(e){let r=new m(this._backend,{method:"DELETE",url:this._path});return e!=null&&e.filter&&r.param("filter",String(e.filter)),r}get(e,r){if(e==null||e==="")throw new TypeError("'id' argument must have a value");let t=new K;t.join({resource:this._path,key:e});let s=new m(this._backend,{method:"GET",url:t});return r!=null&&r.include&&s.param("include",u(r.include,[]).join(",")),r!=null&&r.pick&&s.param("pick",u(r.pick,[]).join(",")),r!=null&&r.omit&&s.param("omit",u(r.omit,[]).join(",")),s}findMany(e){let r=new m(this._backend,{method:"GET",url:this._path});return e!=null&&e.include&&r.param("include",u(e.include,[]).join(",")),e!=null&&e.pick&&r.param("pick",u(e.pick,[]).join(",")),e!=null&&e.omit&&r.param("omit",u(e.omit,[]).join(",")),e!=null&&e.sort&&r.param("sort",u(e.sort,[]).join(",")),e!=null&&e.filter&&r.param("filter",String(e.filter)),(e==null?void 0:e.limit)!=null&&r.param("limit",String(e.limit)),(e==null?void 0:e.skip)!=null&&r.param("skip",String(e.skip)),(e==null?void 0:e.count)!=null&&r.param("count",String(e.count)),(e==null?void 0:e.distinct)!=null&&r.param("distinct",String(e.distinct)),r}update(e,r,t){if(e==null)throw new TypeError("'id' argument must have a value");let s=new K;s.join({resource:this._path,key:e});let a=new m(this._backend,{method:"PATCH",url:s,body:r});return t!=null&&t.include&&a.param("include",u(t.include,[]).join(",")),t!=null&&t.pick&&a.param("pick",u(t.pick,[]).join(",")),t!=null&&t.omit&&a.param("omit",u(t.omit,[]).join(",")),a}updateMany(e,r){let t=new m(this._backend,{method:"PATCH",url:this._path,body:e});return r!=null&&r.filter&&t.param("filter",String(r.filter)),t}};d(N,"HttpCollectionNode");var L=N;import{toArrayDef as o}from"putil-varhelpers";var V=class V{constructor(e,r){this._backend=e,this._path=r}create(e,r){let t=new m(this._backend,{method:"POST",url:this._path,body:e});return r!=null&&r.include&&t.param("include",o(r.include,[]).join(",")),r!=null&&r.pick&&t.param("pick",o(r.pick,[]).join(",")),r!=null&&r.omit&&t.param("omit",o(r.omit,[]).join(",")),t}delete(){return new m(this._backend,{method:"DELETE",url:this._path})}get(e){let r=new m(this._backend,{method:"GET",url:this._path});return e!=null&&e.include&&r.param("include",o(e.include,[]).join(",")),e!=null&&e.pick&&r.param("pick",o(e.pick,[]).join(",")),e!=null&&e.omit&&r.param("omit",o(e.omit,[]).join(",")),r}update(e,r){let t=new m(this._backend,{method:"PATCH",url:this._path,body:e});return r!=null&&r.include&&t.param("include",o(r.include,[]).join(",")),r!=null&&r.pick&&t.param("pick",o(r.pick,[]).join(",")),r!=null&&r.omit&&t.param("omit",o(r.omit,[]).join(",")),t}};d(V,"HttpSingletonNode");var U=V;var Q=class Q extends j{constructor(e){super(e),this._collectionCache=new re,this._singletonCache=new re}get serviceUrl(){return this[f].serviceUrl}async getMetadata(){let e=this._metadataPromise;if(e)return e;let r=new m(this[f],{method:"GET",url:"/",headers:new Headers({accept:"application/json"})});return this._metadataPromise=e=r.getBody(),await e.then(async t=>{if(!t)throw new Error("No response returned.");let s=await we.createDocument(t);return this[f].api=s,s}).catch(t=>{throw t.message="Unable to fetch metadata from service url ("+this.serviceUrl+"). "+t.message,t}).finally(()=>delete this._metadataPromise)}collection(e){let r=this._collectionCache.get(e);return r||(r=new L(this[f],e),this._collectionCache.set(e,r)),r}singleton(e){let r=this._singletonCache.get(e);return r||(r=new U(this[f],e),this._singletonCache.set(e,r)),r}action(e,r){let t=new m(this[f],{method:"GET",url:e});return r&&(Object.keys(r).forEach(s=>r[s]=String(r[s])),t.param(r)),t}};d(Q,"HttpClientBase");var _=Q;var W=class W extends _{constructor(e,r){super(new P(e,r))}get defaults(){return this[f].defaults}};d(W,"OpraHttpClient");var te=W;export{p as Backend,j as ClientBase,S as ClientError,P as FetchBackend,R as HttpBackend,_ as HttpClientBase,L as HttpCollectionNode,i as HttpEventType,y as HttpObserveType,m as HttpRequestObservable,v as HttpResponse,U as HttpSingletonNode,te as OpraHttpClient,f as kBackend,he as kClient,n as kContext};
|
|
@@ -150,6 +150,18 @@ class FetchBackend extends http_backend_js_1.HttpBackend {
|
|
|
150
150
|
...init,
|
|
151
151
|
headers
|
|
152
152
|
};
|
|
153
|
+
this.defaults.headers.forEach((val, key) => {
|
|
154
|
+
if (!headers.has(key))
|
|
155
|
+
headers.set(key, val);
|
|
156
|
+
});
|
|
157
|
+
const url = new common_1.OpraURL(requestInit.url, this.serviceUrl);
|
|
158
|
+
if (this.defaults.params.size) {
|
|
159
|
+
this.defaults.params.forEach((val, key) => {
|
|
160
|
+
if (!url.searchParams.has(key))
|
|
161
|
+
url.searchParams.set(key, val);
|
|
162
|
+
});
|
|
163
|
+
requestInit.url = url.toString();
|
|
164
|
+
}
|
|
153
165
|
const body = requestInit.body;
|
|
154
166
|
if (body) {
|
|
155
167
|
let contentType;
|
|
@@ -182,7 +194,7 @@ class FetchBackend extends http_backend_js_1.HttpBackend {
|
|
|
182
194
|
if (contentType && !headers.has('Content-Type'))
|
|
183
195
|
headers.set('Content-Type', contentType);
|
|
184
196
|
}
|
|
185
|
-
return new Request(
|
|
197
|
+
return new Request(url.toString(), requestInit);
|
|
186
198
|
}
|
|
187
199
|
createResponse(init) {
|
|
188
200
|
return new http_response_js_1.HttpResponse(init);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { isReadableStreamLike } from 'rxjs/internal/util/isReadableStreamLike';
|
|
4
4
|
import typeIs from '@browsery/type-is';
|
|
5
|
-
import { isBlob } from '@opra/common';
|
|
5
|
+
import { isBlob, OpraURL } from '@opra/common';
|
|
6
6
|
import { HttpBackend } from './http-backend.js';
|
|
7
7
|
import { HttpResponse } from './http-response.js';
|
|
8
8
|
import { HttpEventType } from './interfaces/http-event.js';
|
|
@@ -146,6 +146,18 @@ export class FetchBackend extends HttpBackend {
|
|
|
146
146
|
...init,
|
|
147
147
|
headers
|
|
148
148
|
};
|
|
149
|
+
this.defaults.headers.forEach((val, key) => {
|
|
150
|
+
if (!headers.has(key))
|
|
151
|
+
headers.set(key, val);
|
|
152
|
+
});
|
|
153
|
+
const url = new OpraURL(requestInit.url, this.serviceUrl);
|
|
154
|
+
if (this.defaults.params.size) {
|
|
155
|
+
this.defaults.params.forEach((val, key) => {
|
|
156
|
+
if (!url.searchParams.has(key))
|
|
157
|
+
url.searchParams.set(key, val);
|
|
158
|
+
});
|
|
159
|
+
requestInit.url = url.toString();
|
|
160
|
+
}
|
|
149
161
|
const body = requestInit.body;
|
|
150
162
|
if (body) {
|
|
151
163
|
let contentType;
|
|
@@ -178,7 +190,7 @@ export class FetchBackend extends HttpBackend {
|
|
|
178
190
|
if (contentType && !headers.has('Content-Type'))
|
|
179
191
|
headers.set('Content-Type', contentType);
|
|
180
192
|
}
|
|
181
|
-
return new Request(
|
|
193
|
+
return new Request(url.toString(), requestInit);
|
|
182
194
|
}
|
|
183
195
|
createResponse(init) {
|
|
184
196
|
return new HttpResponse(init);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opra/client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.0",
|
|
4
4
|
"description": "Opra Client package",
|
|
5
5
|
"author": "Panates",
|
|
6
6
|
"license": "MIT",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@browsery/stream": "^0.6.0",
|
|
40
40
|
"@browsery/type-is": "^0.6.3",
|
|
41
41
|
"@browsery/util": "^0.4.0",
|
|
42
|
-
"@opra/common": "^0.
|
|
42
|
+
"@opra/common": "^0.31.0",
|
|
43
43
|
"accepts": "^1.3.8",
|
|
44
44
|
"buffer": "^6.0.3",
|
|
45
45
|
"cookie": "^0.5.0",
|