@koine/api 1.0.18 → 1.0.20

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 CHANGED
@@ -25,23 +25,21 @@ 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 || {}, adapterBase = _a.adapter, shouldThrowBase = _a.shouldThrow;
28
+ var _a = options || {}, adapterBase = _a.adapter, _b = _a.request, requestBase = _b === void 0 ? {
29
+ // mode: "cors",
30
+ // redirect: "follow",
31
+ credentials: "include",
32
+ // cache: "no-cache",
33
+ referrerPolicy: "no-referrer",
34
+ } : _b, shouldThrowBase = _a.shouldThrow;
29
35
  return ["get", "post", "put", "patch", "delete"].reduce(function (api, method) {
30
36
  api[method] = function (endpoint, options) { return __awaiter(void 0, void 0, void 0, function () {
31
- var _a, json, params, _b, headers, _c, timeout, _d, adapter, _e, shouldThrow, requestInit, timeoutNumber, controller, timeoutId, url, response, e_1, result, e_2, pre;
32
- return __generator(this, function (_f) {
33
- switch (_f.label) {
37
+ var _a, json, params, _b, request, _c, headers, _d, timeout, _e, adapter, _f, shouldThrow, requestInit, timeoutNumber, controller, timeoutId, url, response, e_1, result, e_2, pre;
38
+ return __generator(this, function (_g) {
39
+ switch (_g.label) {
34
40
  case 0:
35
- _a = options || {}, json = _a.json, params = _a.params, _b = _a.headers, headers = _b === void 0 ? {} : _b, _c = _a.timeout, timeout = _c === void 0 ? 10000 : _c, _d = _a.adapter, adapter = _d === void 0 ? adapterBase : _d, _e = _a.shouldThrow, shouldThrow = _e === void 0 ? shouldThrowBase : _e;
36
- requestInit = {
37
- method: method.toUpperCase(),
38
- // mode: "cors",
39
- // redirect: "follow",
40
- credentials: "include",
41
- // cache: "no-cache",
42
- referrerPolicy: "no-referrer",
43
- headers: __assign({ "content-type": "application/json" }, headers),
44
- };
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.adapter, adapter = _e === void 0 ? adapterBase : _e, _f = _a.shouldThrow, shouldThrow = _f === void 0 ? shouldThrowBase : _f;
42
+ requestInit = __assign(__assign({ method: method.toUpperCase() }, request), { headers: __assign({ "content-type": "application/json" }, headers) });
45
43
  timeoutNumber = Number(timeout);
46
44
  url = "".concat(baseUrl, "/").concat(endpoint + "".replace(/^\/*/, ""));
47
45
  if (method !== "get" && json) {
@@ -58,42 +56,42 @@ export var createApi = function (apiName, baseUrl, options) {
58
56
  url += buildUrlQueryString(params);
59
57
  }
60
58
  if (!shouldThrow) return [3 /*break*/, 5];
61
- _f.label = 1;
59
+ _g.label = 1;
62
60
  case 1:
63
- _f.trys.push([1, 3, , 4]);
61
+ _g.trys.push([1, 3, , 4]);
64
62
  return [4 /*yield*/, fetch(url, requestInit)];
65
63
  case 2:
66
- response = _f.sent();
64
+ response = _g.sent();
67
65
  return [3 /*break*/, 4];
68
66
  case 3:
69
- e_1 = _f.sent();
67
+ e_1 = _g.sent();
70
68
  // eslint-disable-next-line no-throw-literal
71
69
  throw { e: e_1 };
72
70
  case 4: return [3 /*break*/, 7];
73
71
  case 5: return [4 /*yield*/, fetch(url, requestInit)];
74
72
  case 6:
75
- response = _f.sent();
76
- _f.label = 7;
73
+ response = _g.sent();
74
+ _g.label = 7;
77
75
  case 7:
78
76
  if (timeoutId) {
79
77
  clearTimeout(timeoutId);
80
78
  }
81
79
  if (!shouldThrow) return [3 /*break*/, 15];
82
- _f.label = 8;
80
+ _g.label = 8;
83
81
  case 8:
84
- _f.trys.push([8, 13, , 14]);
82
+ _g.trys.push([8, 13, , 14]);
85
83
  if (!adapter) return [3 /*break*/, 10];
86
84
  return [4 /*yield*/, adapter(response, options || {})];
87
85
  case 9:
88
- result = _f.sent();
86
+ result = _g.sent();
89
87
  return [3 /*break*/, 12];
90
88
  case 10: return [4 /*yield*/, response.json()];
91
89
  case 11:
92
- result = _f.sent();
93
- _f.label = 12;
90
+ result = _g.sent();
91
+ _g.label = 12;
94
92
  case 12: return [3 /*break*/, 14];
95
93
  case 13:
96
- e_2 = _f.sent();
94
+ e_2 = _g.sent();
97
95
  // eslint-disable-next-line no-throw-literal
98
96
  throw { e: e_2 };
99
97
  case 14: return [3 /*break*/, 19];
@@ -101,12 +99,12 @@ export var createApi = function (apiName, baseUrl, options) {
101
99
  if (!adapter) return [3 /*break*/, 17];
102
100
  return [4 /*yield*/, adapter(response, options || {})];
103
101
  case 16:
104
- result = _f.sent();
102
+ result = _g.sent();
105
103
  return [3 /*break*/, 19];
106
104
  case 17: return [4 /*yield*/, response.json()];
107
105
  case 18:
108
- result = _f.sent();
109
- _f.label = 19;
106
+ result = _g.sent();
107
+ _g.label = 19;
110
108
  case 19:
111
109
  if (shouldThrow && result.fail) {
112
110
  // throw new ApiError<Failed>(result);
@@ -28,23 +28,21 @@ 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 || {}, adapterBase = _a.adapter, shouldThrowBase = _a.shouldThrow;
31
+ var _a = options || {}, adapterBase = _a.adapter, _b = _a.request, requestBase = _b === void 0 ? {
32
+ // mode: "cors",
33
+ // redirect: "follow",
34
+ credentials: "include",
35
+ // cache: "no-cache",
36
+ referrerPolicy: "no-referrer",
37
+ } : _b, shouldThrowBase = _a.shouldThrow;
32
38
  return ["get", "post", "put", "patch", "delete"].reduce(function (api, method) {
33
39
  api[method] = function (endpoint, options) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
34
- var _a, json, params, _b, headers, _c, timeout, _d, adapter, _e, shouldThrow, requestInit, timeoutNumber, controller, timeoutId, url, response, e_1, result, e_2, pre;
35
- return tslib_1.__generator(this, function (_f) {
36
- switch (_f.label) {
40
+ var _a, json, params, _b, request, _c, headers, _d, timeout, _e, adapter, _f, shouldThrow, requestInit, timeoutNumber, controller, timeoutId, url, response, e_1, result, e_2, pre;
41
+ return tslib_1.__generator(this, function (_g) {
42
+ switch (_g.label) {
37
43
  case 0:
38
- _a = options || {}, json = _a.json, params = _a.params, _b = _a.headers, headers = _b === void 0 ? {} : _b, _c = _a.timeout, timeout = _c === void 0 ? 10000 : _c, _d = _a.adapter, adapter = _d === void 0 ? adapterBase : _d, _e = _a.shouldThrow, shouldThrow = _e === void 0 ? shouldThrowBase : _e;
39
- requestInit = {
40
- method: method.toUpperCase(),
41
- // mode: "cors",
42
- // redirect: "follow",
43
- credentials: "include",
44
- // cache: "no-cache",
45
- referrerPolicy: "no-referrer",
46
- headers: tslib_1.__assign({ "content-type": "application/json" }, headers),
47
- };
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.adapter, adapter = _e === void 0 ? adapterBase : _e, _f = _a.shouldThrow, shouldThrow = _f === void 0 ? shouldThrowBase : _f;
45
+ requestInit = tslib_1.__assign(tslib_1.__assign({ method: method.toUpperCase() }, request), { headers: tslib_1.__assign({ "content-type": "application/json" }, headers) });
48
46
  timeoutNumber = Number(timeout);
49
47
  url = "".concat(baseUrl, "/").concat(endpoint + "".replace(/^\/*/, ""));
50
48
  if (method !== "get" && json) {
@@ -61,42 +59,42 @@ var createApi = function (apiName, baseUrl, options) {
61
59
  url += (0, utils_1.buildUrlQueryString)(params);
62
60
  }
63
61
  if (!shouldThrow) return [3 /*break*/, 5];
64
- _f.label = 1;
62
+ _g.label = 1;
65
63
  case 1:
66
- _f.trys.push([1, 3, , 4]);
64
+ _g.trys.push([1, 3, , 4]);
67
65
  return [4 /*yield*/, fetch(url, requestInit)];
68
66
  case 2:
69
- response = _f.sent();
67
+ response = _g.sent();
70
68
  return [3 /*break*/, 4];
71
69
  case 3:
72
- e_1 = _f.sent();
70
+ e_1 = _g.sent();
73
71
  // eslint-disable-next-line no-throw-literal
74
72
  throw { e: e_1 };
75
73
  case 4: return [3 /*break*/, 7];
76
74
  case 5: return [4 /*yield*/, fetch(url, requestInit)];
77
75
  case 6:
78
- response = _f.sent();
79
- _f.label = 7;
76
+ response = _g.sent();
77
+ _g.label = 7;
80
78
  case 7:
81
79
  if (timeoutId) {
82
80
  clearTimeout(timeoutId);
83
81
  }
84
82
  if (!shouldThrow) return [3 /*break*/, 15];
85
- _f.label = 8;
83
+ _g.label = 8;
86
84
  case 8:
87
- _f.trys.push([8, 13, , 14]);
85
+ _g.trys.push([8, 13, , 14]);
88
86
  if (!adapter) return [3 /*break*/, 10];
89
87
  return [4 /*yield*/, adapter(response, options || {})];
90
88
  case 9:
91
- result = _f.sent();
89
+ result = _g.sent();
92
90
  return [3 /*break*/, 12];
93
91
  case 10: return [4 /*yield*/, response.json()];
94
92
  case 11:
95
- result = _f.sent();
96
- _f.label = 12;
93
+ result = _g.sent();
94
+ _g.label = 12;
97
95
  case 12: return [3 /*break*/, 14];
98
96
  case 13:
99
- e_2 = _f.sent();
97
+ e_2 = _g.sent();
100
98
  // eslint-disable-next-line no-throw-literal
101
99
  throw { e: e_2 };
102
100
  case 14: return [3 /*break*/, 19];
@@ -104,12 +102,12 @@ var createApi = function (apiName, baseUrl, options) {
104
102
  if (!adapter) return [3 /*break*/, 17];
105
103
  return [4 /*yield*/, adapter(response, options || {})];
106
104
  case 16:
107
- result = _f.sent();
105
+ result = _g.sent();
108
106
  return [3 /*break*/, 19];
109
107
  case 17: return [4 /*yield*/, response.json()];
110
108
  case 18:
111
- result = _f.sent();
112
- _f.label = 19;
109
+ result = _g.sent();
110
+ _g.label = 19;
113
111
  case 19:
114
112
  if (shouldThrow && result.fail) {
115
113
  // throw new ApiError<Failed>(result);
package/package.json CHANGED
@@ -4,13 +4,13 @@
4
4
  "main": "./node/index.js",
5
5
  "typings": "./index.d.ts",
6
6
  "dependencies": {
7
- "@koine/utils": "1.0.18",
7
+ "@koine/utils": "1.0.20",
8
8
  "next": "^12.1.6",
9
9
  "swr": "^2.0.0-beta.3",
10
10
  "tslib": "^2.4.0"
11
11
  },
12
12
  "peerDependencies": {},
13
- "version": "1.0.18",
13
+ "version": "1.0.20",
14
14
  "module": "./index.js",
15
15
  "types": "./index.d.ts"
16
16
  }
package/typings.d.ts CHANGED
@@ -19,6 +19,14 @@ declare namespace Koine.Api {
19
19
  ) => Client<TEndpoints>;
20
20
 
21
21
  type ClientOptions = {
22
+ /**
23
+ * Basic request options to supply to `fetch`
24
+ *
25
+ * @see RequestInit
26
+ *
27
+ * @default { credentials: "include", referrerPolicy: "no-referrer" }
28
+ */
29
+ request?: Omit<RequestInit, "body" | "headers" | "method">;
22
30
  adapter?: ResponseAdapter;
23
31
  shouldThrow?: boolean;
24
32
  };
@@ -175,6 +183,14 @@ declare namespace Koine.Api {
175
183
  * @default 10000
176
184
  */
177
185
  timeout?: number | false | null;
186
+ /**
187
+ * Basic request options to supply to `fetch`
188
+ *
189
+ * @see RequestInit
190
+ *
191
+ * @default { credentials: "include", referrerPolicy: "no-referrer" }
192
+ */
193
+ request?: Omit<RequestInit, "body" | "headers" | "method">;
178
194
  };
179
195
 
180
196
  /**