UNPKG

khoir

Version:

Sederhana dan fleksibel untuk melakukan permintaan HTTP

1 lines 1.89 kB
export class Khoir{constructor(e){this.baseURL=e}_request(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const l=`${this.baseURL}${e}`,o={method:t,headers:{"Content-Type":"application/json",...r}};return n&&(o.body=JSON.stringify(n)),new Promise(((e,t)=>{fetch(l,o).then((e=>{if(!e.ok)throw new Error(`Network response was not ok: ${e.statusText}`);return e.json()})).then((t=>e(t))).catch((e=>{console.error(`Fetch error: ${e.message}`),t(e)}))}))}request(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},l=arguments.length>4?arguments[4]:void 0;const o=this._request(e,t,n,r);if("function"!=typeof l)return o;o.then((e=>l(null,e))).catch((e=>l(e,null)))}get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return this.request(e,"GET",null,t,n)}post(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;return this.request(e,"POST",t,n,r)}put(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;return this.request(e,"PUT",t,n,r)}delete(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return this.request(e,"DELETE",null,t,n)}patch(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;return this.request(e,"PATCH",t,n,r)}head(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return this.request(e,"HEAD",null,t,n)}options(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return this.request(e,"OPTIONS",null,t,n)}}