@koine/api 2.0.0-beta.78 → 2.0.0-beta.79

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.
@@ -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,14 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ class ApiError extends Error {
6
+ constructor(result) {
7
+ super(`Request failed with ${result.status} ${result.msg}`);
8
+ this.name = "ApiError";
9
+ Object.assign(this, result);
10
+ }
11
+ }
12
+
13
+ exports.ApiError = ApiError;
14
+ exports["default"] = ApiError;
@@ -0,0 +1,2 @@
1
+ export * from './ApiError.cjs.js';
2
+ export { _default as default } from './ApiError.cjs.default.js';
@@ -0,0 +1,9 @@
1
+ class ApiError extends Error {
2
+ constructor(result) {
3
+ super(`Request failed with ${result.status} ${result.msg}`);
4
+ this.name = "ApiError";
5
+ Object.assign(this, result);
6
+ }
7
+ }
8
+
9
+ export { ApiError, ApiError as default };
@@ -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,122 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('@koine/utils');
6
+
7
+ let apiMethods = [
8
+ "get",
9
+ "post",
10
+ "put",
11
+ "patch",
12
+ "delete",
13
+ ];
14
+ let createApi = (apiName, baseUrl, options) => {
15
+ const { headers: headersBase = {}, request: requestBase = {}, throwErr: throwErrBase, timeout: timeoutBase = 10000, processReq: processReqBase, processRes: processResBase, processErr: processErrBase, } = options || {};
16
+ return apiMethods.reduce((api, method) => {
17
+ api[method] = async (endpoint, options) => {
18
+ const { request = requestBase, headers = headersBase, timeout = timeoutBase, processReq, processRes = processResBase, processErr = processErrBase, throwErr = throwErrBase, } = options || {};
19
+ let { params, json, query } = options || {};
20
+ let url = `${baseUrl}/${endpoint + "".replace(/^\/*/, "")}`;
21
+ let requestInit = {
22
+ method: method.toUpperCase(),
23
+ ...request,
24
+ headers: {
25
+ "content-type": "application/json",
26
+ ...headers,
27
+ },
28
+ };
29
+ if (processReqBase) {
30
+ const transformed = processReqBase(method, url, query, json, params, requestInit);
31
+ url = transformed[0];
32
+ query = transformed[1];
33
+ json = transformed[2];
34
+ params = transformed[3];
35
+ requestInit = transformed[4];
36
+ }
37
+ if (processReq) {
38
+ const transformed = processReq(method, url, query, json, params, requestInit);
39
+ url = transformed[0];
40
+ query = transformed[1];
41
+ json = transformed[2];
42
+ params = transformed[3];
43
+ requestInit = transformed[4];
44
+ }
45
+ if (utils.isFullObject(params)) {
46
+ for (const key in params) {
47
+ url = url.replace(`{${key}}`, params[key].toString());
48
+ }
49
+ }
50
+ const timeoutNumber = Number(timeout);
51
+ let controller;
52
+ let timeoutId;
53
+ if (json) {
54
+ requestInit.body = JSON.stringify(json);
55
+ }
56
+ if (timeoutNumber > 0) {
57
+ controller = new AbortController();
58
+ timeoutId = setTimeout(() => controller.abort(), timeoutNumber);
59
+ requestInit.signal = controller.signal;
60
+ }
61
+ if (query) {
62
+ url += utils.buildUrlQueryString(query);
63
+ }
64
+ let response = null;
65
+ let result = null;
66
+ let msg = "";
67
+ try {
68
+ response = await fetch(url, requestInit);
69
+ }
70
+ catch (e) {
71
+ msg = utils.errorToString(e);
72
+ }
73
+ if (timeoutId) {
74
+ clearTimeout(timeoutId);
75
+ }
76
+ if (response) {
77
+ try {
78
+ if (processRes) {
79
+ result = await processRes(response, options || {});
80
+ }
81
+ else {
82
+ result = await response.json();
83
+ }
84
+ }
85
+ catch (e) {
86
+ msg = utils.errorToString(e);
87
+ }
88
+ }
89
+ if (result === null) {
90
+ if (processErr) {
91
+ result = await processErr(msg, options || {});
92
+ }
93
+ else {
94
+ result = {
95
+ data: null,
96
+ msg,
97
+ status: 100,
98
+ fail: true,
99
+ ok: false,
100
+ };
101
+ }
102
+ }
103
+ if (throwErr && result?.fail) {
104
+ throw result;
105
+ }
106
+ if (process.env["NODE_ENV"] === "development") {
107
+ const logMsg = `${result?.status}: api[${apiName}] ${method.toUpperCase()} ${url}`;
108
+ if (result?.ok) {
109
+ console.info(`🟢 ${logMsg}`);
110
+ }
111
+ else {
112
+ console.info(`🔴 ${logMsg}`);
113
+ }
114
+ }
115
+ return result;
116
+ };
117
+ return api;
118
+ }, {});
119
+ };
120
+
121
+ exports.createApi = createApi;
122
+ exports["default"] = createApi;
@@ -0,0 +1,2 @@
1
+ export * from './createApi.cjs.js';
2
+ export { _default as default } from './createApi.cjs.default.js';
@@ -0,0 +1,117 @@
1
+ import { isFullObject, buildUrlQueryString, errorToString } from '@koine/utils';
2
+
3
+ let apiMethods = [
4
+ "get",
5
+ "post",
6
+ "put",
7
+ "patch",
8
+ "delete",
9
+ ];
10
+ let createApi = (apiName, baseUrl, options) => {
11
+ const { headers: headersBase = {}, request: requestBase = {}, throwErr: throwErrBase, timeout: timeoutBase = 10000, processReq: processReqBase, processRes: processResBase, processErr: processErrBase, } = options || {};
12
+ return apiMethods.reduce((api, method) => {
13
+ api[method] = async (endpoint, options) => {
14
+ const { request = requestBase, headers = headersBase, timeout = timeoutBase, processReq, processRes = processResBase, processErr = processErrBase, throwErr = throwErrBase, } = options || {};
15
+ let { params, json, query } = options || {};
16
+ let url = `${baseUrl}/${endpoint + "".replace(/^\/*/, "")}`;
17
+ let requestInit = {
18
+ method: method.toUpperCase(),
19
+ ...request,
20
+ headers: {
21
+ "content-type": "application/json",
22
+ ...headers,
23
+ },
24
+ };
25
+ if (processReqBase) {
26
+ const transformed = processReqBase(method, url, query, json, params, requestInit);
27
+ url = transformed[0];
28
+ query = transformed[1];
29
+ json = transformed[2];
30
+ params = transformed[3];
31
+ requestInit = transformed[4];
32
+ }
33
+ if (processReq) {
34
+ const transformed = processReq(method, url, query, json, params, requestInit);
35
+ url = transformed[0];
36
+ query = transformed[1];
37
+ json = transformed[2];
38
+ params = transformed[3];
39
+ requestInit = transformed[4];
40
+ }
41
+ if (isFullObject(params)) {
42
+ for (const key in params) {
43
+ url = url.replace(`{${key}}`, params[key].toString());
44
+ }
45
+ }
46
+ const timeoutNumber = Number(timeout);
47
+ let controller;
48
+ let timeoutId;
49
+ if (json) {
50
+ requestInit.body = JSON.stringify(json);
51
+ }
52
+ if (timeoutNumber > 0) {
53
+ controller = new AbortController();
54
+ timeoutId = setTimeout(() => controller.abort(), timeoutNumber);
55
+ requestInit.signal = controller.signal;
56
+ }
57
+ if (query) {
58
+ url += buildUrlQueryString(query);
59
+ }
60
+ let response = null;
61
+ let result = null;
62
+ let msg = "";
63
+ try {
64
+ response = await fetch(url, requestInit);
65
+ }
66
+ catch (e) {
67
+ msg = errorToString(e);
68
+ }
69
+ if (timeoutId) {
70
+ clearTimeout(timeoutId);
71
+ }
72
+ if (response) {
73
+ try {
74
+ if (processRes) {
75
+ result = await processRes(response, options || {});
76
+ }
77
+ else {
78
+ result = await response.json();
79
+ }
80
+ }
81
+ catch (e) {
82
+ msg = errorToString(e);
83
+ }
84
+ }
85
+ if (result === null) {
86
+ if (processErr) {
87
+ result = await processErr(msg, options || {});
88
+ }
89
+ else {
90
+ result = {
91
+ data: null,
92
+ msg,
93
+ status: 100,
94
+ fail: true,
95
+ ok: false,
96
+ };
97
+ }
98
+ }
99
+ if (throwErr && result?.fail) {
100
+ throw result;
101
+ }
102
+ if (process.env["NODE_ENV"] === "development") {
103
+ const logMsg = `${result?.status}: api[${apiName}] ${method.toUpperCase()} ${url}`;
104
+ if (result?.ok) {
105
+ console.info(`🟢 ${logMsg}`);
106
+ }
107
+ else {
108
+ console.info(`🔴 ${logMsg}`);
109
+ }
110
+ }
111
+ return result;
112
+ };
113
+ return api;
114
+ }, {});
115
+ };
116
+
117
+ 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,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ let createApiResultOk = (data = {}, msg) => ({
6
+ ok: true,
7
+ fail: false,
8
+ data,
9
+ msg: msg || "",
10
+ status: 200,
11
+ });
12
+ let createApiResultFail = (data = {}, msg, status) => ({
13
+ fail: true,
14
+ data,
15
+ msg: msg || "",
16
+ status: status || 404,
17
+ });
18
+
19
+ exports.createApiResultFail = createApiResultFail;
20
+ exports.createApiResultOk = createApiResultOk;
21
+ exports["default"] = createApiResultFail;
@@ -0,0 +1,2 @@
1
+ export * from './createApiResultFail.cjs.js';
2
+ export { _default as default } from './createApiResultFail.cjs.default.js';
@@ -0,0 +1,15 @@
1
+ let createApiResultOk = (data = {}, msg) => ({
2
+ ok: true,
3
+ fail: false,
4
+ data,
5
+ msg: msg || "",
6
+ status: 200,
7
+ });
8
+ let createApiResultFail = (data = {}, msg, status) => ({
9
+ fail: true,
10
+ data,
11
+ msg: msg || "",
12
+ status: status || 404,
13
+ });
14
+
15
+ export { createApiResultFail, createApiResultOk, 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,14 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ let createApiResultOk = (data = {}, msg) => ({
6
+ ok: true,
7
+ fail: false,
8
+ data,
9
+ msg: msg || "",
10
+ status: 200,
11
+ });
12
+
13
+ exports.createApiResultOk = createApiResultOk;
14
+ exports["default"] = createApiResultOk;
@@ -0,0 +1,2 @@
1
+ export * from './createApiResultOk.cjs.js';
2
+ export { _default as default } from './createApiResultOk.cjs.default.js';
@@ -0,0 +1,9 @@
1
+ let createApiResultOk = (data = {}, msg) => ({
2
+ ok: true,
3
+ fail: false,
4
+ data,
5
+ msg: msg || "",
6
+ status: 200,
7
+ });
8
+
9
+ export { createApiResultOk, createApiResultOk as default };
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ var useSWR = require('swr');
4
+ var utils = require('@koine/utils');
5
+ var createApi = require('./createApi.cjs.js');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var useSWR__default = /*#__PURE__*/_interopDefaultLegacy(useSWR);
10
+
11
+ let createUseApi = (api) => (endpoint, options, config) => {
12
+ const fetcher = async () => {
13
+ const { data } = await api.get(endpoint, {
14
+ ...(options || {}),
15
+ throwErr: true,
16
+ });
17
+ return data;
18
+ };
19
+ const shouldNotFetch = config?.when === false ||
20
+ (utils.isFunction(config?.when) && config?.when() === false);
21
+ return useSWR__default["default"](shouldNotFetch ? null : options ? [endpoint, options] : [endpoint], fetcher, config);
22
+ };
23
+ let createSwrApi = (...args) => {
24
+ const api = createApi.createApi(...args);
25
+ api.use = createUseApi(api);
26
+ return api;
27
+ };
28
+
29
+ exports.createSwrApi = createSwrApi;
30
+ exports.createUseApi = createUseApi;
@@ -0,0 +1,23 @@
1
+ import useSWR from 'swr';
2
+ import { isFunction } from '@koine/utils';
3
+ import { createApi } from './createApi.esm.js';
4
+
5
+ let createUseApi = (api) => (endpoint, options, config) => {
6
+ const fetcher = async () => {
7
+ const { data } = await api.get(endpoint, {
8
+ ...(options || {}),
9
+ throwErr: true,
10
+ });
11
+ return data;
12
+ };
13
+ const shouldNotFetch = config?.when === false ||
14
+ (isFunction(config?.when) && config?.when() === false);
15
+ return useSWR(shouldNotFetch ? null : options ? [endpoint, options] : [endpoint], fetcher, config);
16
+ };
17
+ let createSwrApi = (...args) => {
18
+ const api = createApi(...args);
19
+ api.use = createUseApi(api);
20
+ return api;
21
+ };
22
+
23
+ export { createUseApi as a, createSwrApi as c };
package/index.cjs.js CHANGED
@@ -2,146 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var utils = require('@koine/utils');
5
+ var ApiError = require('./ApiError.cjs.js');
6
+ var createApi = require('./createApi.cjs.js');
7
+ var createApiResultFail = require('./createApiResultFail.cjs.js');
8
+ var createApiResultOk = require('./createApiResultOk.cjs.js');
9
+ require('@koine/utils');
6
10
 
7
- class ApiError extends Error {
8
- constructor(result) {
9
- super(`Request failed with ${result.status} ${result.msg}`);
10
- this.name = "ApiError";
11
- Object.assign(this, result);
12
- }
13
- }
14
11
 
15
- let apiMethods = [
16
- "get",
17
- "post",
18
- "put",
19
- "patch",
20
- "delete",
21
- ];
22
- let createApi = (apiName, baseUrl, options) => {
23
- const { headers: headersBase = {}, request: requestBase = {}, throwErr: throwErrBase, timeout: timeoutBase = 10000, processReq: processReqBase, processRes: processResBase, processErr: processErrBase, } = options || {};
24
- return apiMethods.reduce((api, method) => {
25
- api[method] = async (endpoint, options) => {
26
- const { request = requestBase, headers = headersBase, timeout = timeoutBase, processReq, processRes = processResBase, processErr = processErrBase, throwErr = throwErrBase, } = options || {};
27
- let { params, json, query } = options || {};
28
- let url = `${baseUrl}/${endpoint + "".replace(/^\/*/, "")}`;
29
- let requestInit = {
30
- method: method.toUpperCase(),
31
- ...request,
32
- headers: {
33
- "content-type": "application/json",
34
- ...headers,
35
- },
36
- };
37
- if (processReqBase) {
38
- const transformed = processReqBase(method, url, query, json, params, requestInit);
39
- url = transformed[0];
40
- query = transformed[1];
41
- json = transformed[2];
42
- params = transformed[3];
43
- requestInit = transformed[4];
44
- }
45
- if (processReq) {
46
- const transformed = processReq(method, url, query, json, params, requestInit);
47
- url = transformed[0];
48
- query = transformed[1];
49
- json = transformed[2];
50
- params = transformed[3];
51
- requestInit = transformed[4];
52
- }
53
- if (utils.isFullObject(params)) {
54
- for (const key in params) {
55
- url = url.replace(`{${key}}`, params[key].toString());
56
- }
57
- }
58
- const timeoutNumber = Number(timeout);
59
- let controller;
60
- let timeoutId;
61
- if (json) {
62
- requestInit.body = JSON.stringify(json);
63
- }
64
- if (timeoutNumber > 0) {
65
- controller = new AbortController();
66
- timeoutId = setTimeout(() => controller.abort(), timeoutNumber);
67
- requestInit.signal = controller.signal;
68
- }
69
- if (query) {
70
- url += utils.buildUrlQueryString(query);
71
- }
72
- let response = null;
73
- let result = null;
74
- let msg = "";
75
- try {
76
- response = await fetch(url, requestInit);
77
- }
78
- catch (e) {
79
- msg = utils.errorToString(e);
80
- }
81
- if (timeoutId) {
82
- clearTimeout(timeoutId);
83
- }
84
- if (response) {
85
- try {
86
- if (processRes) {
87
- result = await processRes(response, options || {});
88
- }
89
- else {
90
- result = await response.json();
91
- }
92
- }
93
- catch (e) {
94
- msg = utils.errorToString(e);
95
- }
96
- }
97
- if (result === null) {
98
- if (processErr) {
99
- result = await processErr(msg, options || {});
100
- }
101
- else {
102
- result = {
103
- data: null,
104
- msg,
105
- status: 100,
106
- fail: true,
107
- ok: false,
108
- };
109
- }
110
- }
111
- if (throwErr && result?.fail) {
112
- throw result;
113
- }
114
- if (process.env["NODE_ENV"] === "development") {
115
- const logMsg = `${result?.status}: api[${apiName}] ${method.toUpperCase()} ${url}`;
116
- if (result?.ok) {
117
- console.info(`🟢 ${logMsg}`);
118
- }
119
- else {
120
- console.info(`🔴 ${logMsg}`);
121
- }
122
- }
123
- return result;
124
- };
125
- return api;
126
- }, {});
127
- };
128
12
 
129
- let createApiResultFail = (data = {}, msg, status) => ({
130
- fail: true,
131
- data,
132
- msg: msg || "",
133
- status: status || 404,
134
- });
135
-
136
- let createApiResultOk = (data = {}, msg) => ({
137
- ok: true,
138
- fail: false,
139
- data,
140
- msg: msg || "",
141
- status: 200,
142
- });
143
-
144
- exports.ApiError = ApiError;
145
- exports.createApi = createApi;
146
- exports.createApiResultFail = createApiResultFail;
147
- exports.createApiResultOk = createApiResultOk;
13
+ exports.ApiError = ApiError.ApiError;
14
+ exports.createApi = createApi.createApi;
15
+ exports.createApiResultFail = createApiResultFail.createApiResultFail;
16
+ exports.createApiResultOk = createApiResultOk.createApiResultOk;
package/index.esm.js CHANGED
@@ -1,140 +1,5 @@
1
- import { isFullObject, buildUrlQueryString, errorToString } from '@koine/utils';
2
-
3
- class ApiError extends Error {
4
- constructor(result) {
5
- super(`Request failed with ${result.status} ${result.msg}`);
6
- this.name = "ApiError";
7
- Object.assign(this, result);
8
- }
9
- }
10
-
11
- let apiMethods = [
12
- "get",
13
- "post",
14
- "put",
15
- "patch",
16
- "delete",
17
- ];
18
- let createApi = (apiName, baseUrl, options) => {
19
- const { headers: headersBase = {}, request: requestBase = {}, throwErr: throwErrBase, timeout: timeoutBase = 10000, processReq: processReqBase, processRes: processResBase, processErr: processErrBase, } = options || {};
20
- return apiMethods.reduce((api, method) => {
21
- api[method] = async (endpoint, options) => {
22
- const { request = requestBase, headers = headersBase, timeout = timeoutBase, processReq, processRes = processResBase, processErr = processErrBase, throwErr = throwErrBase, } = options || {};
23
- let { params, json, query } = options || {};
24
- let url = `${baseUrl}/${endpoint + "".replace(/^\/*/, "")}`;
25
- let requestInit = {
26
- method: method.toUpperCase(),
27
- ...request,
28
- headers: {
29
- "content-type": "application/json",
30
- ...headers,
31
- },
32
- };
33
- if (processReqBase) {
34
- const transformed = processReqBase(method, url, query, json, params, requestInit);
35
- url = transformed[0];
36
- query = transformed[1];
37
- json = transformed[2];
38
- params = transformed[3];
39
- requestInit = transformed[4];
40
- }
41
- if (processReq) {
42
- const transformed = processReq(method, url, query, json, params, requestInit);
43
- url = transformed[0];
44
- query = transformed[1];
45
- json = transformed[2];
46
- params = transformed[3];
47
- requestInit = transformed[4];
48
- }
49
- if (isFullObject(params)) {
50
- for (const key in params) {
51
- url = url.replace(`{${key}}`, params[key].toString());
52
- }
53
- }
54
- const timeoutNumber = Number(timeout);
55
- let controller;
56
- let timeoutId;
57
- if (json) {
58
- requestInit.body = JSON.stringify(json);
59
- }
60
- if (timeoutNumber > 0) {
61
- controller = new AbortController();
62
- timeoutId = setTimeout(() => controller.abort(), timeoutNumber);
63
- requestInit.signal = controller.signal;
64
- }
65
- if (query) {
66
- url += buildUrlQueryString(query);
67
- }
68
- let response = null;
69
- let result = null;
70
- let msg = "";
71
- try {
72
- response = await fetch(url, requestInit);
73
- }
74
- catch (e) {
75
- msg = errorToString(e);
76
- }
77
- if (timeoutId) {
78
- clearTimeout(timeoutId);
79
- }
80
- if (response) {
81
- try {
82
- if (processRes) {
83
- result = await processRes(response, options || {});
84
- }
85
- else {
86
- result = await response.json();
87
- }
88
- }
89
- catch (e) {
90
- msg = errorToString(e);
91
- }
92
- }
93
- if (result === null) {
94
- if (processErr) {
95
- result = await processErr(msg, options || {});
96
- }
97
- else {
98
- result = {
99
- data: null,
100
- msg,
101
- status: 100,
102
- fail: true,
103
- ok: false,
104
- };
105
- }
106
- }
107
- if (throwErr && result?.fail) {
108
- throw result;
109
- }
110
- if (process.env["NODE_ENV"] === "development") {
111
- const logMsg = `${result?.status}: api[${apiName}] ${method.toUpperCase()} ${url}`;
112
- if (result?.ok) {
113
- console.info(`🟢 ${logMsg}`);
114
- }
115
- else {
116
- console.info(`🔴 ${logMsg}`);
117
- }
118
- }
119
- return result;
120
- };
121
- return api;
122
- }, {});
123
- };
124
-
125
- let createApiResultFail = (data = {}, msg, status) => ({
126
- fail: true,
127
- data,
128
- msg: msg || "",
129
- status: status || 404,
130
- });
131
-
132
- let createApiResultOk = (data = {}, msg) => ({
133
- ok: true,
134
- fail: false,
135
- data,
136
- msg: msg || "",
137
- status: 200,
138
- });
139
-
140
- export { ApiError, createApi, createApiResultFail, createApiResultOk };
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';
5
+ import '@koine/utils';
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,28 @@
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 = {
10
+ ok(data, msg) {
11
+ return server.NextResponse.json(createApiResultOk.createApiResultOk(data, msg));
12
+ },
13
+ fail(data, msg, status) {
14
+ return server.NextResponse.json(createApiResultFail.createApiResultFail(data, msg, status));
15
+ },
16
+ };
17
+
18
+ let nextApiResponse12 = (nextRes) => ({
19
+ ok(data, msg) {
20
+ nextRes.status(200).json(createApiResultOk.createApiResultOk(data, msg));
21
+ },
22
+ fail(data, msg, status) {
23
+ nextRes.status(status || 404).json(createApiResultFail.createApiResultFail(data, msg, status));
24
+ },
25
+ });
26
+
27
+ exports.nextApiResponse = nextApiResponse;
28
+ 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.esm.js ADDED
@@ -0,0 +1,23 @@
1
+ import { NextResponse } from 'next/server';
2
+ import { createApiResultFail } from './createApiResultFail.esm.js';
3
+ import { createApiResultOk } from './createApiResultOk.esm.js';
4
+
5
+ let nextApiResponse = {
6
+ ok(data, msg) {
7
+ return NextResponse.json(createApiResultOk(data, msg));
8
+ },
9
+ fail(data, msg, status) {
10
+ return NextResponse.json(createApiResultFail(data, msg, status));
11
+ },
12
+ };
13
+
14
+ let nextApiResponse12 = (nextRes) => ({
15
+ ok(data, msg) {
16
+ nextRes.status(200).json(createApiResultOk(data, msg));
17
+ },
18
+ fail(data, msg, status) {
19
+ nextRes.status(status || 404).json(createApiResultFail(data, msg, status));
20
+ },
21
+ });
22
+
23
+ export { nextApiResponse, nextApiResponse12 };
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.78"
5
+ "@koine/utils": "2.0.0-beta.79"
6
6
  },
