@koine/api 2.0.0-beta.37 → 2.0.0-beta.39

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 (52) hide show
  1. package/README.md +1 -0
  2. package/index.cjs.d.ts +1 -0
  3. package/index.cjs.default.js +1 -0
  4. package/index.cjs.js +13 -0
  5. package/index.cjs.mjs +2 -0
  6. package/index.d.ts +8 -6
  7. package/index.esm.js +5 -0
  8. package/next.cjs.d.ts +1 -0
  9. package/next.cjs.default.js +1 -0
  10. package/next.cjs.js +12 -0
  11. package/next.cjs.mjs +2 -0
  12. package/next.d.ts +11 -0
  13. package/next.esm.js +7 -0
  14. package/package.json +22 -39
  15. package/swr.cjs.d.ts +1 -0
  16. package/swr.cjs.default.js +1 -0
  17. package/swr.cjs.js +17 -0
  18. package/swr.cjs.mjs +2 -0
  19. package/{cjs/createSwrApi.d.ts → swr.d.ts} +2 -2
  20. package/swr.esm.js +8 -0
  21. package/ApiError.d.ts +0 -5
  22. package/ApiError.js +0 -13
  23. package/cjs/ApiError.d.ts +0 -5
  24. package/cjs/ApiError.js +0 -16
  25. package/cjs/createApi.d.ts +0 -3
  26. package/cjs/createApi.js +0 -124
  27. package/cjs/createApiResultFail.d.ts +0 -3
  28. package/cjs/createApiResultFail.js +0 -14
  29. package/cjs/createApiResultOk.d.ts +0 -3
  30. package/cjs/createApiResultOk.js +0 -15
  31. package/cjs/createSwrApi.js +0 -61
  32. package/cjs/index.d.ts +0 -6
  33. package/cjs/index.js +0 -15
  34. package/cjs/nextApiResponse.d.ts +0 -7
  35. package/cjs/nextApiResponse.js +0 -15
  36. package/cjs/nextApiResponse12.d.ts +0 -6
  37. package/cjs/nextApiResponse12.js +0 -19
  38. package/cjs/package.json +0 -19
  39. package/createApi.d.ts +0 -3
  40. package/createApi.js +0 -120
  41. package/createApiResultFail.d.ts +0 -3
  42. package/createApiResultFail.js +0 -10
  43. package/createApiResultOk.d.ts +0 -3
  44. package/createApiResultOk.js +0 -11
  45. package/createSwrApi.d.ts +0 -15
  46. package/createSwrApi.js +0 -57
  47. package/index.js +0 -6
  48. package/nextApiResponse.d.ts +0 -7
  49. package/nextApiResponse.js +0 -12
  50. package/nextApiResponse12.d.ts +0 -6
  51. package/nextApiResponse12.js +0 -15
  52. package/typings.d.ts +0 -534
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # @koine/api
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
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('@koine/utils');
6
+
7
+ class ApiError extends Error{constructor(e){super(`Request failed with ${e.status} ${e.msg}`),this.name="ApiError",Object.assign(this,e);}}let createApiResultOk=(e={},t)=>({ok:!0,fail:!1,data:e,msg:t||"",status:200});let createApiResultFail=(e={},t,r)=>({fail:!0,data:e,msg:t||"",status:r||404});let apiMethods=["get","post","put","patch","delete"];let createApi=(s,o,a)=>{let{headers:i={},request:l={},throwErr:p,timeout:n=1e4,processReq:c,processRes:u,processErr:f}=a||{};return apiMethods.reduce((a,h)=>(a[h]=async(a,d)=>{let m,$;let{request:g=l,headers:w=i,timeout:E=n,processReq:x,processRes:y=u,processErr:A=f,throwErr:b=p}=d||{},{params:k,json:R,query:N}=d||{},O=`${o}/${a+"".replace(/^\/*/,"")}`,j={method:h.toUpperCase(),...g,headers:{"content-type":"application/json",...w}};if(c){let e=c(h,O,N,R,k,j);O=e[0],N=e[1],R=e[2],k=e[3],j=e[4];}if(x){let e=x(h,O,N,R,k,j);O=e[0],N=e[1],R=e[2],k=e[3],j=e[4];}if(utils.isFullObject(k))for(let e in k)O=O.replace(`{${e}}`,k[e].toString());let q=Number(E);R&&(j.body=JSON.stringify(R)),q>0&&(m=new AbortController,$=setTimeout(()=>m.abort(),q),j.signal=m.signal),N&&(O+=utils.buildUrlQueryString(N));let C=null,v=null,M="";try{C=await fetch(O,j);}catch(e){M=utils.errorToString(e);}if($&&clearTimeout($),C)try{v=y?await y(C,d||{}):await C.json();}catch(e){M=utils.errorToString(e);}if(null===v&&(v=A?await A(M,d||{}):{data:null,msg:M,status:100,fail:!0,ok:!1}),b&&v?.fail)throw v;if("development"===process.env.NODE_ENV){let e=`${v?.status}: api[${s}] ${h.toUpperCase()} ${O}`;v?.ok?console.info(`🟢 ${e}`):console.info(`🔴 ${e}`);}return v},a),{})};
8
+
9
+ exports.ApiError = ApiError;
10
+ exports.apiMethods = apiMethods;
11
+ exports.createApi = createApi;
12
+ exports.createApiResultFail = createApiResultFail;
13
+ exports.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,8 @@
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
+ /// <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>);
4
+ }
5
+ export declare let createApiResultOk: <T>(data?: T, msg?: string) => Koine.Api.ResultOk<T>;
6
+ export declare let createApiResultFail: <T>(data?: T, msg?: string, status?: number) => Koine.Api.ResultFail<T>;
7
+ export declare let apiMethods: Koine.Api.RequestMethod[];
8
+ export declare let createApi: <TEndpoints extends Koine.Api.Endpoints>(apiName: string, baseUrl: string, options?: Koine.Api.ClientOptions) => Koine.Api.Client<TEndpoints>;
package/index.esm.js ADDED
@@ -0,0 +1,5 @@
1
+ import { isFullObject, buildUrlQueryString, errorToString } from '@koine/utils';
2
+
3
+ class ApiError extends Error{constructor(e){super(`Request failed with ${e.status} ${e.msg}`),this.name="ApiError",Object.assign(this,e);}}let createApiResultOk=(e={},t)=>({ok:!0,fail:!1,data:e,msg:t||"",status:200});let createApiResultFail=(e={},t,r)=>({fail:!0,data:e,msg:t||"",status:r||404});let apiMethods=["get","post","put","patch","delete"];let createApi=(s,o,a)=>{let{headers:i={},request:l={},throwErr:p,timeout:n=1e4,processReq:c,processRes:u,processErr:f}=a||{};return apiMethods.reduce((a,h)=>(a[h]=async(a,d)=>{let m,$;let{request:g=l,headers:w=i,timeout:E=n,processReq:x,processRes:y=u,processErr:A=f,throwErr:b=p}=d||{},{params:k,json:R,query:N}=d||{},O=`${o}/${a+"".replace(/^\/*/,"")}`,j={method:h.toUpperCase(),...g,headers:{"content-type":"application/json",...w}};if(c){let e=c(h,O,N,R,k,j);O=e[0],N=e[1],R=e[2],k=e[3],j=e[4];}if(x){let e=x(h,O,N,R,k,j);O=e[0],N=e[1],R=e[2],k=e[3],j=e[4];}if(isFullObject(k))for(let e in k)O=O.replace(`{${e}}`,k[e].toString());let q=Number(E);R&&(j.body=JSON.stringify(R)),q>0&&(m=new AbortController,$=setTimeout(()=>m.abort(),q),j.signal=m.signal),N&&(O+=buildUrlQueryString(N));let C=null,v=null,M="";try{C=await fetch(O,j);}catch(e){M=errorToString(e);}if($&&clearTimeout($),C)try{v=y?await y(C,d||{}):await C.json();}catch(e){M=errorToString(e);}if(null===v&&(v=A?await A(M,d||{}):{data:null,msg:M,status:100,fail:!0,ok:!1}),b&&v?.fail)throw v;if("development"===process.env.NODE_ENV){let e=`${v?.status}: api[${s}] ${h.toUpperCase()} ${O}`;v?.ok?console.info(`🟢 ${e}`):console.info(`🔴 ${e}`);}return v},a),{})};
4
+
5
+ export { ApiError, apiMethods, createApi, createApiResultFail, createApiResultOk };
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,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var server = require('next/server');
6
+ var index = require('./index.cjs.js');
7
+ require('@koine/utils');
8
+
9
+ let nextApiResponse={ok:(o,t)=>server.NextResponse.json(index.createApiResultOk(o,t)),fail:(s,t,n)=>server.NextResponse.json(index.createApiResultFail(s,t,n))};let nextApiResponse12=e=>({ok(o,t){e.status(200).json(index.createApiResultOk(o,t));},fail(s,t,n){e.status(n||404).json(index.createApiResultFail(s,t,n));}});
10
+
11
+ exports.nextApiResponse = nextApiResponse;
12
+ exports.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,11 @@
1
+ /// <reference types="./typings.d.ts" />
2
+ import type { NextApiResponse } from "next";
3
+ import { NextResponse } from "next/server";
4
+ export declare let nextApiResponse: {
5
+ ok<T>(data: T, msg?: string): NextResponse<Koine.Api.ResultOk<T>>;
6
+ fail<T_1>(data: T_1, msg?: string, status?: number): NextResponse<Koine.Api.ResultFail<T_1>>;
7
+ };
8
+ export declare let nextApiResponse12: (nextRes: NextApiResponse) => {
9
+ ok<T>(data: T, msg?: string): void;
10
+ fail<T_1>(data: T_1, msg?: string, status?: number): void;
11
+ };
package/next.esm.js ADDED
@@ -0,0 +1,7 @@
1
+ import { NextResponse } from 'next/server';
2
+ import { createApiResultOk, createApiResultFail } from './index.esm.js';
3
+ import '@koine/utils';
4
+
5
+ let nextApiResponse={ok:(o,t)=>NextResponse.json(createApiResultOk(o,t)),fail:(s,t,n)=>NextResponse.json(createApiResultFail(s,t,n))};let nextApiResponse12=e=>({ok(o,t){e.status(200).json(createApiResultOk(o,t));},fail(s,t,n){e.status(n||404).json(createApiResultFail(s,t,n));}});
6
+
7
+ export { nextApiResponse, nextApiResponse12 };
package/package.json CHANGED
@@ -2,7 +2,11 @@
2
2
  "name": "@koine/api",
