@koine/api 2.0.0-beta.113 → 2.0.0-beta.114

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/ApiError.cjs.js CHANGED
@@ -11,4 +11,4 @@ Object.defineProperty(exports, '__esModule', { value: true });
11
11
  */class ApiError extends Error{constructor(r){super(`Request failed with ${r.status} ${r.msg}`),this.name="ApiError",Object.assign(this,r);}}
12
12
 
13
13
  exports.ApiError = ApiError;
14
- exports["default"] = ApiError;
14
+ exports.default = ApiError;
@@ -0,0 +1,2 @@
1
+ export * from "./ApiError";
2
+ export { default } from "./ApiError";
package/createApi.cjs.js CHANGED
@@ -10,18 +10,19 @@ let o=["get","post","put","patch","delete"];/**
10
10
  * @param apiName Short name to use in debug logs
11
11
  * @param baseUrl Either relativ eor absolute, it must end without trailing slash
12
12
  */let createApi=(l,a,i)=>{let{headers:s={},request:n={},throwErr:p,timeout:c=1e4,processReq:u,processRes:f,processErr:d}=i||{};return o.reduce((o,i)=>(// @ts-expect-error FIXME: type
13
- o[i]=async(o,h)=>{let $,m;let{request:w=n,headers:y=s,timeout:g=c,processReq:b,processRes:E=f,processErr:N=d,throwErr:k=p}=h||{},{params:A,json:C,query:j}=h||{},q=`${a}/${o+"".replace(/^\/*/,"")}`,v={method:i.toUpperCase(),...w,headers:{"content-type":"application/json",...y}};if(u){let e=u(i,q,j,C,A,v);q=e[0],j=e[1],C=e[2],A=e[3],v=e[4];}if(b){let e=b(i,q,j,C,A,v);q=e[0],j=e[1],C=e[2],A=e[3],v=e[4];}if(utils.isFullObject(A))for(let e in A)q=q.replace(`{${e}}`,A[e].toString());let x=Number(g);C&&(v.body=JSON.stringify(C)),x>0&&(// TODO: combine multiple abort signals
13
+ o[i]=async(o,h)=>{let $,m;let{request:w=n,headers:y=s,timeout:b=c,processReq:g,processRes:E=f,processErr:N=d,throwErr:k=p}=h||{},{params:A,json:C,query:j}=h||{},q=`${a}/${o+"".replace(/^\/*/,"")}`,v={method:i.toUpperCase(),...w,headers:{"content-type":"application/json",...y}};if(u){let e=u(i,q,j,C,A,v);q=e[0],j=e[1],C=e[2],A=e[3],v=e[4];}if(g){let e=g(i,q,j,C,A,v);q=e[0],j=e[1],C=e[2],A=e[3],v=e[4];}if(utils.isFullObject(A))for(let e in A)// TODO: not the greatest assertion...
14
+ q=q.replace(`{${e}}`,A[e]);let x=Number(b);C&&(v.body=JSON.stringify(C)),x>0&&(// TODO: combine multiple abort signals
14
15
  // @see https://dev.to/rashidshamloo/adding-timeout-and-multiple-abort-signals-to-fetch-typescriptreact-33bb
15
16
  $=new AbortController,m=setTimeout(()=>$.abort(),x),v.signal=$.signal),j&&// FIXME: ts-expect-error this assertion is not the best, but nevermind for now
16
- (q+=utils.buildUrlQueryString(j));let O=null,R=null,S="";try{O=await fetch(q,v);}catch(e){S=utils.errorToString(e);}if(m&&clearTimeout(m),O)try{R=E?await E(O,h||{}):await O.json();}catch(e){S=utils.errorToString(e);}if(null===R&&(R=N?await N(S,h||{}):// this error should only happen on network errors or wrong API urls
17
+ (q+=utils.buildUrlQueryString(j));let O=null,R=null,T="";try{O=await fetch(q,v);}catch(e){T=utils.errorToString(e);}if(m&&clearTimeout(m),O)try{R=E?await E(O,h||{}):await O.json();}catch(e){T=utils.errorToString(e);}if(null===R&&(R=N?await N(T,h||{}):// this error should only happen on network errors or wrong API urls
17
18
  // there is no specific HTTP error for this, we can consider these
18
19
  // two statuses though:
19
20
  // - [100 Continue](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/100)
20
21
  // - [501 Not Implemented](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/501)
21
- {data:null,msg:S,status:100,fail:!0,ok:!1}),k&&R?.fail)// throw new ApiError<Failed>(result);
22
+ {data:null,msg:T,status:100,fail:!0,ok:!1}),k&&R?.fail)// throw new ApiError<Failed>(result);
22
23
  // I prefer to throw an object literal despite what eslint says
23
24
  // eslint-disable-next-line no-throw-literal
24
25
  throw R;if("development"===process.env.NODE_ENV){let e=`${R?.status}: api[${l}] ${i.toUpperCase()} ${q}`;R?.ok?console.info(`🟢 ${e}`):console.info(`🔴 ${e}`);}return R},o),{})};
25
26
 
26
27
  exports.createApi = createApi;
27
- exports["default"] = createApi;
28
+ exports.default = createApi;
@@ -0,0 +1,2 @@
1
+ export * from "./createApi";
2
+ export { default } from "./createApi";
package/createApi.esm.js CHANGED
@@ -6,15 +6,16 @@ let o=["get","post","put","patch","delete"];/**
6
6
  * @param apiName Short name to use in debug logs
7
7
  * @param baseUrl Either relativ eor absolute, it must end without trailing slash
8
8
  */let createApi=(l,a,i)=>{let{headers:s={},request:n={},throwErr:p,timeout:c=1e4,processReq:u,processRes:f,processErr:d}=i||{};return o.reduce((o,i)=>(// @ts-expect-error FIXME: type
9
- o[i]=async(o,h)=>{let $,m;let{request:w=n,headers:y=s,timeout:g=c,processReq:b,processRes:E=f,processErr:N=d,throwErr:k=p}=h||{},{params:A,json:C,query:j}=h||{},q=`${a}/${o+"".replace(/^\/*/,"")}`,v={method:i.toUpperCase(),...w,headers:{"content-type":"application/json",...y}};if(u){let e=u(i,q,j,C,A,v);q=e[0],j=e[1],C=e[2],A=e[3],v=e[4];}if(b){let e=b(i,q,j,C,A,v);q=e[0],j=e[1],C=e[2],A=e[3],v=e[4];}if(isFullObject(A))for(let e in A)q=q.replace(`{${e}}`,A[e].toString());let x=Number(g);C&&(v.body=JSON.stringify(C)),x>0&&(// TODO: combine multiple abort signals
9
+ o[i]=async(o,h)=>{let $,m;let{request:w=n,headers:y=s,timeout:b=c,processReq:g,processRes:E=f,processErr:N=d,throwErr:k=p}=h||{},{params:A,json:C,query:j}=h||{},q=`${a}/${o+"".replace(/^\/*/,"")}`,v={method:i.toUpperCase(),...w,headers:{"content-type":"application/json",...y}};if(u){let e=u(i,q,j,C,A,v);q=e[0],j=e[1],C=e[2],A=e[3],v=e[4];}if(g){let e=g(i,q,j,C,A,v);q=e[0],j=e[1],C=e[2],A=e[3],v=e[4];}if(isFullObject(A))for(let e in A)// TODO: not the greatest assertion...
10
+ q=q.replace(`{${e}}`,A[e]);let x=Number(b);C&&(v.body=JSON.stringify(C)),x>0&&(// TODO: combine multiple abort signals
10
11
  // @see https://dev.to/rashidshamloo/adding-timeout-and-multiple-abort-signals-to-fetch-typescriptreact-33bb
11
12
  $=new AbortController,m=setTimeout(()=>$.abort(),x),v.signal=$.signal),j&&// FIXME: ts-expect-error this assertion is not the best, but nevermind for now
12
- (q+=buildUrlQueryString(j));let O=null,R=null,S="";try{O=await fetch(q,v);}catch(e){S=errorToString(e);}if(m&&clearTimeout(m),O)try{R=E?await E(O,h||{}):await O.json();}catch(e){S=errorToString(e);}if(null===R&&(R=N?await N(S,h||{}):// this error should only happen on network errors or wrong API urls
13
+ (q+=buildUrlQueryString(j));let O=null,R=null,T="";try{O=await fetch(q,v);}catch(e){T=errorToString(e);}if(m&&clearTimeout(m),O)try{R=E?await E(O,h||{}):await O.json();}catch(e){T=errorToString(e);}if(null===R&&(R=N?await N(T,h||{}):// this error should only happen on network errors or wrong API urls
13
14
  // there is no specific HTTP error for this, we can consider these
14
15
  // two statuses though:
15
16
  // - [100 Continue](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/100)
16
17
  // - [501 Not Implemented](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/501)
17
- {data:null,msg:S,status:100,fail:!0,ok:!1}),k&&R?.fail)// throw new ApiError<Failed>(result);
18
+ {data:null,msg:T,status:100,fail:!0,ok:!1}),k&&R?.fail)// throw new ApiError<Failed>(result);
18
19
  // I prefer to throw an object literal despite what eslint says
19
20
  // eslint-disable-next-line no-throw-literal
20
21
  throw R;if("development"===process.env.NODE_ENV){let e=`${R?.status}: api[${l}] ${i.toUpperCase()} ${q}`;R?.ok?console.info(`🟢 ${e}`):console.info(`🔴 ${e}`);}return R},o),{})};
@@ -6,4 +6,4 @@ let createApiResultOk=(t={},e)=>({ok:!0,fail:!1,data:t,msg:e||"",status:200});le
6
6
 
7
7
  exports.createApiResultFail = createApiResultFail;
8
8
  exports.createApiResultOk = createApiResultOk;
9
- exports["default"] = createApiResultFail;
9
+ exports.default = createApiResultFail;
@@ -0,0 +1,2 @@
1
+ export * from "./createApiResultFail";
2
+ export { default } from "./createApiResultFail";
@@ -5,4 +5,4 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  let createApiResultOk=(e={},t)=>({ok:!0,fail:!1,data:e,msg:t||"",status:200});
6
6
 
7
7
  exports.createApiResultOk = createApiResultOk;
8
- exports["default"] = createApiResultOk;
8
+ exports.default = createApiResultOk;
@@ -0,0 +1,2 @@
1
+ export * from "./createApiResultOk";
2
+ export { default } from "./createApiResultOk";
@@ -4,10 +4,6 @@ var e = require('swr');
4
4
  var utils = require('@koine/utils');
5
5
  var createApi = require('./createApi.cjs.js');
6
6
 
7
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
-
9
- var e__default = /*#__PURE__*/_interopDefaultLegacy(e);
10
-
11
7
  /**
12
8
  * Conditional fetching as option
13
9
  *
@@ -42,7 +38,7 @@ var e__default = /*#__PURE__*/_interopDefaultLegacy(e);
42
38
  // }
43
39
  let a=async()=>{let{data:e}=await t.get(i,{...o||{},throwErr:!0});return e};// <Data = any, Error = any>(key: Key, config: SWRConfigurationExtended<Data, Error, Fetcher<Data>> | undefined): SWRResponse<Data, Error>;
44
40
  // eslint-disable-next-line react-hooks/rules-of-hooks
45
- return e__default["default"](p?.when===!1||utils.isFunction(p?.when)&&p?.when()===!1?null:o?[i,o]:[i],a,p)};/**
41
+ return e(p?.when===!1||utils.isFunction(p?.when)&&p?.when()===!1?null:o?[i,o]:[i],a,p)};/**
46
42
  * It creates an api client extended with auto-generated SWR wrapper hooks
47
43
  */let createSwrApi=(...e)=>{let r=createApi.createApi(...e);return r.use=createUseApi(r),r};
48
44
 
package/index.cjs.js CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var ApiError = require('./ApiError.cjs.js');
6
4
  var createApi = require('./createApi.cjs.js');
7
5
  var createApiResultFail = require('./createApiResultFail.cjs.js');
package/index.esm.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./index";
package/next.cjs.js CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var server = require('next/server');
6
4
  var createApiResultFail = require('./createApiResultFail.cjs.js');
7
5
  var createApiResultOk = require('./createApiResultOk.cjs.js');
package/next.esm.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./next";
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@koine/api",
3
3
  "sideEffects": false,
4
4
  "dependencies": {
5
- "@koine/utils": "2.0.0-beta.113"
5
+ "@koine/utils": "2.0.0-beta.114"
6
6
  },
7
7
  "peerDependencies": {
8
8
  "next": "^14.0.4",
@@ -61,5 +61,5 @@
61
61
  },
62
62
  "module": "./index.esm.js",
63
63
  "main": "./index.cjs.js",
64
- "version": "2.0.0-beta.113"
64
+ "version": "2.0.0-beta.114"
65
65
  }
@@ -1,20 +1,14 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var r = require('swr/mutation');
6
4
  var createApi = require('./createApi.cjs.js');
7
5
  var createSwrApi = require('./createSwrApi.cjs.js');
8
6
  require('@koine/utils');
9
7
  require('swr');
10
8
 
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
-
13
- var r__default = /*#__PURE__*/_interopDefaultLegacy(r);
14
-
15
9
  let a=(t,e)=>(a,o,i)=>// config.fetcher = sender;
16
10
  // eslint-disable-next-line react-hooks/rules-of-hooks
17
- r__default["default"](// @ts-expect-error FIXME: I can't get it...
11
+ r(// @ts-expect-error FIXME: I can't get it...
18
12
  o?[a,o]:a,async(// if the first argument is an array the second one are the base options
19
13
  // defined when calling the usePost/Put/etc. hook, these will be overriden
20
14
  // by the _options just here below
@@ -0,0 +1 @@
1
+ export * from "./swr-mutation";
package/swr.cjs.js CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var createSwrApi = require('./createSwrApi.cjs.js');
6
4
  require('swr');
7
5
  require('@koine/utils');
package/swr.esm.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./swr";
package/types.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  type _Response = Response;
2
- type ExtractEndpointParams<T extends string> = string extends T ? Record<string, string> : T extends `${infer _Start}{${infer Param}}${infer Rest}` ? {
2
+ type ExtractEndpointParams<T extends string> = string | number extends T ? Record<string, string> : T extends `${infer _Start}{${infer Param}}${infer Rest}` ? {
3
3
  [k in Param | keyof ExtractEndpointParams<Rest>]: string | number;
4
4
  } : T extends `${infer _Start}{${infer Param}}` ? {
5
5
  [k in Param]: string | number;
6
- } : never;
6
+ } : {};
7
7
  export declare namespace Api {
8
8
  export type ClientOptions = {
9
9
  headers?: RequestInit["headers"];