7
7
  "peerDependencies": {
8
8
  "next": "^14.0.4",
@@ -22,9 +22,44 @@
22
22
  "module": "./index.esm.js",
23
23
  "import": "./index.cjs.mjs",
24
24
  "default": "./index.cjs.js"
25
+ },
26
+ "./ApiError": {
27
+ "module": "./ApiError.esm.js",
28
+ "import": "./ApiError.cjs.mjs",
29
+ "default": "./ApiError.cjs.js"
30
+ },
31
+ "./createApi": {
32
+ "module": "./createApi.esm.js",
33
+ "import": "./createApi.cjs.mjs",
34
+ "default": "./createApi.cjs.js"
35
+ },
36
+ "./createApiResultFail": {
37
+ "module": "./createApiResultFail.esm.js",
38
+ "import": "./createApiResultFail.cjs.mjs",
39
+ "default": "./createApiResultFail.cjs.js"
40
+ },
41
+ "./createApiResultOk": {
42
+ "module": "./createApiResultOk.esm.js",
43
+ "import": "./createApiResultOk.cjs.mjs",
44
+ "default": "./createApiResultOk.cjs.js"
45
+ },
46
+ "./next": {
47
+ "module": "./next.esm.js",
48
+ "import": "./next.cjs.mjs",
49
+ "default": "./next.cjs.js"
50
+ },
51
+ "./swr": {
52
+ "module": "./swr.esm.js",
53
+ "import": "./swr.cjs.mjs",
54
+ "default": "./swr.cjs.js"
55
+ },
56
+ "./swr-mutation": {
57
+ "module": "./swr-mutation.esm.js",
58
+ "import": "./swr-mutation.cjs.mjs",
59
+ "default": "./swr-mutation.cjs.js"
25
60
  }