3
3
  "sideEffects": false,
4
4
  "dependencies": {
5
- "@koine/utils": "2.0.0-beta.37"
5
+ "@koine/utils": "2.0.0-beta.39"
6
+ },
7
+ "peerDependencies": {
8
+ "next": "^14.0.4",
9
+ "swr": "^2.2.4"
6
10
  },
7
11
  "peerDependenciesMeta": {
8
12
  "next": {
@@ -12,46 +16,25 @@
12
16
  "optional": true
13
17
  }
14
18
  },
15
- "module": "./index.js",
16
- "type": "module",
17
- "main": "./cjs/index.js",
18
19
  "exports": {
20
+ "./package.json": "./package.json",
19
21
  ".": {
20
- "require": "./cjs/index.js",
21
- "import": "./index.js"
22
- },
23
- "./ApiError": {
24
- "require": "./cjs/ApiError.js",
25
- "import": "./ApiError.js"
26
- },
27
- "./createApi": {
28
- "require": "./cjs/createApi.js",
29
- "import": "./createApi.js"
30
- },
31
- "./createApiResultFail": {
32
- "require": "./cjs/createApiResultFail.js",
33
- "import": "./createApiResultFail.js"
34
- },
35
- "./createApiResultOk": {
36
- "require": "./cjs/createApiResultOk.js",
37
- "import": "./createApiResultOk.js"
38
- },
39
- "./createSwrApi": {
40
- "require": "./cjs/createSwrApi.js",
41
- "import": "./createSwrApi.js"
42
- },
43
- "./nextApiResponse": {
44
- "require": "./cjs/nextApiResponse.js",
45
- "import": "./nextApiResponse.js"
46
- },
47
- "./nextApiResponse12": {
48
- "require": "./cjs/nextApiResponse12.js",
49
- "import": "./nextApiResponse12.js"
22
+ "module": "./index.esm.js",
23
+ "import": "./index.cjs.mjs",
24
+ "default": "./index.cjs.js"
25
+ },
26
+ "./next": {
27
+ "module": "./next.esm.js",
28
+ "import": "./next.cjs.mjs",
29
+ "default": "./next.cjs.js"
30
+ },
31
+ "./swr": {
32
+ "module": "./swr.esm.js",
33
+ "import": "./swr.cjs.mjs",
34
+ "default": "./swr.cjs.js"
50
35
  }
51
36
  },
