@koine/api 2.0.0-beta.18 → 2.0.0-beta.181

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.
Files changed (106) hide show
  1. package/ApiError.cjs.d.ts +2 -0
  2. package/ApiError.cjs.default.js +1 -0
  3. package/ApiError.cjs.js +8 -0
  4. package/ApiError.cjs.mjs +2 -0
  5. package/ApiError.d.ts +10 -3
  6. package/ApiError.esm.d.ts +2 -0
  7. package/ApiError.esm.js +3 -0
  8. package/README.md +1 -0
  9. package/createApi.cjs.d.ts +2 -0
  10. package/createApi.cjs.default.js +1 -0
  11. package/createApi.cjs.js +10 -0
  12. package/createApi.cjs.mjs +2 -0
  13. package/createApi.d.ts +8 -1
  14. package/createApi.esm.d.ts +2 -0
  15. package/createApi.esm.js +5 -0
  16. package/createApiResultFail.cjs.d.ts +2 -0
  17. package/createApiResultFail.cjs.default.js +1 -0
  18. package/createApiResultFail.cjs.js +8 -0
  19. package/createApiResultFail.cjs.mjs +2 -0
  20. package/createApiResultFail.d.ts +2 -1
  21. package/createApiResultFail.esm.d.ts +2 -0
  22. package/createApiResultFail.esm.js +3 -0
  23. package/createApiResultOk.cjs.d.ts +2 -0
  24. package/createApiResultOk.cjs.default.js +1 -0
  25. package/createApiResultOk.cjs.js +8 -0
  26. package/createApiResultOk.cjs.mjs +2 -0
  27. package/createApiResultOk.d.ts +2 -1
  28. package/createApiResultOk.esm.d.ts +2 -0
  29. package/createApiResultOk.esm.js +3 -0
  30. package/index.cjs.d.ts +1 -0
  31. package/index.cjs.default.js +1 -0
  32. package/index.cjs.js +13 -0
  33. package/index.cjs.mjs +2 -0
  34. package/index.d.ts +5 -6
  35. package/index.esm.d.ts +1 -0
  36. package/index.esm.js +4 -0
  37. package/next/nextApiResponse.cjs.js +12 -0
  38. package/next/nextApiResponse.d.ts +6 -0
  39. package/next/nextApiResponse.esm.js +7 -0
  40. package/next/nextApiResponse12.cjs.js +11 -0
  41. package/next/nextApiResponse12.d.ts +6 -0
  42. package/next/nextApiResponse12.esm.js +6 -0
  43. package/next.cjs.d.ts +1 -0
  44. package/next.cjs.default.js +1 -0
  45. package/next.cjs.js +9 -0
  46. package/next.cjs.mjs +2 -0
  47. package/next.d.ts +2 -0
  48. package/next.esm.d.ts +1 -0
  49. package/next.esm.js +2 -0
  50. package/package.json +76 -36
  51. package/swr/createSwrApi.cjs.js +13 -0
  52. package/swr/createSwrApi.d.ts +41 -0
  53. package/swr/createSwrApi.esm.js +7 -0
  54. package/swr-mutation/createSwrMutationApi.cjs.js +12 -0
  55. package/swr-mutation/createSwrMutationApi.d.ts +18 -0
  56. package/swr-mutation/createSwrMutationApi.esm.js +7 -0
  57. package/swr-mutation.cjs.d.ts +1 -0
  58. package/swr-mutation.cjs.default.js +1 -0
  59. package/swr-mutation.cjs.js +7 -0
  60. package/swr-mutation.cjs.mjs +2 -0
  61. package/swr-mutation.d.ts +1 -0
  62. package/swr-mutation.esm.d.ts +1 -0
  63. package/swr-mutation.esm.js +1 -0
  64. package/swr.cjs.d.ts +1 -0
  65. package/swr.cjs.default.js +1 -0
  66. package/swr.cjs.js +7 -0
  67. package/swr.cjs.mjs +2 -0
  68. package/swr.d.ts +1 -0
  69. package/swr.esm.d.ts +1 -0
  70. package/swr.esm.js +1 -0
  71. package/types.cjs.d.ts +1 -0
  72. package/types.cjs.default.js +1 -0
  73. package/types.cjs.js +2 -0
  74. package/types.cjs.mjs +2 -0
  75. package/types.d.ts +304 -0
  76. package/types.esm.d.ts +1 -0
  77. package/types.esm.js +1 -0
  78. package/typings.d.ts +12 -533
  79. package/ApiError.js +0 -13
  80. package/cjs/ApiError.d.ts +0 -5
  81. package/cjs/ApiError.js +0 -16
  82. package/cjs/createApi.d.ts +0 -2
  83. package/cjs/createApi.js +0 -124
  84. package/cjs/createApiResultFail.d.ts +0 -2
  85. package/cjs/createApiResultFail.js +0 -14
  86. package/cjs/createApiResultOk.d.ts +0 -2
  87. package/cjs/createApiResultOk.js +0 -15
  88. package/cjs/createSwrApi.d.ts +0 -15
  89. package/cjs/createSwrApi.js +0 -61
  90. package/cjs/index.d.ts +0 -6
  91. package/cjs/index.js +0 -15
  92. package/cjs/nextApiResponse.d.ts +0 -6
  93. package/cjs/nextApiResponse.js +0 -15
  94. package/cjs/nextApiResponse12.d.ts +0 -6
  95. package/cjs/nextApiResponse12.js +0 -19
  96. package/cjs/package.json +0 -17
  97. package/createApi.js +0 -120
  98. package/createApiResultFail.js +0 -10
  99. package/createApiResultOk.js +0 -11
  100. package/createSwrApi.d.ts +0 -15
  101. package/createSwrApi.js +0 -57
  102. package/index.js +0 -6
  103. package/nextApiResponse.d.ts +0 -6
  104. package/nextApiResponse.js +0 -12
  105. package/nextApiResponse12.d.ts +0 -6
  106. package/nextApiResponse12.js +0 -15