26
61
  },
27
62
  "module": "./index.esm.js",
28
63
  "main": "./index.cjs.js",
29
- "version": "2.0.0-beta.78"
64
+ "version": "2.0.0-beta.79"
30
65
  }
@@ -0,0 +1 @@
1
+ export * from "./swr-mutation";
@@ -0,0 +1 @@
1
+ exports._default = require('./swr-mutation.cjs.js').default;
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var useSWRMutation = require('swr/mutation');
6
+ var createApi = require('./createApi.cjs.js');
7
+ var createSwrApi = require('./createSwrApi.cjs.js');
8
+ require('@koine/utils');
9
+ require('swr');
10
+
11
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+
13
+ var useSWRMutation__default = /*#__PURE__*/_interopDefaultLegacy(useSWRMutation);
14
+
15
+ let createUseMutationApi = (api, method) => (endpoint, options, config) => {
16
+ const sender = async (_endpoint, _options) => {
17
+ const endpoint = Array.isArray(_endpoint) ? _endpoint[0] : _endpoint;
18
+ const options = Array.isArray(_endpoint) ? _endpoint[1] : {};
19
+ const { ok, data } = await api[method](endpoint, {
20
+ ...options,
21
+ ...(_options.arg || {}),
22
+ throwErr: true,
23
+ });
24
+ return ok ? data : data;
25
+ };
26
+ return useSWRMutation__default["default"](options ? [endpoint, options] : endpoint, sender, config);
27
+ };
28
+ let createSwrMutationApi = (...args) => {
29
+ const api = createApi.createApi(...args);
30
+ api.use = createSwrApi.createUseApi(api);
31
+ ["post", "put", "patch", "delete"].forEach((method) => {
32
+ const hookName = `use${method.charAt(0).toUpperCase() + method.slice(1)}`;
33
+ api[hookName] = createUseMutationApi(api, method);
34
+ });
35
+ return api;
36
+ };
37
+
38
+ exports.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,30 @@
1
+ import useSWRMutation from 'swr/mutation';
2
+ import { createApi } from './createApi.esm.js';
3
+ import { a as createUseApi } from './createSwrApi.esm.js';
4
+ import '@koine/utils';
5
+ import 'swr';
6
+
7
+ let createUseMutationApi = (api, method) => (endpoint, options, config) => {
8
+ const sender = async (_endpoint, _options) => {
9
+ const endpoint = Array.isArray(_endpoint) ? _endpoint[0] : _endpoint;
10
+ const options = Array.isArray(_endpoint) ? _endpoint[1] : {};
11
+ const { ok, data } = await api[method](endpoint, {
12
+ ...options,
13
+ ...(_options.arg || {}),
14
+ throwErr: true,
15
+ });
16
+ return ok ? data : data;
17
+ };
18
+ return useSWRMutation(options ? [endpoint, options] : endpoint, sender, config);
19
+ };
20
+ let createSwrMutationApi = (...args) => {
21
+ const api = createApi(...args);
22
+ api.use = createUseApi(api);
23
+ ["post", "put", "patch", "delete"].forEach((method) => {
24
+ const hookName = `use${method.charAt(0).toUpperCase() + method.slice(1)}`;
25
+ api[hookName] = createUseMutationApi(api, method);
26
+ });
27
+ return api;
28
+ };
29
+
30
+ export { createSwrMutationApi };
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,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var createSwrApi = require('./createSwrApi.cjs.js');
6
+ require('swr');
7
+ require('@koine/utils');
8
+ require('./createApi.cjs.js');
9
+
10
+
11
+
12
+ 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.esm.js ADDED
@@ -0,0 +1,4 @@
1
+ export { c as createSwrApi } from './createSwrApi.esm.js';
2
+ import 'swr';
3
+ import '@koine/utils';
4
+ import './createApi.esm.js';