52
- "peerDependencies": {
53
- "swr": "^2.2.4",
54
- "next": "^14.0.4"
55
- },
56
- "version": "2.0.0-beta.37"
37
+ "module": "./index.esm.js",
38
+ "main": "./index.cjs.js",
39
+ "version": "2.0.0-beta.39"
57
40
  }
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,17 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var r = require('swr');
6
+ var t = require('swr/mutation');
7
+ var utils = require('@koine/utils');
8
+ var index = require('./index.cjs.js');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ var r__default = /*#__PURE__*/_interopDefaultLegacy(r);
13
+ var t__default = /*#__PURE__*/_interopDefaultLegacy(t);
14
+
15
+ let createSwrApi=(...n)=>{let o=index.createApi(...n);return index.apiMethods.forEach(a=>{o[`use${a.charAt(0).toUpperCase()+a.slice(1)}`]=function(i,n,s){if("get"===a){let t=async()=>{let{data:r}=await o[a](i,{...n||{},throwErr:!0});return r};return r__default["default"](s?.when===!1||utils.isFunction(s?.when)&&s?.when()===!1?null:n?[i,n]:[i],t,s)}return t__default["default"](n?[i,n]:i,async(r,t)=>{let e=Array.isArray(r)?r[0]:r,i=Array.isArray(r)?r[1]:{},{ok:n,data:s}=await o[a](e,{...i,...t.arg||{},throwErr:!0});return s},s)};}),o};
16
+
17
+ exports.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';
@@ -5,11 +5,11 @@ type SWRConfigurationExtended<Data = any, Error = any, Fn extends BareFetcher<an
5
5
  when?: boolean | (() => boolean);