@@ -0,0 +1,2 @@
1
+ export * from "./ApiError";
2
+ export { default } from "./ApiError";
@@ -0,0 +1 @@
1
+ exports._default = require('./ApiError.cjs.js').default;
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ class ApiError extends Error{constructor(r){super(`Request failed with ${r.status} ${r.msg}`),this.name="ApiError",Object.assign(this,r);}}
6
+
7
+ exports.ApiError = ApiError;
8
+ exports.default = ApiError;
@@ -0,0 +1,2 @@
1
+ export * from './ApiError.cjs.js';
2
+ export { _default as default } from './ApiError.cjs.default.js';
package/ApiError.d.ts CHANGED
@@ -1,5 +1,12 @@
1
- /// <reference types="./typings.d.ts" />
2
- export declare class ApiError<TResponseFail extends Koine.Api.ResponseFail = unknown> extends Error {
3
- constructor(result: Koine.Api.ResultFail<TResponseFail>);
1
+ import type { Api } from "./types";
2
+ /**
3
+ * Custom `ApiError` class extending `Error` to throw in failed response.
4
+ *
5
+ * @see https://eslint.org/docs/rules/no-throw-literal
6
+ * @see https://github.com/sindresorhus/ky/blob/main/source/errors/HTTPError.ts
7
+ *
8
+ */
9
+ export declare class ApiError<TResponseFail extends Api.ResponseFail = unknown> extends Error {
10
+ constructor(result: Api.ResultFail<TResponseFail>);
4
11
  }
5
12
  export default ApiError;
@@ -0,0 +1,2 @@
1
+ export * from "./ApiError";
2
+ export { default } from "./ApiError";
@@ -0,0 +1,3 @@
1
+ class ApiError extends Error{constructor(r){super(`Request failed with ${r.status} ${r.msg}`),this.name="ApiError",Object.assign(this,r);}}
2
+
3
+ export { ApiError, ApiError as default };
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # @koine/api
@@ -0,0 +1,2 @@
1
+ export * from "./createApi";
2
+ export { default } from "./createApi";
@@ -0,0 +1 @@
1
+ exports._default = require('./createApi.cjs.js').default;
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('@koine/utils');
6
+
7
+ let o=["get","post","put","patch","delete"];let createApi=(l,a,i)=>{let{fetchFn:s=fetch,headers:n={},request:p={},throwErr:c,timeout:u=1e4,processReq:f,processRes:h,processErr:d}=i||{};return o.reduce((o,i)=>(o[i]=async(o,$)=>{let m,w;let{fetchFn:y=s,request:b=p,headers:g=n,timeout:E=u,processReq:N,processRes:k=h,processErr:A=d,throwErr:C=c}=$||{},{params:j,json:q,query:v}=$||{},x=`${a}/${o+"".replace(/^\/*/,"")}`,O={method:i.toUpperCase(),...b,headers:{"content-type":"application/json",...g}};if(f){let e=f(i,x,v,q,j,O);x=e[0],v=e[1],q=e[2],j=e[3],O=e[4];}if(N){let e=N(i,x,v,q,j,O);x=e[0],v=e[1],q=e[2],j=e[3],O=e[4];}if(utils.isFullObject(j))for(let e in j)x=x.replace(`{${e}}`,j[e]);let R=Number(E);q&&(O.body=JSON.stringify(q)),R>0&&(m=new AbortController,w=setTimeout(()=>m.abort(),R),O.signal=m.signal),v&&(x+=utils.buildUrlQueryString(v));let T=null,U=null,D="";try{T=await y(x,O);}catch(e){D=utils.errorToString(e);}if(w&&clearTimeout(w),T)try{U=k?await k(T,$||{}):await T.json();}catch(e){D=utils.errorToString(e);}if(null===U&&(U=A?await A(D,$||{}):{data:null,msg:D,status:100,fail:!0,ok:!1}),C&&U?.fail)throw U;if("development"===process.env.NODE_ENV){let e=`${U?.status}: api[${l}] ${i.toUpperCase()} ${x}`;U?.ok?console.info(`🟢 ${e}`):console.info(`🔴 ${e}`);}return U},o),{})};
8
+
9
+ exports.createApi = createApi;
10
+ exports.default = createApi;
@@ -0,0 +1,2 @@
1
+ export * from './createApi.cjs.js';
2
+ export { _default as default } from './createApi.cjs.default.js';
package/createApi.d.ts CHANGED
@@ -1,2 +1,9 @@
1
- export declare const createApi: <TEndpoints extends Koine.Api.Endpoints>(apiName: string, baseUrl: string, options?: Koine.Api.ClientOptions) => Koine.Api.Client<TEndpoints>;
1
+ import type { Api } from "./types";
2
+ /**
3
+ * Create api client
4
+ *
5
+ * @param apiName Short name to use in debug logs
6
+ * @param baseUrl Either relative or absolute, it must end without trailing slash
7
+ */
8
+ export declare let createApi: <TEndpoints extends Api.Endpoints>(apiName: string, baseUrl: string, defaultOptions?: Api.ClientOptions) => Api.Client<TEndpoints>;
2
9
  export default createApi;
@@ -0,0 +1,2 @@
1
+ export * from "./createApi";
2
+ export { default } from "./createApi";
@@ -0,0 +1,5 @@
1
+ import { isFullObject, buildUrlQueryString, errorToString } from '@koine/utils';
2
+
3
+ let o=["get","post","put","patch","delete"];let createApi=(l,a,i)=>{let{fetchFn:s=fetch,headers:n={},request:p={},throwErr:c,timeout:u=1e4,processReq:f,processRes:h,processErr:d}=i||{};return o.reduce((o,i)=>(o[i]=async(o,$)=>{let m,w;let{fetchFn:y=s,request:b=p,headers:g=n,timeout:E=u,processReq:N,processRes:k=h,processErr:A=d,throwErr:C=c}=$||{},{params:j,json:q,query:v}=$||{},x=`${a}/${o+"".replace(/^\/*/,"")}`,O={method:i.toUpperCase(),...b,headers:{"content-type":"application/json",...g}};if(f){let e=f(i,x,v,q,j,O);x=e[0],v=e[1],q=e[2],j=e[3],O=e[4];}if(N){let e=N(i,x,v,q,j,O);x=e[0],v=e[1],q=e[2],j=e[3],O=e[4];}if(isFullObject(j))for(let e in j)x=x.replace(`{${e}}`,j[e]);let R=Number(E);q&&(O.body=JSON.stringify(q)),R>0&&(m=new AbortController,w=setTimeout(()=>m.abort(),R),O.signal=m.signal),v&&(x+=buildUrlQueryString(v));let T=null,U=null,D="";try{T=await y(x,O);}catch(e){D=errorToString(e);}if(w&&clearTimeout(w),T)try{U=k?await k(T,$||{}):await T.json();}catch(e){D=errorToString(e);}if(null===U&&(U=A?await A(D,$||{}):{data:null,msg:D,status:100,fail:!0,ok:!1}),C&&U?.fail)throw U;if("development"===process.env.NODE_ENV){let e=`${U?.status}: api[${l}] ${i.toUpperCase()} ${x}`;U?.ok?console.info(`🟢 ${e}`):console.info(`🔴 ${e}`);}return U},o),{})};
4
+
5
+ export { createApi, createApi as default };
@@ -0,0 +1,2 @@
1
+ export * from "./createApiResultFail";
2
+ export { default } from "./createApiResultFail";
@@ -0,0 +1 @@
1
+ exports._default = require('./createApiResultFail.cjs.js').default;
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ let createApiResultFail=(e={},t,a)=>({fail:!0,data:e,msg:t||"",status:a||404});
6
+
7
+ exports.createApiResultFail = createApiResultFail;
8
+ exports.default = createApiResultFail;
@@ -0,0 +1,2 @@
1
+ export * from './createApiResultFail.cjs.js';
2
+ export { _default as default } from './createApiResultFail.cjs.default.js';
@@ -1,2 +1,3 @@
1
- export declare const createApiResultFail: <T>(data?: T, msg?: string, status?: number) => Koine.Api.ResultFail<T>;
1
+ import type { Api } from "./types";
2
+ export declare let createApiResultFail: <T>(data?: T, msg?: string, status?: number) => Api.ResultFail<T>;
2
3
  export default createApiResultFail;
@@ -0,0 +1,2 @@
1
+ export * from "./createApiResultFail";
2
+ export { default } from "./createApiResultFail";
@@ -0,0 +1,3 @@
1
+ let createApiResultFail=(e={},t,a)=>({fail:!0,data:e,msg:t||"",status:a||404});
2
+
3
+ export { createApiResultFail, createApiResultFail as default };
@@ -0,0 +1,2 @@
1
+ export * from "./createApiResultOk";
2
+ export { default } from "./createApiResultOk";
@@ -0,0 +1 @@
1
+ exports._default = require('./createApiResultOk.cjs.js').default;
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ let createApiResultOk=(e={},t)=>({ok:!0,fail:!1,data:e,msg:t||"",status:200});
6
+
7
+ exports.createApiResultOk = createApiResultOk;
8
+ exports.default = createApiResultOk;
@@ -0,0 +1,2 @@
1
+ export * from './createApiResultOk.cjs.js';
2
+ export { _default as default } from './createApiResultOk.cjs.default.js';
@@ -1,2 +1,3 @@
1
- export declare const createApiResultOk: <T>(data?: T, msg?: string) => Koine.Api.ResultOk<T>;
1
+ import type { Api } from "./types";
2
+ export declare let createApiResultOk: <T>(data?: T, msg?: string) => Api.ResultOk<T>;
2
3
  export default createApiResultOk;
@@ -0,0 +1,2 @@
1
+ export * from "./createApiResultOk";
2
+ export { default } from "./createApiResultOk";
@@ -0,0 +1,3 @@
1
+ let createApiResultOk=(e={},t)=>({ok:!0,fail:!1,data:e,msg:t||"",status:200});
2
+
3
+ export { createApiResultOk, createApiResultOk as default };
package/index.cjs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./index";
@@ -0,0 +1 @@
1
+ exports._default = require('./index.cjs.js').default;
package/index.cjs.js ADDED
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var ApiError = require('./ApiError.cjs.js');
4
+ var createApi = require('./createApi.cjs.js');
5
+ var createApiResultFail = require('./createApiResultFail.cjs.js');
6
+ var createApiResultOk = require('./createApiResultOk.cjs.js');
7
+
8
+
9
+
10
+ exports.ApiError = ApiError.ApiError;
11
+ exports.createApi = createApi.createApi;
12
+ exports.createApiResultFail = createApiResultFail.createApiResultFail;
13
+ exports.createApiResultOk = createApiResultOk.createApiResultOk;
package/index.cjs.mjs ADDED
@@ -0,0 +1,2 @@
1
+ export * from './index.cjs.js';
2
+ export { _default as default } from './index.cjs.default.js';
package/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- export { ApiError } from "./ApiError.js";
2
- export { createApi } from "./createApi.js";
3
- export { createApiResultFail } from "./createApiResultFail.js";
4
- export { createApiResultOk } from "./createApiResultOk.js";
5
- export { createSwrApi } from "./createSwrApi.js";
6
- export { nextApiResponse12 } from "./nextApiResponse12.js";
1
+ export { ApiError } from "./ApiError";
2
+ export { createApi } from "./createApi";
3
+ export { createApiResultFail } from "./createApiResultFail";
4
+ export { createApiResultOk } from "./createApiResultOk";
5
+ export type { Api } from "./types";
package/index.esm.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./index";
package/index.esm.js ADDED
@@ -0,0 +1,4 @@
1
+ export { ApiError } from './ApiError.esm.js';
2
+ export { createApi } from './createApi.esm.js';
3
+ export { createApiResultFail } from './createApiResultFail.esm.js';
4
+ export { createApiResultOk } from './createApiResultOk.esm.js';
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var server = require('next/server');
6
+ var createApiResultFail = require('../createApiResultFail.cjs.js');
7
+ var createApiResultOk = require('../createApiResultOk.cjs.js');
8
+
9
+ let nextApiResponse={ok:(t,r)=>server.NextResponse.json(createApiResultOk.createApiResultOk(t,r)),fail:(o,r,p)=>server.NextResponse.json(createApiResultFail.createApiResultFail(o,r,p))};
10
+
11
+ exports.default = nextApiResponse;
12
+ exports.nextApiResponse = nextApiResponse;
@@ -0,0 +1,6 @@
1
+ import { NextResponse } from "next/server";
2
+ export declare let nextApiResponse: {
3
+ ok<T>(data: T, msg?: string): NextResponse<import("..").Api.ResultOk<T>>;
4
+ fail<T>(data: T, msg?: string, status?: number): NextResponse<import("..").Api.ResultFail<T>>;
5
+ };
6
+ export default nextApiResponse;
@@ -0,0 +1,7 @@
1
+ import { NextResponse } from 'next/server';
2
+ import { createApiResultFail } from '../createApiResultFail.esm.js';
3
+ import { createApiResultOk } from '../createApiResultOk.esm.js';
4
+
5
+ let nextApiResponse={ok:(t,r)=>NextResponse.json(createApiResultOk(t,r)),fail:(o,r,p)=>NextResponse.json(createApiResultFail(o,r,p))};
6
+
7
+ export { nextApiResponse as default, nextApiResponse };
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var createApiResultFail = require('../createApiResultFail.cjs.js');
6
+ var createApiResultOk = require('../createApiResultOk.cjs.js');
7
+
8
+ let nextApiResponse12=s=>({ok(e,o){s.status(200).json(createApiResultOk.createApiResultOk(e,o));},fail(t,o,p){s.status(p||404).json(createApiResultFail.createApiResultFail(t,o,p));}});
9
+
10
+ exports.default = nextApiResponse12;
11
+ exports.nextApiResponse12 = nextApiResponse12;
@@ -0,0 +1,6 @@
1
+ import type { NextApiResponse } from "next";
2
+ export declare let nextApiResponse12: (nextRes: NextApiResponse) => {
3
+ ok<T>(data: T, msg?: string): void;
4
+ fail<T>(data: T, msg?: string, status?: number): void;
5
+ };
6
+ export default nextApiResponse12;
@@ -0,0 +1,6 @@
1
+ import { createApiResultFail } from '../createApiResultFail.esm.js';
2
+ import { createApiResultOk } from '../createApiResultOk.esm.js';
3
+
4
+ let nextApiResponse12=s=>({ok(e,o){s.status(200).json(createApiResultOk(e,o));},fail(t,o,p){s.status(p||404).json(createApiResultFail(t,o,p));}});
5
+
6
+ export { nextApiResponse12 as default, nextApiResponse12 };
package/next.cjs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./next";
@@ -0,0 +1 @@
1
+ exports._default = require('./next.cjs.js').default;
package/next.cjs.js ADDED
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var nextApiResponse = require('./next/nextApiResponse.cjs.js');
4
+ var nextApiResponse12 = require('./next/nextApiResponse12.cjs.js');
5
+
6
+
7
+
8
+ exports.nextApiResponse = nextApiResponse.nextApiResponse;
9
+ exports.nextApiResponse12 = nextApiResponse12.nextApiResponse12;
package/next.cjs.mjs ADDED
@@ -0,0 +1,2 @@
1
+ export * from './next.cjs.js';
2
+ export { _default as default } from './next.cjs.default.js';
package/next.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { nextApiResponse } from "./next/nextApiResponse";
2
+ export { nextApiResponse12 } from "./next/nextApiResponse12";
package/next.esm.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./next";
package/next.esm.js ADDED
@@ -0,0 +1,2 @@
1
+ export { nextApiResponse } from './next/nextApiResponse.esm.js';
2
+ export { nextApiResponse12 } from './next/nextApiResponse12.esm.js';
package/package.json CHANGED
@@ -1,55 +1,95 @@
1
1
  {
2
2
  "name": "@koine/api",
3
3
  "sideEffects": false,
4
- "dependencies": {
5
- "@koine/utils": "2.0.0-beta.18"
6
- },
7
- "peerDependenciesMeta": {
8
- "next": {
9
- "optional": true
10
- },
11
- "swr": {
12
- "optional": true
13
- }
14
- },
15
- "main": "./cjs/index.js",
16
- "types": "./index.d.ts",
17
- "type": "module",
18
- "module": "./index.js",
19
4
  "exports": {
5
+ "./typings": {
6
+ "types": "./typings.d.ts"
7
+ },
8
+ "./swr/createSwrApi": {
9
+ "module": "./swr/createSwrApi.esm.js",
10
+ "types": "./swr/createSwrApi.d.ts",
11
+ "import": "./swr/createSwrApi.esm.js",
12
+ "default": "./swr/createSwrApi.cjs.js"
13
+ },
14
+ "./swr-mutation/createSwrApi": {
15
+ "module": "./swr-mutation/createSwrMutationApi.esm.js",
16
+ "types": "./swr-mutation/createSwrMutationApi.d.ts",
17
+ "import": "./swr-mutation/createSwrMutationApi.esm.js",
18
+ "default": "./swr-mutation/createSwrMutationApi.cjs.js"
19
+ },
20
+ "./package.json": "./package.json",
20
21
  ".": {
21
- "require": "./cjs/index.js",
22
- "import": "./index.js"
22
+ "module": "./index.esm.js",
23
+ "types": "./index.esm.d.ts",
24
+ "import": "./index.cjs.mjs",
25
+ "default": "./index.cjs.js"
23
26
  },
24
27
  "./ApiError": {
25
- "require": "./cjs/ApiError.js",
26
- "import": "./ApiError.js"
28
+ "module": "./ApiError.esm.js",
29
+ "types": "./ApiError.esm.d.ts",
30
+ "import": "./ApiError.cjs.mjs",
31
+ "default": "./ApiError.cjs.js"
27
32
  },
28
33
  "./createApi": {
29
- "require": "./cjs/createApi.js",
30
- "import": "./createApi.js"
34
+ "module": "./createApi.esm.js",
35
+ "types": "./createApi.esm.d.ts",
36
+ "import": "./createApi.cjs.mjs",
37
+ "default": "./createApi.cjs.js"
31
38
  },
32
39
  "./createApiResultFail": {
33
- "require": "./cjs/createApiResultFail.js",
34
- "import": "./createApiResultFail.js"
40
+ "module": "./createApiResultFail.esm.js",
41
+ "types": "./createApiResultFail.esm.d.ts",
42
+ "import": "./createApiResultFail.cjs.mjs",
43
+ "default": "./createApiResultFail.cjs.js"
35
44
  },
36
45
  "./createApiResultOk": {
37
- "require": "./cjs/createApiResultOk.js",
38
- "import": "./createApiResultOk.js"
46
+ "module": "./createApiResultOk.esm.js",
47
+ "types": "./createApiResultOk.esm.d.ts",
48
+ "import": "./createApiResultOk.cjs.mjs",
49
+ "default": "./createApiResultOk.cjs.js"
39
50
  },
40
- "./createSwrApi": {
41
- "require": "./cjs/createSwrApi.js",
42
- "import": "./createSwrApi.js"
51
+ "./next": {
52
+ "module": "./next.esm.js",
53
+ "types": "./next.esm.d.ts",
54
+ "import": "./next.cjs.mjs",
55
+ "default": "./next.cjs.js"
43
56
  },
44
- "./nextApiResponse": {
45
- "require": "./cjs/nextApiResponse.js",
46
- "import": "./nextApiResponse.js"
57
+ "./swr-mutation": {
58
+ "module": "./swr-mutation.esm.js",
59
+ "types": "./swr-mutation.esm.d.ts",
60
+ "import": "./swr-mutation.cjs.mjs",
61
+ "default": "./swr-mutation.cjs.js"
47
62
  },
48
- "./nextApiResponse12": {
49
- "require": "./cjs/nextApiResponse12.js",
50
- "import": "./nextApiResponse12.js"
63
+ "./swr": {
64
+ "module": "./swr.esm.js",
65
+ "types": "./swr.esm.d.ts",
66
+ "import": "./swr.cjs.mjs",
67
+ "default": "./swr.cjs.js"
68
+ },
69
+ "./types": {
70
+ "module": "./types.esm.js",
71
+ "types": "./types.esm.d.ts",
72
+ "import": "./types.cjs.mjs",
73
+ "default": "./types.cjs.js"
74
+ }
75
+ },
76
+ "dependencies": {
77
+ "@koine/utils": "2.0.0-beta.181"
78
+ },
79
+ "peerDependencies": {
80
+ "next": "^14.0.4",
81
+ "swr": "^2.2.4"
82
+ },
83
+ "peerDependenciesMeta": {
84
+ "next": {
85
+ "optional": true
86
+ },
87
+ "swr": {
88
+ "optional": true
51
89
  }
52
90
  },
53
- "peerDependencies": {},
54
- "version": "2.0.0-beta.18"
91
+ "module": "./index.esm.js",
92
+ "main": "./index.cjs.js",
93
+ "types": "./index.esm.d.ts",
94
+ "version": "2.0.0-beta.181"
55
95
  }
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var e = require('swr');
6
+ var utils = require('@koine/utils');
7
+ var createApi = require('../createApi.cjs.js');
8
+
9
+ let createUseApi=(t,i)=>(o,p,a)=>{let l={...i||{},...a||{}},n=async()=>{let{data:e}=await t.get(o,{...p||{},throwErr:!0});return e};return e(l?.when===!1||utils.isFunction(l?.when)&&l?.when()===!1?null:p?[o,p]:[o],n,l)};let createSwrApi=(e,r,i,o)=>{let p=createApi.createApi(e,r,i);return p.use=createUseApi(p,o),p};
10
+
11
+ exports.createSwrApi = createSwrApi;
12
+ exports.createUseApi = createUseApi;
13
+ exports.default = createSwrApi;
@@ -0,0 +1,41 @@
1
+ import { type BareFetcher, type SWRConfiguration, type SWRResponse } from "swr";
2
+ import type { Api } from "../types";
3
+ export declare namespace ApiSWR {
4
+ type ConfigurationExtended<Data = any, Error = any, Fn extends BareFetcher<any> = BareFetcher<any>> = SWRConfiguration<Data, Error, Fn> & {
5
+ /**
6
+ * Conditional fetching as option
7
+ *
8
+ * Moving this to an option allows us to keep the endpoints typed dictionary,
9
+ * e.g. we can write:
10
+ *
11
+ * ```js
12
+ * const { data, mutate } = myApi.use("User/{id}",
13
+ * { params: { id: aVariableMaybeContainingAnId || "" }, },
14
+ * { when: !!aVariableMaybeContainingAnId }
15
+ * );
16
+ *
17
+ * // we still have typed `data`, `mutate`
18
+ * ```
19
+ * @see https://swr.vercel.app/docs/conditional-fetching
20
+ */
21
+ when?: boolean | (() => boolean);
22
+ };
23
+ /**
24
+ * The `api` interface generated by `createApi`
25
+ */
26
+ type Client<TEndpoints extends Api.Endpoints> = Api.Client<TEndpoints> & {
27
+ use: ReturnType<typeof createUseApi<TEndpoints>>;
28
+ };
29
+ }
30
+ /**
31
+ * @private
32
+ */
33
+ export declare let createUseApi: <TEndpoints extends Api.Endpoints>(api: Api.Client<TEndpoints>, defaultSwrConfig?: ApiSWR.ConfigurationExtended) => <TEndpoint extends Api.EndpointUrl<TEndpoints>>(endpoint: TEndpoint, options?: Api.EndpointOptions<TEndpoints, TEndpoint, "get">, swrConfig?: ApiSWR.ConfigurationExtended<Api.EndpointResponseOk<TEndpoints, TEndpoint, "get">, Api.EndpointResponseFail<TEndpoints, TEndpoint, "get">>) => SWRResponse<Api.EndpointResponseOk<TEndpoints, TEndpoint, "get">, Api.EndpointResponseFail<TEndpoints, TEndpoint, "get">>;
34
+ /**
35
+ * It creates an api client extended with auto-generated SWR wrapper hooks
36
+ *
37
+ * @param apiName Short name to use in debug logs
38
+ * @param baseUrl Either relative or absolute, it must end without trailing slash
39
+ */
40
+ export declare let createSwrApi: <TEndpoints extends Api.Endpoints>(apiName: string, baseUrl: string, defaultOptions?: Api.ClientOptions, defaultSwrConfig?: ApiSWR.ConfigurationExtended) => ApiSWR.Client<TEndpoints>;
41
+ export default createSwrApi;
@@ -0,0 +1,7 @@
1
+ import e from 'swr';
2
+ import { isFunction } from '@koine/utils';
3
+ import { createApi } from '../createApi.esm.js';
4
+
5
+ let createUseApi=(t,i)=>(o,p,a)=>{let l={...i||{},...a||{}},n=async()=>{let{data:e}=await t.get(o,{...p||{},throwErr:!0});return e};return e(l?.when===!1||isFunction(l?.when)&&l?.when()===!1?null:p?[o,p]:[o],n,l)};let createSwrApi=(e,r,i,o)=>{let p=createApi(e,r,i);return p.use=createUseApi(p,o),p};
6
+
7
+ export { createSwrApi, createUseApi, createSwrApi as default };
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var r = require('swr/mutation');
6
+ var createApi = require('../createApi.cjs.js');
7
+ var createSwrApi = require('../swr/createSwrApi.cjs.js');
8
+
9
+ let a=(t,e)=>(a,o,i)=>r(o?[a,o]:a,async(r,a)=>{let o=Array.isArray(r)?r[0]:r,i=Array.isArray(r)?r[1]:{},{ok:p,data:s}=await t[e](o,{...i,...a.arg||{},throwErr:!0});return s},i);let createSwrMutationApi=(...r)=>{let o=createApi.createApi(...r);return o.use=createSwrApi.createUseApi(o),["post","put","patch","delete"].forEach(r=>{o[`use${r.charAt(0).toUpperCase()+r.slice(1)}`]=a(o,r);}),o};
10
+
11
+ exports.createSwrMutationApi = createSwrMutationApi;
12
+ exports.default = createSwrMutationApi;
@@ -0,0 +1,18 @@
1
+ import { type SWRMutationConfiguration, type SWRMutationResponse } from "swr/mutation";
2
+ import { createUseApi } from "../swr/createSwrApi";
3
+ import type { Api } from "../types";
4
+ type MutationRequestMethod = Exclude<Api.RequestMethod, "get">;
5
+ type MutationHookName = Exclude<keyof Api.HooksMapsByName, "use">;
6
+ type KoineApiMethodHookSWR<THookName extends MutationHookName, TEndpoints extends Api.Endpoints> = <TEndpoint extends Api.EndpointUrl<TEndpoints>, TMethod extends MutationRequestMethod = Api.HooksMapsByName[THookName]>(endpoint: TEndpoint, options?: Api.EndpointOptions<TEndpoints, TEndpoint, TMethod>, config?: SWRMutationConfiguration<Api.EndpointResponseOk<TEndpoints, TEndpoint, TMethod>, Api.EndpointResponseFail<TEndpoints, TEndpoint, TMethod>, TEndpoint, Api.EndpointOptions<TEndpoints, TEndpoint, TMethod>>) => SWRMutationResponse<Api.EndpointResponseOk<TEndpoints, TEndpoint, TMethod>, Api.EndpointResponseFail<TEndpoints, TEndpoint, TMethod>, TEndpoint, Api.EndpointOptions<TEndpoints, TEndpoint, TMethod>>;
7
+ /**
8
+ * It creates an api client extended with auto-generated SWR wrapper hooks
9
+ */
10
+ export declare let createSwrMutationApi: <TEndpoints extends Api.Endpoints>(apiName: string, baseUrl: string, defaultOptions?: Api.ClientOptions | undefined) => Api.Client<TEndpoints> & {
11
+ usePost: KoineApiMethodHookSWR<"usePost", TEndpoints>;
12
+ usePut: KoineApiMethodHookSWR<"usePut", TEndpoints>;
13
+ usePatch: KoineApiMethodHookSWR<"usePatch", TEndpoints>;
14
+ useDelete: KoineApiMethodHookSWR<"useDelete", TEndpoints>;
15
+ } & {
16
+ use: ReturnType<typeof createUseApi<TEndpoints>>;
17
+ };
18
+ export default createSwrMutationApi;
@@ -0,0 +1,7 @@
1
+ import r from 'swr/mutation';
2
+ import { createApi } from '../createApi.esm.js';
3
+ import { createUseApi } from '../swr/createSwrApi.esm.js';
4
+
5
+ let a=(t,e)=>(a,o,i)=>r(o?[a,o]:a,async(r,a)=>{let o=Array.isArray(r)?r[0]:r,i=Array.isArray(r)?r[1]:{},{ok:p,data:s}=await t[e](o,{...i,...a.arg||{},throwErr:!0});return s},i);let createSwrMutationApi=(...r)=>{let o=createApi(...r);return o.use=createUseApi(o),["post","put","patch","delete"].forEach(r=>{o[`use${r.charAt(0).toUpperCase()+r.slice(1)}`]=a(o,r);}),o};
6
+
7
+ export { createSwrMutationApi, createSwrMutationApi as default };
@@ -0,0 +1 @@
1
+ export * from "./swr-mutation";
@@ -0,0 +1 @@
1
+ exports._default = require('./swr-mutation.cjs.js').default;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var createSwrMutationApi = require('./swr-mutation/createSwrMutationApi.cjs.js');
4
+
5
+
6
+
7
+ exports.createSwrMutationApi = createSwrMutationApi.createSwrMutationApi;
@@ -0,0 +1,2 @@
1
+ export * from './swr-mutation.cjs.js';
2
+ export { _default as default } from './swr-mutation.cjs.default.js';
@@ -0,0 +1 @@
1
+ export { createSwrMutationApi } from "./swr-mutation/createSwrMutationApi";
@@ -0,0 +1 @@
1
+ export * from "./swr-mutation";
@@ -0,0 +1 @@
1
+ export { createSwrMutationApi } from './swr-mutation/createSwrMutationApi.esm.js';
package/swr.cjs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./swr";
@@ -0,0 +1 @@
1
+ exports._default = require('./swr.cjs.js').default;
package/swr.cjs.js ADDED
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var createSwrApi = require('./swr/createSwrApi.cjs.js');
4
+
5
+
6
+
7
+ exports.createSwrApi = createSwrApi.createSwrApi;
package/swr.cjs.mjs ADDED
@@ -0,0 +1,2 @@
1
+ export * from './swr.cjs.js';
2
+ export { _default as default } from './swr.cjs.default.js';
package/swr.d.ts ADDED
@@ -0,0 +1 @@
1
+ export { createSwrApi, type ApiSWR } from "./swr/createSwrApi";