@koine/api 1.0.26 → 1.0.29
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/core/index.js +27 -24
- package/node/core/index.js +27 -24
- package/package.json +2 -2
- package/swr/index.d.ts +1 -1
- package/typings.d.ts +5 -2
package/core/index.js
CHANGED
|
@@ -25,7 +25,7 @@ export { ApiError };
|
|
|
25
25
|
* @param baseUrl Either relativ eor absolute, it must end without trailing slash
|
|
26
26
|
*/
|
|
27
27
|
export var createApi = function (apiName, baseUrl, options) {
|
|
28
|
-
var _a = options || {},
|
|
28
|
+
var _a = options || {}, transformRequestBase = _a.transformRequest, transformResponseBase = _a.transformResponse, _b = _a.request, requestBase = _b === void 0 ? {
|
|
29
29
|
credentials: "include",
|
|
30
30
|
referrerPolicy: "no-referrer",
|
|
31
31
|
// mode: "cors",
|
|
@@ -34,11 +34,11 @@ export var createApi = function (apiName, baseUrl, options) {
|
|
|
34
34
|
} : _b, shouldThrowBase = _a.shouldThrow;
|
|
35
35
|
return ["get", "post", "put", "patch", "delete"].reduce(function (api, method) {
|
|
36
36
|
api[method] = function (endpoint, options) { return __awaiter(void 0, void 0, void 0, function () {
|
|
37
|
-
var _a, json, params, _b, request, _c, headers, _d, timeout, _e,
|
|
38
|
-
return __generator(this, function (
|
|
39
|
-
switch (
|
|
37
|
+
var _a, json, params, _b, request, _c, headers, _d, timeout, _e, transformRequest, _f, transformResponse, _g, shouldThrow, requestInit, timeoutNumber, controller, timeoutId, url, response, e_1, result, e_2, msg;
|
|
38
|
+
return __generator(this, function (_h) {
|
|
39
|
+
switch (_h.label) {
|
|
40
40
|
case 0:
|
|
41
|
-
_a = options || {}, json = _a.json, params = _a.params, _b = _a.request, request = _b === void 0 ? requestBase : _b, _c = _a.headers, headers = _c === void 0 ? {} : _c, _d = _a.timeout, timeout = _d === void 0 ? 10000 : _d, _e = _a.
|
|
41
|
+
_a = options || {}, json = _a.json, params = _a.params, _b = _a.request, request = _b === void 0 ? requestBase : _b, _c = _a.headers, headers = _c === void 0 ? {} : _c, _d = _a.timeout, timeout = _d === void 0 ? 10000 : _d, _e = _a.transformRequest, transformRequest = _e === void 0 ? transformRequestBase : _e, _f = _a.transformResponse, transformResponse = _f === void 0 ? transformResponseBase : _f, _g = _a.shouldThrow, shouldThrow = _g === void 0 ? shouldThrowBase : _g;
|
|
42
42
|
requestInit = __assign(__assign({ method: method.toUpperCase() }, request), { headers: __assign({ "content-type": "application/json" }, headers) });
|
|
43
43
|
timeoutNumber = Number(timeout);
|
|
44
44
|
url = "".concat(baseUrl, "/").concat(endpoint + "".replace(/^\/*/, ""));
|
|
@@ -50,61 +50,64 @@ export var createApi = function (apiName, baseUrl, options) {
|
|
|
50
50
|
timeoutId = setTimeout(function () { return controller.abort(); }, timeoutNumber);
|
|
51
51
|
requestInit.signal = controller.signal;
|
|
52
52
|
}
|
|
53
|
+
if (transformRequest) {
|
|
54
|
+
requestInit = transformRequest(requestInit);
|
|
55
|
+
}
|
|
53
56
|
if (params) {
|
|
54
57
|
// FIXME: ts-expect-error this assertion is not the best, but nevermind for now
|
|
55
58
|
// url += buildUrlQueryString(params as unknown as Koine.Api.RequestParams);
|
|
56
59
|
url += buildUrlQueryString(params);
|
|
57
60
|
}
|
|
58
61
|
if (!shouldThrow) return [3 /*break*/, 5];
|
|
59
|
-
|
|
62
|
+
_h.label = 1;
|
|
60
63
|
case 1:
|
|
61
|
-
|
|
64
|
+
_h.trys.push([1, 3, , 4]);
|
|
62
65
|
return [4 /*yield*/, fetch(url, requestInit)];
|
|
63
66
|
case 2:
|
|
64
|
-
response =
|
|
67
|
+
response = _h.sent();
|
|
65
68
|
return [3 /*break*/, 4];
|
|
66
69
|
case 3:
|
|
67
|
-
e_1 =
|
|
70
|
+
e_1 = _h.sent();
|
|
68
71
|
// eslint-disable-next-line no-throw-literal
|
|
69
72
|
throw { e: e_1 };
|
|
70
73
|
case 4: return [3 /*break*/, 7];
|
|
71
74
|
case 5: return [4 /*yield*/, fetch(url, requestInit)];
|
|
72
75
|
case 6:
|
|
73
|
-
response =
|
|
74
|
-
|
|
76
|
+
response = _h.sent();
|
|
77
|
+
_h.label = 7;
|
|
75
78
|
case 7:
|
|
76
79
|
if (timeoutId) {
|
|
77
80
|
clearTimeout(timeoutId);
|
|
78
81
|
}
|
|
79
82
|
if (!shouldThrow) return [3 /*break*/, 15];
|
|
80
|
-
|
|
83
|
+
_h.label = 8;
|
|
81
84
|
case 8:
|
|
82
|
-
|
|
83
|
-
if (!
|
|
84
|
-
return [4 /*yield*/,
|
|
85
|
+
_h.trys.push([8, 13, , 14]);
|
|
86
|
+
if (!transformResponse) return [3 /*break*/, 10];
|
|
87
|
+
return [4 /*yield*/, transformResponse(response, options || {})];
|
|
85
88
|
case 9:
|
|
86
|
-
result =
|
|
89
|
+
result = _h.sent();
|
|
87
90
|
return [3 /*break*/, 12];
|
|
88
91
|
case 10: return [4 /*yield*/, response.json()];
|
|
89
92
|
case 11:
|
|
90
|
-
result =
|
|
91
|
-
|
|
93
|
+
result = _h.sent();
|
|
94
|
+
_h.label = 12;
|
|
92
95
|
case 12: return [3 /*break*/, 14];
|
|
93
96
|
case 13:
|
|
94
|
-
e_2 =
|
|
97
|
+
e_2 = _h.sent();
|
|
95
98
|
// eslint-disable-next-line no-throw-literal
|
|
96
99
|
throw { e: e_2 };
|
|
97
100
|
case 14: return [3 /*break*/, 19];
|
|
98
101
|
case 15:
|
|
99
|
-
if (!
|
|
100
|
-
return [4 /*yield*/,
|
|
102
|
+
if (!transformResponse) return [3 /*break*/, 17];
|
|
103
|
+
return [4 /*yield*/, transformResponse(response, options || {})];
|
|
101
104
|
case 16:
|
|
102
|
-
result =
|
|
105
|
+
result = _h.sent();
|
|
103
106
|
return [3 /*break*/, 19];
|
|
104
107
|
case 17: return [4 /*yield*/, response.json()];
|
|
105
108
|
case 18:
|
|
106
|
-
result =
|
|
107
|
-
|
|
109
|
+
result = _h.sent();
|
|
110
|
+
_h.label = 19;
|
|
108
111
|
case 19:
|
|
109
112
|
if (shouldThrow && result.fail) {
|
|
110
113
|
// throw new ApiError<Failed>(result);
|
package/node/core/index.js
CHANGED
|
@@ -28,7 +28,7 @@ exports.ApiError = ApiError;
|
|
|
28
28
|
* @param baseUrl Either relativ eor absolute, it must end without trailing slash
|
|
29
29
|
*/
|
|
30
30
|
var createApi = function (apiName, baseUrl, options) {
|
|
31
|
-
var _a = options || {},
|
|
31
|
+
var _a = options || {}, transformRequestBase = _a.transformRequest, transformResponseBase = _a.transformResponse, _b = _a.request, requestBase = _b === void 0 ? {
|
|
32
32
|
credentials: "include",
|
|
33
33
|
referrerPolicy: "no-referrer",
|
|
34
34
|
// mode: "cors",
|
|
@@ -37,11 +37,11 @@ var createApi = function (apiName, baseUrl, options) {
|
|
|
37
37
|
} : _b, shouldThrowBase = _a.shouldThrow;
|
|
38
38
|
return ["get", "post", "put", "patch", "delete"].reduce(function (api, method) {
|
|
39
39
|
api[method] = function (endpoint, options) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
40
|
-
var _a, json, params, _b, request, _c, headers, _d, timeout, _e,
|
|
41
|
-
return tslib_1.__generator(this, function (
|
|
42
|
-
switch (
|
|
40
|
+
var _a, json, params, _b, request, _c, headers, _d, timeout, _e, transformRequest, _f, transformResponse, _g, shouldThrow, requestInit, timeoutNumber, controller, timeoutId, url, response, e_1, result, e_2, msg;
|
|
41
|
+
return tslib_1.__generator(this, function (_h) {
|
|
42
|
+
switch (_h.label) {
|
|
43
43
|
case 0:
|
|
44
|
-
_a = options || {}, json = _a.json, params = _a.params, _b = _a.request, request = _b === void 0 ? requestBase : _b, _c = _a.headers, headers = _c === void 0 ? {} : _c, _d = _a.timeout, timeout = _d === void 0 ? 10000 : _d, _e = _a.
|
|
44
|
+
_a = options || {}, json = _a.json, params = _a.params, _b = _a.request, request = _b === void 0 ? requestBase : _b, _c = _a.headers, headers = _c === void 0 ? {} : _c, _d = _a.timeout, timeout = _d === void 0 ? 10000 : _d, _e = _a.transformRequest, transformRequest = _e === void 0 ? transformRequestBase : _e, _f = _a.transformResponse, transformResponse = _f === void 0 ? transformResponseBase : _f, _g = _a.shouldThrow, shouldThrow = _g === void 0 ? shouldThrowBase : _g;
|
|
45
45
|
requestInit = tslib_1.__assign(tslib_1.__assign({ method: method.toUpperCase() }, request), { headers: tslib_1.__assign({ "content-type": "application/json" }, headers) });
|
|
46
46
|
timeoutNumber = Number(timeout);
|
|
47
47
|
url = "".concat(baseUrl, "/").concat(endpoint + "".replace(/^\/*/, ""));
|
|
@@ -53,61 +53,64 @@ var createApi = function (apiName, baseUrl, options) {
|
|
|
53
53
|
timeoutId = setTimeout(function () { return controller.abort(); }, timeoutNumber);
|
|
54
54
|
requestInit.signal = controller.signal;
|
|
55
55
|
}
|
|
56
|
+
if (transformRequest) {
|
|
57
|
+
requestInit = transformRequest(requestInit);
|
|
58
|
+
}
|
|
56
59
|
if (params) {
|
|
57
60
|
// FIXME: ts-expect-error this assertion is not the best, but nevermind for now
|
|
58
61
|
// url += buildUrlQueryString(params as unknown as Koine.Api.RequestParams);
|
|
59
62
|
url += (0, utils_1.buildUrlQueryString)(params);
|
|
60
63
|
}
|
|
61
64
|
if (!shouldThrow) return [3 /*break*/, 5];
|
|
62
|
-
|
|
65
|
+
_h.label = 1;
|
|
63
66
|
case 1:
|
|
64
|
-
|
|
67
|
+
_h.trys.push([1, 3, , 4]);
|
|
65
68
|
return [4 /*yield*/, fetch(url, requestInit)];
|
|
66
69
|
case 2:
|
|
67
|
-
response =
|
|
70
|
+
response = _h.sent();
|
|
68
71
|
return [3 /*break*/, 4];
|
|
69
72
|
case 3:
|
|
70
|
-
e_1 =
|
|
73
|
+
e_1 = _h.sent();
|
|
71
74
|
// eslint-disable-next-line no-throw-literal
|
|
72
75
|
throw { e: e_1 };
|
|
73
76
|
case 4: return [3 /*break*/, 7];
|
|
74
77
|
case 5: return [4 /*yield*/, fetch(url, requestInit)];
|
|
75
78
|
case 6:
|
|
76
|
-
response =
|
|
77
|
-
|
|
79
|
+
response = _h.sent();
|
|
80
|
+
_h.label = 7;
|
|
78
81
|
case 7:
|
|
79
82
|
if (timeoutId) {
|
|
80
83
|
clearTimeout(timeoutId);
|
|
81
84
|
}
|
|
82
85
|
if (!shouldThrow) return [3 /*break*/, 15];
|
|
83
|
-
|
|
86
|
+
_h.label = 8;
|
|
84
87
|
case 8:
|
|
85
|
-
|
|
86
|
-
if (!
|
|
87
|
-
return [4 /*yield*/,
|
|
88
|
+
_h.trys.push([8, 13, , 14]);
|
|
89
|
+
if (!transformResponse) return [3 /*break*/, 10];
|
|
90
|
+
return [4 /*yield*/, transformResponse(response, options || {})];
|
|
88
91
|
case 9:
|
|
89
|
-
result =
|
|
92
|
+
result = _h.sent();
|
|
90
93
|
return [3 /*break*/, 12];
|
|
91
94
|
case 10: return [4 /*yield*/, response.json()];
|
|
92
95
|
case 11:
|
|
93
|
-
result =
|
|
94
|
-
|
|
96
|
+
result = _h.sent();
|
|
97
|
+
_h.label = 12;
|
|
95
98
|
case 12: return [3 /*break*/, 14];
|
|
96
99
|
case 13:
|
|
97
|
-
e_2 =
|
|
100
|
+
e_2 = _h.sent();
|
|
98
101
|
// eslint-disable-next-line no-throw-literal
|
|
99
102
|
throw { e: e_2 };
|
|
100
103
|
case 14: return [3 /*break*/, 19];
|
|
101
104
|
case 15:
|
|
102
|
-
if (!
|
|
103
|
-
return [4 /*yield*/,
|
|
105
|
+
if (!transformResponse) return [3 /*break*/, 17];
|
|
106
|
+
return [4 /*yield*/, transformResponse(response, options || {})];
|
|
104
107
|
case 16:
|
|
105
|
-
result =
|
|
108
|
+
result = _h.sent();
|
|
106
109
|
return [3 /*break*/, 19];
|
|
107
110
|
case 17: return [4 /*yield*/, response.json()];
|
|
108
111
|
case 18:
|
|
109
|
-
result =
|
|
110
|
-
|
|
112
|
+
result = _h.sent();
|
|
113
|
+
_h.label = 19;
|
|
111
114
|
case 19:
|
|
112
115
|
if (shouldThrow && result.fail) {
|
|
113
116
|
// throw new ApiError<Failed>(result);
|
package/package.json
CHANGED
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
"typings": "./index.d.ts",
|
|
6
6
|
"dependencies": {},
|
|
7
7
|
"peerDependencies": {
|
|
8
|
-
"@koine/utils": "1.0.
|
|
8
|
+
"@koine/utils": "1.0.29",
|
|
9
9
|
"next": "^12.1.6",
|
|
10
10
|
"swr": "^2.0.0-beta.3",
|
|
11
11
|
"tslib": "^2.4.0"
|
|
12
12
|
},
|
|
13
|
-
"version": "1.0.
|
|
13
|
+
"version": "1.0.29",
|
|
14
14
|
"module": "./index.js",
|
|
15
15
|
"types": "./index.d.ts"
|
|
16
16
|
}
|
package/swr/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type SWRConfiguration, type SWRResponse } from "swr";
|
|
2
2
|
import { type SWRMutationConfiguration, type SWRMutationResponse } from "swr/mutation";
|
|
3
|
-
declare 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.EndpointRequestOptions<TEndpoints, TEndpoint, TMethod>, config?: THookName extends "useGet" ? SWRConfiguration<Koine.Api.EndpointResponseOk<TEndpoints, TEndpoint, TMethod>, Koine.Api.EndpointResponseFail<TEndpoints, TEndpoint, TMethod>> : SWRMutationConfiguration<Koine.Api.
|
|
3
|
+
declare 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.EndpointRequestOptions<TEndpoints, TEndpoint, TMethod>, config?: THookName extends "useGet" ? SWRConfiguration<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.EndpointRequestOptions<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.EndpointRequestOptions<TEndpoints, TEndpoint, TMethod>, TEndpoint>;
|
|
4
4
|
/**
|
|
5
5
|
* It creates an api client extended with auto-generated SWR wrapper hooks
|
|
6
6
|
*/
|
package/typings.d.ts
CHANGED
|
@@ -27,7 +27,8 @@ declare namespace Koine.Api {
|
|
|
27
27
|
* @default { credentials: "include", referrerPolicy: "no-referrer" }
|
|
28
28
|
*/
|
|
29
29
|
request?: Omit<RequestInit, "body" | "headers" | "method">;
|
|
30
|
-
|
|
30
|
+
transformRequest?: RequestTransformer;
|
|
31
|
+
transformResponse?: ResponseTransformer;
|
|
31
32
|
shouldThrow?: boolean;
|
|
32
33
|
};
|
|
33
34
|
|
|
@@ -298,7 +299,9 @@ declare namespace Koine.Api {
|
|
|
298
299
|
data: TResponseFail;
|
|
299
300
|
};
|
|
300
301
|
|
|
301
|
-
type
|
|
302
|
+
type RequestTransformer = (request: RequestInit) => RequestInit;
|
|
303
|
+
|
|
304
|
+
type ResponseTransformer = <
|
|
302
305
|
TResponseOk extends ResponseOk = ResponseOk,
|
|
303
306
|
TResponseFail extends ResponseFailed = ResponseFailed
|
|
304
307
|
>(
|