6
6
  };
7
7
  type KoineApiMethodHookSWR<THookName extends keyof Koine.Api.HooksMapsByName, TEndpoints extends Koine.Api.Endpoints> = <TEndpoint extends Koine.Api.EndpointUrl<TEndpoints>, TMethod extends Koine.Api.RequestMethod = Koine.Api.HooksMapsByName[THookName]>(endpoint: TEndpoint, options?: Koine.Api.EndpointOptions<TEndpoints, TEndpoint, TMethod>, config?: THookName extends "useGet" ? SWRConfigurationExtended<Koine.Api.EndpointResponseOk<TEndpoints, TEndpoint, TMethod>, Koine.Api.EndpointResponseFail<TEndpoints, TEndpoint, TMethod>> : SWRMutationConfiguration<Koine.Api.EndpointResponseOk<TEndpoints, TEndpoint, TMethod>, Koine.Api.EndpointResponseFail<TEndpoints, TEndpoint, TMethod>, Koine.Api.EndpointOptions<TEndpoints, TEndpoint, TMethod>, TEndpoint>) => THookName extends "useGet" ? SWRResponse<Koine.Api.EndpointResponseOk<TEndpoints, TEndpoint, TMethod>, Koine.Api.EndpointResponseFail<TEndpoints, TEndpoint, TMethod>> : SWRMutationResponse<Koine.Api.EndpointResponseOk<TEndpoints, TEndpoint, TMethod>, Koine.Api.EndpointResponseFail<TEndpoints, TEndpoint, TMethod>, Koine.Api.EndpointOptions<TEndpoints, TEndpoint, TMethod>, TEndpoint>;
