piral-fetch 1.2.0-beta.5859 → 1.2.0-beta.5865

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/esm/fetch.js CHANGED
@@ -5,13 +5,14 @@ export function httpFetch(config, path, options = {}) {
5
5
  const baseInit = config.default || {};
6
6
  const baseHeaders = baseInit.headers || {};
7
7
  const baseUrl = config.base || location.origin;
8
- const { method = 'get', body, headers = {}, cache = baseInit.cache, mode = baseInit.mode, result = 'auto' } = options;
8
+ const { method = 'get', body, headers = {}, cache = baseInit.cache, mode = baseInit.mode, result = 'auto', signal } = options;
9
9
  const json = Array.isArray(body) ||
10
10
  typeof body === 'number' ||
11
11
  (typeof body === 'object' && body instanceof FormData === false && body instanceof Blob === false);
12
12
  const url = new URL(path, baseUrl);
13
13
  const init = Object.assign(Object.assign({}, baseInit), { method, body: json ? JSON.stringify(body) : body, headers: Object.assign(Object.assign({}, baseHeaders), headers), cache,
14
- mode });
14
+ mode,
15
+ signal });
15
16
  if (json) {
16
17
  init.headers[headerContentType] = 'application/json';
17
18
  init.headers[headerAccept] = mimeApplicationJson;
package/esm/fetch.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AAGA,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,iBAAiB,GAAG,cAAc,CAAC;AACzC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAE/C,MAAM,UAAU,SAAS,CAAI,MAAmB,EAAE,IAAY,EAAE,UAAwB,EAAE;IACxF,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IACtH,MAAM,IAAI,GACR,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,OAAO,IAAI,KAAK,QAAQ;QACxB,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,YAAY,QAAQ,KAAK,KAAK,IAAI,IAAI,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC;IACrG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,IAAI,mCACL,QAAQ,KACX,MAAM,EACN,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAiB,EACtD,OAAO,kCACF,WAAW,GACX,OAAO,GAEZ,KAAK;QACL,IAAI,GACL,CAAC;IAEF,IAAI,IAAI,EAAE;QACR,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,kBAAkB,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,mBAAmB,CAAC;KAClD;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,MAAM,KAAK,MAAM,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7G,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAE/C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,MAAM;YAChB,IAAI,EAAE,GAAG,CAAC,UAAU;SACrB,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AAGA,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,iBAAiB,GAAG,cAAc,CAAC;AACzC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAE/C,MAAM,UAAU,SAAS,CAAI,MAAmB,EAAE,IAAY,EAAE,UAAwB,EAAE;IACxF,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC9H,MAAM,IAAI,GACR,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,OAAO,IAAI,KAAK,QAAQ;QACxB,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,YAAY,QAAQ,KAAK,KAAK,IAAI,IAAI,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC;IACrG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,IAAI,mCACL,QAAQ,KACX,MAAM,EACN,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAiB,EACtD,OAAO,kCACF,WAAW,GACX,OAAO,GAEZ,KAAK;QACL,IAAI;QACJ,MAAM,GACP,CAAC;IAEF,IAAI,IAAI,EAAE;QACR,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,kBAAkB,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,mBAAmB,CAAC;KAClD;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,MAAM,KAAK,MAAM,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7G,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAE/C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,MAAM;YAChB,IAAI,EAAE,GAAG,CAAC,UAAU;SACrB,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;AACL,CAAC"}
package/esm/types.d.ts CHANGED
@@ -31,6 +31,10 @@ export interface FetchOptions {
31
31
  * @default 'auto'
32
32
  */
33
33
  result?: 'auto' | 'json' | 'text';
34
+ /**
35
+ * Sets the Abort Signal to cancel the request.
36
+ */
37
+ signal?: AbortSignal;
34
38
  }
35
39
  export interface FetchResponse<T> {
36
40
  /**
package/lib/fetch.js CHANGED
@@ -8,13 +8,14 @@ function httpFetch(config, path, options = {}) {
8
8
  const baseInit = config.default || {};
9
9
  const baseHeaders = baseInit.headers || {};
10
10
  const baseUrl = config.base || location.origin;
11
- const { method = 'get', body, headers = {}, cache = baseInit.cache, mode = baseInit.mode, result = 'auto' } = options;
11
+ const { method = 'get', body, headers = {}, cache = baseInit.cache, mode = baseInit.mode, result = 'auto', signal } = options;
12
12
  const json = Array.isArray(body) ||
13
13
  typeof body === 'number' ||
14
14
  (typeof body === 'object' && body instanceof FormData === false && body instanceof Blob === false);
15
15
  const url = new URL(path, baseUrl);
16
16
  const init = Object.assign(Object.assign({}, baseInit), { method, body: json ? JSON.stringify(body) : body, headers: Object.assign(Object.assign({}, baseHeaders), headers), cache,
17
- mode });
17
+ mode,
18
+ signal });
18
19
  if (json) {
19
20
  init.headers[headerContentType] = 'application/json';
20
21
  init.headers[headerAccept] = mimeApplicationJson;
package/lib/fetch.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":";;;AAGA,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,iBAAiB,GAAG,cAAc,CAAC;AACzC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAE/C,SAAgB,SAAS,CAAI,MAAmB,EAAE,IAAY,EAAE,UAAwB,EAAE;IACxF,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IACtH,MAAM,IAAI,GACR,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,OAAO,IAAI,KAAK,QAAQ;QACxB,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,YAAY,QAAQ,KAAK,KAAK,IAAI,IAAI,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC;IACrG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,IAAI,mCACL,QAAQ,KACX,MAAM,EACN,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAiB,EACtD,OAAO,kCACF,WAAW,GACX,OAAO,GAEZ,KAAK;QACL,IAAI,GACL,CAAC;IAEF,IAAI,IAAI,EAAE;QACR,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,kBAAkB,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,mBAAmB,CAAC;KAClD;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,MAAM,KAAK,MAAM,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7G,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAE/C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,MAAM;YAChB,IAAI,EAAE,GAAG,CAAC,UAAU;SACrB,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;AACL,CAAC;AAtCD,8BAsCC"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":";;;AAGA,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,iBAAiB,GAAG,cAAc,CAAC;AACzC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAE/C,SAAgB,SAAS,CAAI,MAAmB,EAAE,IAAY,EAAE,UAAwB,EAAE;IACxF,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC9H,MAAM,IAAI,GACR,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,OAAO,IAAI,KAAK,QAAQ;QACxB,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,YAAY,QAAQ,KAAK,KAAK,IAAI,IAAI,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC;IACrG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,IAAI,mCACL,QAAQ,KACX,MAAM,EACN,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAiB,EACtD,OAAO,kCACF,WAAW,GACX,OAAO,GAEZ,KAAK;QACL,IAAI;QACJ,MAAM,GACP,CAAC;IAEF,IAAI,IAAI,EAAE;QACR,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,kBAAkB,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,mBAAmB,CAAC;KAClD;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,MAAM,KAAK,MAAM,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7G,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAE/C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,MAAM;YAChB,IAAI,EAAE,GAAG,CAAC,UAAU;SACrB,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;AACL,CAAC;AAvCD,8BAuCC"}
package/lib/types.d.ts CHANGED
@@ -31,6 +31,10 @@ export interface FetchOptions {
31
31
  * @default 'auto'
32
32
  */
33
33
  result?: 'auto' | 'json' | 'text';
34
+ /**
35
+ * Sets the Abort Signal to cancel the request.
36
+ */
37
+ signal?: AbortSignal;
34
38
  }
35
39
  export interface FetchResponse<T> {
36
40
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-fetch",
3
- "version": "1.2.0-beta.5859",
3
+ "version": "1.2.0-beta.5865",
4
4
  "description": "Plugin for standardizing fetch in Piral.",
5
5
  "keywords": [
6
6
  "piral",
@@ -65,7 +65,7 @@
65
65
  "@types/express": "^4.11.1",
66
66
  "cors": "^2.8.5",
67
67
  "express": "^4.17.1",
68
- "piral-core": "1.2.0-beta.5859"
68
+ "piral-core": "1.2.0-beta.5865"
69
69
  },
70
- "gitHead": "6b585f2d8362f878b2959d2fae2a9e99526906cd"
70
+ "gitHead": "486ba133751b64b9873c73a8f4ad12448df9e43d"
71
71
  }
@@ -1 +1 @@
1
- var piralFetch=(()=>{var u=Object.defineProperty,C=Object.defineProperties;var O=Object.getOwnPropertyDescriptors;var P=Object.getOwnPropertySymbols;var R=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable;var b=(e,t,o)=>t in e?u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,c=(e,t)=>{for(var o in t||(t={}))R.call(t,o)&&b(e,o,t[o]);if(P)for(var o of P(t))H.call(t,o)&&b(e,o,t[o]);return e},m=(e,t)=>C(e,O(t)),I=e=>u(e,"__esModule",{value:!0});var B=(e,t)=>{I(e);for(var o in t)u(e,o,{get:t[o],enumerable:!0})};var w={};B(w,{createFetchApi:()=>q,httpFetch:()=>l});var J="accept",x="content-type",U="application/json";function l(e,t,o={}){let r=e.default||{},h=r.headers||{},p=e.base||location.origin,{method:s="get",body:n,headers:f={},cache:i=r.cache,mode:j=r.mode,result:y="auto"}=o,g=Array.isArray(n)||typeof n=="number"||typeof n=="object"&&!(n instanceof FormData)&&!(n instanceof Blob),A=new URL(t,p),d=m(c({},r),{method:s,body:g?JSON.stringify(n):n,headers:c(c({},h),f),cache:i,mode:j});return g&&(d.headers[x]="application/json",d.headers[J]=U),fetch(A.href,d).then(a=>{let F=a.headers.get(x);return(y==="json"||y==="auto"&&!!F&&F.indexOf("json")!==-1?a.json():a.text()).then(T=>({body:T,code:a.status,text:a.statusText}))})}function q(e={}){return t=>({fetch(o,r={}){let h=r.headers||{},p=[];return t.emit("before-fetch",{headers:h,method:r.method||"GET",target:o,setHeaders(s){s&&p.push(s)}}),Promise.all(p).then(s=>{let n=s.reduce((f,i)=>typeof i=="object"&&i?c(c({},f),i):f,h);return m(c({},r),{headers:n})}).then(s=>l(e,o,s))}})}return w;})();
1
+ var piralFetch=(()=>{var u=Object.defineProperty,O=Object.defineProperties;var R=Object.getOwnPropertyDescriptors;var P=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,I=Object.prototype.propertyIsEnumerable;var b=(e,t,o)=>t in e?u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,c=(e,t)=>{for(var o in t||(t={}))H.call(t,o)&&b(e,o,t[o]);if(P)for(var o of P(t))I.call(t,o)&&b(e,o,t[o]);return e},m=(e,t)=>O(e,R(t)),B=e=>u(e,"__esModule",{value:!0});var J=(e,t)=>{B(e);for(var o in t)u(e,o,{get:t[o],enumerable:!0})};var D={};J(D,{createFetchApi:()=>w,httpFetch:()=>l});var U="accept",x="content-type",q="application/json";function l(e,t,o={}){let r=e.default||{},h=r.headers||{},p=e.base||location.origin,{method:s="get",body:n,headers:f={},cache:i=r.cache,mode:j=r.mode,result:y="auto",signal:A}=o,g=Array.isArray(n)||typeof n=="number"||typeof n=="object"&&!(n instanceof FormData)&&!(n instanceof Blob),T=new URL(t,p),d=m(c({},r),{method:s,body:g?JSON.stringify(n):n,headers:c(c({},h),f),cache:i,mode:j,signal:A});return g&&(d.headers[x]="application/json",d.headers[U]=q),fetch(T.href,d).then(a=>{let F=a.headers.get(x);return(y==="json"||y==="auto"&&!!F&&F.indexOf("json")!==-1?a.json():a.text()).then(C=>({body:C,code:a.status,text:a.statusText}))})}function w(e={}){return t=>({fetch(o,r={}){let h=r.headers||{},p=[];return t.emit("before-fetch",{headers:h,method:r.method||"GET",target:o,setHeaders(s){s&&p.push(s)}}),Promise.all(p).then(s=>{let n=s.reduce((f,i)=>typeof i=="object"&&i?c(c({},f),i):f,h);return m(c({},r),{headers:n})}).then(s=>l(e,o,s))}})}return D;})();
package/src/fetch.ts CHANGED
@@ -9,7 +9,7 @@ export function httpFetch<T>(config: FetchConfig, path: string, options: FetchOp
9
9
  const baseInit = config.default || {};
10
10
  const baseHeaders = baseInit.headers || {};
11
11
  const baseUrl = config.base || location.origin;
12
- const { method = 'get', body, headers = {}, cache = baseInit.cache, mode = baseInit.mode, result = 'auto' } = options;
12
+ const { method = 'get', body, headers = {}, cache = baseInit.cache, mode = baseInit.mode, result = 'auto', signal } = options;
13
13
  const json =
14
14
  Array.isArray(body) ||
15
15
  typeof body === 'number' ||
@@ -25,6 +25,7 @@ export function httpFetch<T>(config: FetchConfig, path: string, options: FetchOp
25
25
  },
26
26
  cache,
27
27
  mode,
28
+ signal,
28
29
  };
29
30
 
30
31
  if (json) {
package/src/types.ts CHANGED
@@ -33,6 +33,10 @@ export interface FetchOptions {
33
33
  * @default 'auto'
34
34
  */
35
35
  result?: 'auto' | 'json' | 'text';
36
+ /**
37
+ * Sets the Abort Signal to cancel the request.
38
+ */
39
+ signal?: AbortSignal;
36
40
  }
37
41
 
38
42
  export interface FetchResponse<T> {