@nestia/fetcher 2.2.0-dev.20231008 → 2.2.0
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.
|
@@ -119,18 +119,18 @@ var FetcherBase;
|
|
|
119
119
|
var _Propagate = function (method) {
|
|
120
120
|
return function (props) {
|
|
121
121
|
return function (connection, route, input, stringify) { return __awaiter(_this, void 0, void 0, function () {
|
|
122
|
-
var headers, init, path, url, response, result, _a, type, text, _b, _c, _d;
|
|
123
|
-
var
|
|
124
|
-
return __generator(this, function (
|
|
125
|
-
switch (
|
|
122
|
+
var headers, init, path, url, response, result, _a, type, text, query, _b, _c, _d, _e;
|
|
123
|
+
var _f, _g, _h, _j, _k, _l, _m;
|
|
124
|
+
return __generator(this, function (_o) {
|
|
125
|
+
switch (_o.label) {
|
|
126
126
|
case 0:
|
|
127
|
-
headers = __assign({}, ((
|
|
127
|
+
headers = __assign({}, ((_f = connection.headers) !== null && _f !== void 0 ? _f : {}));
|
|
128
128
|
if (input !== undefined) {
|
|
129
|
-
if (((
|
|
129
|
+
if (((_g = route.request) === null || _g === void 0 ? void 0 : _g.type) === undefined)
|
|
130
130
|
throw new Error("Error on ".concat(props.className, ".fetch(): no content-type being configured."));
|
|
131
131
|
headers["Content-Type"] = route.request.type;
|
|
132
132
|
}
|
|
133
|
-
init = __assign(__assign({}, ((
|
|
133
|
+
init = __assign(__assign({}, ((_h = connection.options) !== null && _h !== void 0 ? _h : {})), { method: route.method, headers: (function () {
|
|
134
134
|
var e_1, _a, e_2, _b;
|
|
135
135
|
var output = [];
|
|
136
136
|
try {
|
|
@@ -169,9 +169,9 @@ var FetcherBase;
|
|
|
169
169
|
if (input !== undefined)
|
|
170
170
|
init.body = props.encode(
|
|
171
171
|
// BODY TRANSFORM
|
|
172
|
-
((
|
|
172
|
+
((_j = route.request) === null || _j === void 0 ? void 0 : _j.type) === "application/x-www-form-urlencoded"
|
|
173
173
|
? request_query_body(input)
|
|
174
|
-
: ((
|
|
174
|
+
: ((_k = route.request) === null || _k === void 0 ? void 0 : _k.type) !== "text/plain"
|
|
175
175
|
? (stringify !== null && stringify !== void 0 ? stringify : JSON.stringify)(input)
|
|
176
176
|
: input, headers);
|
|
177
177
|
path = connection.host[connection.host.length - 1] !== "/" &&
|
|
@@ -180,9 +180,9 @@ var FetcherBase;
|
|
|
180
180
|
: route.path;
|
|
181
181
|
url = new URL("".concat(connection.host).concat(path));
|
|
182
182
|
return [4 /*yield*/, polyfill.get()];
|
|
183
|
-
case 1: return [4 /*yield*/, (
|
|
183
|
+
case 1: return [4 /*yield*/, (_o.sent())(url.href, init)];
|
|
184
184
|
case 2:
|
|
185
|
-
response =
|
|
185
|
+
response = _o.sent();
|
|
186
186
|
result = {
|
|
187
187
|
success: response.status === 200 ||
|
|
188
188
|
response.status === 201 ||
|
|
@@ -197,7 +197,7 @@ var FetcherBase;
|
|
|
197
197
|
return [4 /*yield*/, response.text()];
|
|
198
198
|
case 3:
|
|
199
199
|
// WHEN FAILED
|
|
200
|
-
_a.data =
|
|
200
|
+
_a.data = _o.sent();
|
|
201
201
|
type = response.headers.get("content-type");
|
|
202
202
|
if (method !== "fetch" &&
|
|
203
203
|
type &&
|
|
@@ -205,27 +205,37 @@ var FetcherBase;
|
|
|
205
205
|
try {
|
|
206
206
|
result.data = JSON.parse(result.data);
|
|
207
207
|
}
|
|
208
|
-
catch (
|
|
209
|
-
return [3 /*break*/,
|
|
208
|
+
catch (_p) { }
|
|
209
|
+
return [3 /*break*/, 11];
|
|
210
210
|
case 4:
|
|
211
211
|
if (!(route.method === "HEAD")) return [3 /*break*/, 5];
|
|
212
212
|
result.data = undefined;
|
|
213
|
-
return [3 /*break*/,
|
|
213
|
+
return [3 /*break*/, 11];
|
|
214
214
|
case 5:
|
|
215
|
-
if (!(((
|
|
215
|
+
if (!(((_l = route.response) === null || _l === void 0 ? void 0 : _l.type) === "application/json")) return [3 /*break*/, 7];
|
|
216
216
|
return [4 /*yield*/, response.text()];
|
|
217
217
|
case 6:
|
|
218
|
-
text =
|
|
218
|
+
text = _o.sent();
|
|
219
219
|
result.data = text.length ? JSON.parse(text) : undefined;
|
|
220
|
-
return [3 /*break*/,
|
|
220
|
+
return [3 /*break*/, 11];
|
|
221
221
|
case 7:
|
|
222
|
-
|
|
223
|
-
|
|
222
|
+
if (!(((_m = route.response) === null || _m === void 0 ? void 0 : _m.type) === "application/x-www-form-urlencoded")) return [3 /*break*/, 9];
|
|
223
|
+
_b = URLSearchParams.bind;
|
|
224
224
|
return [4 /*yield*/, response.text()];
|
|
225
225
|
case 8:
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
226
|
+
query = new (_b.apply(URLSearchParams, [void 0, _o.sent()]))();
|
|
227
|
+
result.data = route.parseQuery
|
|
228
|
+
? route.parseQuery(query)
|
|
229
|
+
: query;
|
|
230
|
+
return [3 /*break*/, 11];
|
|
231
|
+
case 9:
|
|
232
|
+
_c = result;
|
|
233
|
+
_e = (_d = props).decode;
|
|
234
|
+
return [4 /*yield*/, response.text()];
|
|
235
|
+
case 10:
|
|
236
|
+
_c.data = _e.apply(_d, [_o.sent(), result.headers]);
|
|
237
|
+
_o.label = 11;
|
|
238
|
+
case 11: return [2 /*return*/, result];
|
|
229
239
|
}
|
|
230
240
|
});
|
|
231
241
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FetcherBase.js","sourceRoot":"","sources":["../../src/internal/FetcherBase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA8B;AAI9B,yCAAwC;AACxC,0CAAyC;AAGzC,IAAiB,WAAW,
|
|
1
|
+
{"version":3,"file":"FetcherBase.js","sourceRoot":"","sources":["../../src/internal/FetcherBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Properties of remote API route.
|
|
3
|
+
*
|
|
4
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
5
|
+
*/
|
|
1
6
|
export interface IFetchRoute<Method extends "HEAD" | "GET" | "POST" | "PUT" | "PATCH" | "DELETE"> {
|
|
2
7
|
/**
|
|
3
8
|
* Method of the HTTP request.
|
|
@@ -10,17 +15,33 @@ export interface IFetchRoute<Method extends "HEAD" | "GET" | "POST" | "PUT" | "P
|
|
|
10
15
|
/**
|
|
11
16
|
* Request body data info.
|
|
12
17
|
*/
|
|
13
|
-
request: Method extends "DELETE" | "POST" | "PUT" | "PATCH" ?
|
|
18
|
+
request: Method extends "DELETE" | "POST" | "PUT" | "PATCH" ? IFetchRoute.IBody | null : null;
|
|
14
19
|
/**
|
|
15
20
|
* Response body data info.
|
|
16
21
|
*/
|
|
17
|
-
response: Method extends "HEAD" ? null :
|
|
22
|
+
response: Method extends "HEAD" ? null : IFetchRoute.IBody;
|
|
18
23
|
/**
|
|
19
24
|
* When special status code being used.
|
|
20
25
|
*/
|
|
21
26
|
status: number | null;
|
|
27
|
+
/**
|
|
28
|
+
* Parser of the query string.
|
|
29
|
+
*
|
|
30
|
+
* If content type of response body is `application/x-www-form-urlencoded`,
|
|
31
|
+
* then this `parseQuery` function would be called.
|
|
32
|
+
*
|
|
33
|
+
* If you've forgotten to configuring this `parseQuery` property about the
|
|
34
|
+
* `application/x-www-form-urlencoded` typed response body data, then
|
|
35
|
+
* only the `URLSearchParams` typed instance would be returned instead.
|
|
36
|
+
*/
|
|
37
|
+
parseQuery?(input: URLSearchParams): any;
|
|
22
38
|
}
|
|
23
|
-
export declare namespace
|
|
39
|
+
export declare namespace IFetchRoute {
|
|
40
|
+
/**
|
|
41
|
+
* Metadata of body.
|
|
42
|
+
*
|
|
43
|
+
* Describes how content-type being used in body, and whether encrypted or not.
|
|
44
|
+
*/
|
|
24
45
|
interface IBody {
|
|
25
46
|
type: "application/json" | "application/x-www-form-urlencoded" | "text/plain";
|
|
26
47
|
encrypted?: boolean;
|
package/package.json
CHANGED
|
@@ -160,6 +160,15 @@ export namespace FetcherBase {
|
|
|
160
160
|
else if (route.response?.type === "application/json") {
|
|
161
161
|
const text: string = await response.text();
|
|
162
162
|
result.data = text.length ? JSON.parse(text) : undefined;
|
|
163
|
+
} else if (
|
|
164
|
+
route.response?.type === "application/x-www-form-urlencoded"
|
|
165
|
+
) {
|
|
166
|
+
const query: URLSearchParams = new URLSearchParams(
|
|
167
|
+
await response.text(),
|
|
168
|
+
);
|
|
169
|
+
result.data = route.parseQuery
|
|
170
|
+
? route.parseQuery(query)
|
|
171
|
+
: query;
|
|
163
172
|
} else
|
|
164
173
|
result.data = props.decode(
|
|
165
174
|
await response.text(),
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Properties of remote API route.
|
|
3
|
+
*
|
|
4
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
5
|
+
*/
|
|
1
6
|
export interface IFetchRoute<
|
|
2
7
|
Method extends "HEAD" | "GET" | "POST" | "PUT" | "PATCH" | "DELETE",
|
|
3
8
|
> {
|
|
@@ -15,20 +20,37 @@ export interface IFetchRoute<
|
|
|
15
20
|
* Request body data info.
|
|
16
21
|
*/
|
|
17
22
|
request: Method extends "DELETE" | "POST" | "PUT" | "PATCH"
|
|
18
|
-
?
|
|
23
|
+
? IFetchRoute.IBody | null
|
|
19
24
|
: null;
|
|
20
25
|
|
|
21
26
|
/**
|
|
22
27
|
* Response body data info.
|
|
23
28
|
*/
|
|
24
|
-
response: Method extends "HEAD" ? null :
|
|
29
|
+
response: Method extends "HEAD" ? null : IFetchRoute.IBody;
|
|
25
30
|
|
|
26
31
|
/**
|
|
27
32
|
* When special status code being used.
|
|
28
33
|
*/
|
|
29
34
|
status: number | null;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Parser of the query string.
|
|
38
|
+
*
|
|
39
|
+
* If content type of response body is `application/x-www-form-urlencoded`,
|
|
40
|
+
* then this `parseQuery` function would be called.
|
|
41
|
+
*
|
|
42
|
+
* If you've forgotten to configuring this `parseQuery` property about the
|
|
43
|
+
* `application/x-www-form-urlencoded` typed response body data, then
|
|
44
|
+
* only the `URLSearchParams` typed instance would be returned instead.
|
|
45
|
+
*/
|
|
46
|
+
parseQuery?(input: URLSearchParams): any;
|
|
30
47
|
}
|
|
31
|
-
export namespace
|
|
48
|
+
export namespace IFetchRoute {
|
|
49
|
+
/**
|
|
50
|
+
* Metadata of body.
|
|
51
|
+
*
|
|
52
|
+
* Describes how content-type being used in body, and whether encrypted or not.
|
|
53
|
+
*/
|
|
32
54
|
export interface IBody {
|
|
33
55
|
type:
|
|
34
56
|
| "application/json"
|