8
- export declare const createSwrApi: <TEndpoints extends Koine.Api.Endpoints>(apiName: string, baseUrl: string, options?: Koine.Api.ClientOptions | undefined) => Koine.Api.Client<TEndpoints> & {
8
+ export declare let createSwrApi: <TEndpoints extends Koine.Api.Endpoints>(apiName: string, baseUrl: string, options?: Koine.Api.ClientOptions | undefined) => Koine.Api.Client<TEndpoints> & {
9
9
  useGet: KoineApiMethodHookSWR<"useGet", TEndpoints>;
10
10
  usePost: KoineApiMethodHookSWR<"usePost", TEndpoints>;
11
11
  usePut: KoineApiMethodHookSWR<"usePut", TEndpoints>;
12
12
  usePatch: KoineApiMethodHookSWR<"usePatch", TEndpoints>;
13
13
  useDelete: KoineApiMethodHookSWR<"useDelete", TEndpoints>;
14
14
  };
15
- export default createSwrApi;
15
+ export {};
package/swr.esm.js ADDED
@@ -0,0 +1,8 @@
1
+ import r from 'swr';
2
+ import t from 'swr/mutation';
3
+ import { isFunction } from '@koine/utils';
4
+ import { createApi, apiMethods } from './index.esm.js';
5
+
6
+ let createSwrApi=(...n)=>{let o=createApi(...n);return apiMethods.forEach(a=>{o[`use${a.charAt(0).toUpperCase()+a.slice(1)}`]=function(i,n,s){if("get"===a){let t=async()=>{let{data:r}=await o[a](i,{...n||{},throwErr:!0});return r};return r(s?.when===!1||isFunction(s?.when)&&s?.when()===!1?null:n?[i,n]:[i],t,s)}return t(n?[i,n]:i,async(r,t)=>{let e=Array.isArray(r)?r[0]:r,i=Array.isArray(r)?r[1]:{},{ok:n,data:s}=await o[a](e,{...i,...t.arg||{},throwErr:!0});return s},s)};}),o};
7
+
8
+ export { createSwrApi };
package/ApiError.d.ts DELETED
@@ -1,5 +0,0 @@
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>);
4
- }
5
- export default ApiError;
package/ApiError.js DELETED
@@ -1,13 +0,0 @@
1
- import { __extends } from "tslib";
2
- var ApiError = (function (_super) {
3
- __extends(ApiError, _super);
4
- function ApiError(result) {
5
- var _this = _super.call(this, "Request failed with ".concat(result.status, " ").concat(result.msg)) || this;
6
- _this.name = "ApiError";
7
- Object.assign(_this, result);
8
- return _this;
9
- }
10
- return ApiError;
11
- }(Error));
12
- export { ApiError };
13
- export default ApiError;
package/cjs/ApiError.d.ts DELETED
@@ -1,5 +0,0 @@
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>);
4
- }
5
- export default ApiError;
package/cjs/ApiError.js DELETED
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiError = void 0;
4
- var tslib_1 = require("tslib");
5
- var ApiError = (function (_super) {
6
- tslib_1.__extends(ApiError, _super);
7
- function ApiError(result) {
8
- var _this = _super.call(this, "Request failed with ".concat(result.status, " ").concat(result.msg)) || this;
9
- _this.name = "ApiError";
10
- Object.assign(_this, result);
11
- return _this;
12
- }
13
- return ApiError;
14
- }(Error));
15
- exports.ApiError = ApiError;
16
- exports.default = ApiError;
@@ -1,3 +0,0 @@
1
- /// <reference types="./typings.d.ts" />
2
- export declare const createApi: <TEndpoints extends Koine.Api.Endpoints>(apiName: string, baseUrl: string, options?: Koine.Api.ClientOptions) => Koine.Api.Client<TEndpoints>;
3
- export default createApi;
package/cjs/createApi.js DELETED
@@ -1,124 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createApi = void 0;
4
- var tslib_1 = require("tslib");
5
- var utils_1 = require("@koine/utils");
6
- var createApi = function (apiName, baseUrl, options) {
7
- var _a = options || {}, _b = _a.headers, headersBase = _b === void 0 ? {} : _b, _c = _a.request, requestBase = _c === void 0 ? {} : _c, throwErrBase = _a.throwErr, _d = _a.timeout, timeoutBase = _d === void 0 ? 10000 : _d, processReqBase = _a.processReq, processResBase = _a.processRes, processErrBase = _a.processErr;
8
- return ["get", "post", "put", "patch", "delete"].reduce(function (api, method) {
9
- api[method] = function (endpoint, options) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
10
- var _a, _b, request, _c, headers, _d, timeout, processReq, _e, processRes, _f, processErr, _g, throwErr, _h, params, json, query, url, requestInit, transformed, transformed, key, timeoutNumber, controller, timeoutId, response, result, msg, e_1, e_2, logMsg;
11
- return tslib_1.__generator(this, function (_j) {
12
- switch (_j.label) {
13
- case 0:
14
- _a = options || {}, _b = _a.request, request = _b === void 0 ? requestBase : _b, _c = _a.headers, headers = _c === void 0 ? headersBase : _c, _d = _a.timeout, timeout = _d === void 0 ? timeoutBase : _d, processReq = _a.processReq, _e = _a.processRes, processRes = _e === void 0 ? processResBase : _e, _f = _a.processErr, processErr = _f === void 0 ? processErrBase : _f, _g = _a.throwErr, throwErr = _g === void 0 ? throwErrBase : _g;
15
- _h = options || {}, params = _h.params, json = _h.json, query = _h.query;
16
- url = "".concat(baseUrl, "/").concat(endpoint + "".replace(/^\/*/, ""));
17
- requestInit = tslib_1.__assign(tslib_1.__assign({ method: method.toUpperCase() }, request), { headers: tslib_1.__assign({ "content-type": "application/json" }, headers) });
18
- if (processReqBase) {
19
- transformed = processReqBase(method, url, query, json, params, requestInit);
20
- url = transformed[0];
21
- query = transformed[1];
22
- json = transformed[2];
23
- params = transformed[3];
24
- requestInit = transformed[4];
25
- }
26
- if (processReq) {
27
- transformed = processReq(method, url, query, json, params, requestInit);
28
- url = transformed[0];
29
- query = transformed[1];
30
- json = transformed[2];
31
- params = transformed[3];
32
- requestInit = transformed[4];
33
- }
34
- if ((0, utils_1.isFullObject)(params)) {
35
- for (key in params) {
36
- url = url.replace("{".concat(key, "}"), params[key].toString());
37
- }
38
- }
39
- timeoutNumber = Number(timeout);
40
- if (json) {
41
- requestInit.body = JSON.stringify(json);
42
- }
43
- if (timeoutNumber > 0) {
44
- controller = new AbortController();
45
- timeoutId = setTimeout(function () { return controller.abort(); }, timeoutNumber);
46
- requestInit.signal = controller.signal;
47
- }
48
- if (query) {
49
- url += (0, utils_1.buildUrlQueryString)(query);
50
- }
51
- response = null;
52
- result = null;
53
- msg = "";
54
- _j.label = 1;
55
- case 1:
56
- _j.trys.push([1, 3, , 4]);
57
- return [4, fetch(url, requestInit)];
58
- case 2:
59
- response = _j.sent();
60
- return [3, 4];
61
- case 3:
62
- e_1 = _j.sent();
63
- msg = (0, utils_1.errorToString)(e_1);
64
- return [3, 4];
65
- case 4:
66
- if (timeoutId) {
67
- clearTimeout(timeoutId);
68
- }
69
- if (!response) return [3, 11];
70
- _j.label = 5;
71
- case 5:
72
- _j.trys.push([5, 10, , 11]);
73
- if (!processRes) return [3, 7];
74
- return [4, processRes(response, options || {})];
75
- case 6:
76
- result = _j.sent();
77
- return [3, 9];
78
- case 7: return [4, response.json()];
79
- case 8:
80
- result = _j.sent();
81
- _j.label = 9;
82
- case 9: return [3, 11];
83
- case 10:
84
- e_2 = _j.sent();
85
- msg = (0, utils_1.errorToString)(e_2);
86
- return [3, 11];
87
- case 11:
88
- if (!(result === null)) return [3, 14];
89
- if (!processErr) return [3, 13];
90
- return [4, processErr(msg, options || {})];
91
- case 12:
92
- result = _j.sent();
93
- return [3, 14];
94
- case 13:
95
- result = {
96
- data: null,
97
- msg: msg,
98
- status: 100,
99
- fail: true,
100
- ok: false,
101
- };
102
- _j.label = 14;
103
- case 14:
104
- if (throwErr && (result === null || result === void 0 ? void 0 : result.fail)) {
105
- throw result;
106
- }
107
- if (process.env["NODE_ENV"] === "development") {
108
- logMsg = "".concat(result === null || result === void 0 ? void 0 : result.status, ": api[").concat(apiName, "] ").concat(method.toUpperCase(), " ").concat(url);
109
- if (result === null || result === void 0 ? void 0 : result.ok) {
110
- console.info("\uD83D\uDFE2 ".concat(logMsg));
111
- }
112
- else {
113
- console.info("\uD83D\uDD34 ".concat(logMsg));
114
- }
115
- }
116
- return [2, result];
117
- }
118
- });
119
- }); };
120
- return api;
121
- }, {});
122
- };
123
- exports.createApi = createApi;
124
- exports.default = exports.createApi;
@@ -1,3 +0,0 @@
1
- /// <reference types="./typings.d.ts" />
2
- export declare const createApiResultFail: <T>(data?: T, msg?: string, status?: number) => Koine.Api.ResultFail<T>;
3
- export default createApiResultFail;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createApiResultFail = void 0;
4
- var createApiResultFail = function (data, msg, status) {
5
- if (data === void 0) { data = {}; }
6
- return ({
7
- fail: true,
8
- data: data,
9
- msg: msg || "",
10
- status: status || 404,
11
- });
12
- };
13
- exports.createApiResultFail = createApiResultFail;
14
- exports.default = exports.createApiResultFail;
@@ -1,3 +0,0 @@
1
- /// <reference types="./typings.d.ts" />
2
- export declare const createApiResultOk: <T>(data?: T, msg?: string) => Koine.Api.ResultOk<T>;
3
- export default createApiResultOk;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createApiResultOk = void 0;
4
- var createApiResultOk = function (data, msg) {
5
- if (data === void 0) { data = {}; }
6
- return ({
7
- ok: true,
8
- fail: false,
9
- data: data,
10
- msg: msg || "",
11
- status: 200,
12
- });
13
- };
14
- exports.createApiResultOk = createApiResultOk;
15
- exports.default = exports.createApiResultOk;
@@ -1,61 +0,0 @@
1
- "use strict";
2
- "use client";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.createSwrApi = void 0;
5
- var tslib_1 = require("tslib");
6
- var swr_1 = require("swr");
7
- var mutation_1 = require("swr/mutation");
8
- var utils_1 = require("@koine/utils");
9
- var createApi_1 = require("./createApi");
10
- function createUseApi(api, method) {
11
- return function useApi(endpoint, options, _config) {
12
- var _this = this;
13
- if (method === "get") {
14
- var fetcher = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
15
- var data;
16
- return tslib_1.__generator(this, function (_a) {
17
- switch (_a.label) {
18
- case 0: return [4, api[method](endpoint, tslib_1.__assign(tslib_1.__assign({}, (options || {})), { throwErr: true }))];
19
- case 1:
20
- data = (_a.sent()).data;
21
- return [2, data];
22
- }
23
- });
24
- }); };
25
- var config_1 = _config;
26
- var shouldNotFetch = (config_1 === null || config_1 === void 0 ? void 0 : config_1.when) === false ||
27
- ((0, utils_1.isFunction)(config_1 === null || config_1 === void 0 ? void 0 : config_1.when) && (config_1 === null || config_1 === void 0 ? void 0 : config_1.when()) === false);
28
- return (0, swr_1.default)(shouldNotFetch ? null : options ? [endpoint, options] : [endpoint], fetcher, config_1);
29
- }
30
- var config = _config;
31
- var sender = function (_endpoint, _options) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
32
- var endpoint, options, _a, ok, data;
33
- return tslib_1.__generator(this, function (_b) {
34
- switch (_b.label) {
35
- case 0:
36
- endpoint = Array.isArray(_endpoint) ? _endpoint[0] : _endpoint;
37
- options = Array.isArray(_endpoint) ? _endpoint[1] : {};
38
- return [4, api[method](endpoint, tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, options), (_options.arg || {})), { throwErr: true }))];
39
- case 1:
40
- _a = _b.sent(), ok = _a.ok, data = _a.data;
41
- return [2, ok ? data : data];
42
- }
43
- });
44
- }); };
45
- return (0, mutation_1.default)(options ? [endpoint, options] : endpoint, sender, config);
46
- };
47
- }
48
- var createSwrApi = function () {
49
- var args = [];
50
- for (var _i = 0; _i < arguments.length; _i++) {
51
- args[_i] = arguments[_i];
52
- }
53
- var api = createApi_1.default.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false));
54
- ["get", "post", "put", "patch", "delete"].forEach(function (method) {
55
- var hookName = "use".concat(method.charAt(0).toUpperCase() + method.slice(1));
56
- api[hookName] = createUseApi(api, method);
57
- });
58
- return api;
59
- };
60
- exports.createSwrApi = createSwrApi;
61
- exports.default = exports.createSwrApi;
package/cjs/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- export { ApiError } from "./ApiError";
2
- export { createApi } from "./createApi";
3
- export { createApiResultFail } from "./createApiResultFail";
4
- export { createApiResultOk } from "./createApiResultOk";
5
- export { createSwrApi } from "./createSwrApi";
6
- export { nextApiResponse12 } from "./nextApiResponse12";
package/cjs/index.js DELETED
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nextApiResponse12 = exports.createSwrApi = exports.createApiResultOk = exports.createApiResultFail = exports.createApi = exports.ApiError = void 0;
4
- var ApiError_1 = require("./ApiError");
5
- Object.defineProperty(exports, "ApiError", { enumerable: true, get: function () { return ApiError_1.ApiError; } });
6
- var createApi_1 = require("./createApi");
7
- Object.defineProperty(exports, "createApi", { enumerable: true, get: function () { return createApi_1.createApi; } });
8
- var createApiResultFail_1 = require("./createApiResultFail");
9
- Object.defineProperty(exports, "createApiResultFail", { enumerable: true, get: function () { return createApiResultFail_1.createApiResultFail; } });
10
- var createApiResultOk_1 = require("./createApiResultOk");
11
- Object.defineProperty(exports, "createApiResultOk", { enumerable: true, get: function () { return createApiResultOk_1.createApiResultOk; } });
12
- var createSwrApi_1 = require("./createSwrApi");
13
- Object.defineProperty(exports, "createSwrApi", { enumerable: true, get: function () { return createSwrApi_1.createSwrApi; } });
14
- var nextApiResponse12_1 = require("./nextApiResponse12");
15
- Object.defineProperty(exports, "nextApiResponse12", { enumerable: true, get: function () { return nextApiResponse12_1.nextApiResponse12; } });
@@ -1,7 +0,0 @@
1
- /// <reference types="./typings.d.ts" />
2
- import { NextResponse } from "next/server";
3
- export declare const nextApiResponse: {
4
- ok<T>(data: T, msg?: string): NextResponse<Koine.Api.ResultOk<T>>;
5
- fail<T_1>(data: T_1, msg?: string, status?: number): NextResponse<Koine.Api.ResultFail<T_1>>;
6
- };
7
- export default nextApiResponse;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nextApiResponse = void 0;
4
- var server_1 = require("next/server");
5
- var createApiResultFail_1 = require("./createApiResultFail");
6
- var createApiResultOk_1 = require("./createApiResultOk");
7
- exports.nextApiResponse = {
8
- ok: function (data, msg) {
9
- return server_1.NextResponse.json((0, createApiResultOk_1.default)(data, msg));
10
- },
11
- fail: function (data, msg, status) {
12
- return server_1.NextResponse.json((0, createApiResultFail_1.default)(data, msg, status));
13
- },
14
- };
15
- exports.default = exports.nextApiResponse;
@@ -1,6 +0,0 @@
1
- import type { NextApiResponse } from "next";
2
- export declare const nextApiResponse12: (nextRes: NextApiResponse) => {
3
- ok<T>(data: T, msg?: string): void;
4
- fail<T_1>(data: T_1, msg?: string, status?: number): void;
5
- };
6
- export default nextApiResponse12;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nextApiResponse12 = void 0;
4
- var createApiResultFail_1 = require("./createApiResultFail");
5
- var createApiResultOk_1 = require("./createApiResultOk");
6
- var nextApiResponse12 = function (nextRes) {
7
- return {
8
- ok: function (data, msg) {
9
- nextRes.status(200).json((0, createApiResultOk_1.default)(data, msg));
10
- },
11
- fail: function (data, msg, status) {
12
- nextRes
13
- .status(status || 404)
14
- .json((0, createApiResultFail_1.default)(data, msg, status));
15
- },
16
- };
17
- };
18
- exports.nextApiResponse12 = nextApiResponse12;
19
- exports.default = exports.nextApiResponse12;
package/cjs/package.json DELETED
@@ -1,19 +0,0 @@
1
- {
2
- "name": "@koine/api",
3
- "sideEffects": false,
4
- "dependencies": {
5
- "@koine/utils": "*",
6
- "swr": "^2.2.4",
7
- "next": "^14.0.4"
8
- },
9
- "peerDependenciesMeta": {
10
- "next": {
11
- "optional": true
12
- },
13
- "swr": {
14
- "optional": true
15
- }
16
- },
17
- "main": "./index.js",
18
- "type": "commonjs"
19
- }
package/createApi.d.ts DELETED
@@ -1,3 +0,0 @@
1
- /// <reference types="./typings.d.ts" />
2
- export declare const createApi: <TEndpoints extends Koine.Api.Endpoints>(apiName: string, baseUrl: string, options?: Koine.Api.ClientOptions) => Koine.Api.Client<TEndpoints>;
3
- export default createApi;