@nestia/fetcher 3.2.1 → 3.2.2
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/lib/IFetchRoute.d.ts
CHANGED
|
@@ -12,6 +12,12 @@ export interface IFetchRoute<Method extends "HEAD" | "GET" | "POST" | "PUT" | "P
|
|
|
12
12
|
* Path of the HTTP request.
|
|
13
13
|
*/
|
|
14
14
|
path: string;
|
|
15
|
+
/**
|
|
16
|
+
* Path template.
|
|
17
|
+
*
|
|
18
|
+
* Filled since 3.2.2 version.
|
|
19
|
+
*/
|
|
20
|
+
template?: string;
|
|
15
21
|
/**
|
|
16
22
|
* Request body data info.
|
|
17
23
|
*/
|
|
@@ -118,7 +118,7 @@ var FetcherBase;
|
|
|
118
118
|
*/
|
|
119
119
|
var _Propagate = function (method) {
|
|
120
120
|
return function (props) {
|
|
121
|
-
return function (connection,
|
|
121
|
+
return function (connection, route, input, stringify) { return __awaiter(_this, void 0, void 0, function () {
|
|
122
122
|
var headers, init, path, url, event, response, _a, result, _b, type, text, query, _c, _d, _e, _f, exp_1, _g;
|
|
123
123
|
var _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
124
124
|
return __generator(this, function (_s) {
|
|
@@ -126,11 +126,11 @@ var FetcherBase;
|
|
|
126
126
|
case 0:
|
|
127
127
|
headers = __assign({}, ((_h = connection.headers) !== null && _h !== void 0 ? _h : {}));
|
|
128
128
|
if (input !== undefined)
|
|
129
|
-
if (((_j =
|
|
129
|
+
if (((_j = route.request) === null || _j === void 0 ? void 0 : _j.type) === undefined)
|
|
130
130
|
throw new Error("Error on ".concat(props.className, ".fetch(): no content-type being configured."));
|
|
131
|
-
else if (
|
|
132
|
-
headers["Content-Type"] =
|
|
133
|
-
init = __assign(__assign({}, ((_k = connection.options) !== null && _k !== void 0 ? _k : {})), { method:
|
|
131
|
+
else if (route.request.type !== "multipart/form-data")
|
|
132
|
+
headers["Content-Type"] = route.request.type;
|
|
133
|
+
init = __assign(__assign({}, ((_k = connection.options) !== null && _k !== void 0 ? _k : {})), { method: route.method, headers: (function () {
|
|
134
134
|
var e_1, _a, e_2, _b;
|
|
135
135
|
var output = [];
|
|
136
136
|
try {
|
|
@@ -169,20 +169,20 @@ var FetcherBase;
|
|
|
169
169
|
if (input !== undefined)
|
|
170
170
|
init.body = props.encode(
|
|
171
171
|
// BODY TRANSFORM
|
|
172
|
-
((_l =
|
|
172
|
+
((_l = route.request) === null || _l === void 0 ? void 0 : _l.type) === "application/x-www-form-urlencoded"
|
|
173
173
|
? request_query_body(input)
|
|
174
|
-
: ((_m =
|
|
174
|
+
: ((_m = route.request) === null || _m === void 0 ? void 0 : _m.type) === "multipart/form-data"
|
|
175
175
|
? request_form_data_body(input)
|
|
176
|
-
: ((_o =
|
|
176
|
+
: ((_o = route.request) === null || _o === void 0 ? void 0 : _o.type) !== "text/plain"
|
|
177
177
|
? (stringify !== null && stringify !== void 0 ? stringify : JSON.stringify)(input)
|
|
178
178
|
: input, headers);
|
|
179
179
|
path = connection.host[connection.host.length - 1] !== "/" &&
|
|
180
|
-
|
|
181
|
-
? "/".concat(
|
|
182
|
-
:
|
|
180
|
+
route.path[0] !== "/"
|
|
181
|
+
? "/".concat(route.path)
|
|
182
|
+
: route.path;
|
|
183
183
|
url = new URL("".concat(connection.host).concat(path));
|
|
184
184
|
event = {
|
|
185
|
-
route:
|
|
185
|
+
route: route,
|
|
186
186
|
path: path,
|
|
187
187
|
status: null,
|
|
188
188
|
input: input,
|
|
@@ -209,7 +209,7 @@ var FetcherBase;
|
|
|
209
209
|
result = {
|
|
210
210
|
success: response.status === 200 ||
|
|
211
211
|
response.status === 201 ||
|
|
212
|
-
response.status ==
|
|
212
|
+
response.status == route.status,
|
|
213
213
|
status: response.status,
|
|
214
214
|
headers: response_headers_to_object(response.headers),
|
|
215
215
|
data: undefined,
|
|
@@ -231,25 +231,23 @@ var FetcherBase;
|
|
|
231
231
|
catch (_t) { }
|
|
232
232
|
return [3 /*break*/, 14];
|
|
233
233
|
case 7:
|
|
234
|
-
if (!(
|
|
234
|
+
if (!(route.method === "HEAD")) return [3 /*break*/, 8];
|
|
235
235
|
result.data = undefined;
|
|
236
236
|
return [3 /*break*/, 14];
|
|
237
237
|
case 8:
|
|
238
|
-
if (!(((_q =
|
|
238
|
+
if (!(((_q = route.response) === null || _q === void 0 ? void 0 : _q.type) === "application/json")) return [3 /*break*/, 10];
|
|
239
239
|
return [4 /*yield*/, response.text()];
|
|
240
240
|
case 9:
|
|
241
241
|
text = _s.sent();
|
|
242
242
|
result.data = text.length ? JSON.parse(text) : undefined;
|
|
243
243
|
return [3 /*break*/, 14];
|
|
244
244
|
case 10:
|
|
245
|
-
if (!(((_r =
|
|
245
|
+
if (!(((_r = route.response) === null || _r === void 0 ? void 0 : _r.type) === "application/x-www-form-urlencoded")) return [3 /*break*/, 12];
|
|
246
246
|
_c = URLSearchParams.bind;
|
|
247
247
|
return [4 /*yield*/, response.text()];
|
|
248
248
|
case 11:
|
|
249
249
|
query = new (_c.apply(URLSearchParams, [void 0, _s.sent()]))();
|
|
250
|
-
result.data =
|
|
251
|
-
? metadata.parseQuery(query)
|
|
252
|
-
: query;
|
|
250
|
+
result.data = route.parseQuery ? route.parseQuery(query) : query;
|
|
253
251
|
return [3 /*break*/, 14];
|
|
254
252
|
case 12:
|
|
255
253
|
_d = result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FetcherBase.js","sourceRoot":"","sources":["../../src/internal/FetcherBase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA8B;AAE9B,0CAAyC;AAKzC,yCAAwC;AAExC,IAAiB,WAAW,
|
|
1
|
+
{"version":3,"file":"FetcherBase.js","sourceRoot":"","sources":["../../src/internal/FetcherBase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/IFetchRoute.ts
CHANGED
|
@@ -63,9 +63,7 @@ export namespace FetcherBase {
|
|
|
63
63
|
(props: IProps) =>
|
|
64
64
|
async <Input>(
|
|
65
65
|
connection: IConnection,
|
|
66
|
-
|
|
67
|
-
"DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT"
|
|
68
|
-
>,
|
|
66
|
+
route: IFetchRoute<"DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT">,
|
|
69
67
|
input?: Input,
|
|
70
68
|
stringify?: (input: Input) => string,
|
|
71
69
|
): Promise<IPropagation<any, any>> => {
|
|
@@ -77,17 +75,17 @@ export namespace FetcherBase {
|
|
|
77
75
|
...(connection.headers ?? {}),
|
|
78
76
|
};
|
|
79
77
|
if (input !== undefined)
|
|
80
|
-
if (
|
|
78
|
+
if (route.request?.type === undefined)
|
|
81
79
|
throw new Error(
|
|
82
80
|
`Error on ${props.className}.fetch(): no content-type being configured.`,
|
|
83
81
|
);
|
|
84
|
-
else if (
|
|
85
|
-
headers["Content-Type"] =
|
|
82
|
+
else if (route.request.type !== "multipart/form-data")
|
|
83
|
+
headers["Content-Type"] = route.request.type;
|
|
86
84
|
|
|
87
85
|
// INIT REQUEST DATA
|
|
88
86
|
const init: RequestInit = {
|
|
89
87
|
...(connection.options ?? {}),
|
|
90
|
-
method:
|
|
88
|
+
method: route.method,
|
|
91
89
|
headers: (() => {
|
|
92
90
|
const output: [string, string][] = [];
|
|
93
91
|
for (const [key, value] of Object.entries(headers))
|
|
@@ -103,11 +101,11 @@ export namespace FetcherBase {
|
|
|
103
101
|
if (input !== undefined)
|
|
104
102
|
init.body = props.encode(
|
|
105
103
|
// BODY TRANSFORM
|
|
106
|
-
|
|
104
|
+
route.request?.type === "application/x-www-form-urlencoded"
|
|
107
105
|
? request_query_body(input)
|
|
108
|
-
:
|
|
106
|
+
: route.request?.type === "multipart/form-data"
|
|
109
107
|
? request_form_data_body(input as any)
|
|
110
|
-
:
|
|
108
|
+
: route.request?.type !== "text/plain"
|
|
111
109
|
? (stringify ?? JSON.stringify)(input)
|
|
112
110
|
: input,
|
|
113
111
|
headers,
|
|
@@ -119,14 +117,14 @@ export namespace FetcherBase {
|
|
|
119
117
|
// URL SPECIFICATION
|
|
120
118
|
const path: string =
|
|
121
119
|
connection.host[connection.host.length - 1] !== "/" &&
|
|
122
|
-
|
|
123
|
-
? `/${
|
|
124
|
-
:
|
|
120
|
+
route.path[0] !== "/"
|
|
121
|
+
? `/${route.path}`
|
|
122
|
+
: route.path;
|
|
125
123
|
const url: URL = new URL(`${connection.host}${path}`);
|
|
126
124
|
|
|
127
125
|
// DO FETCH
|
|
128
126
|
const event: IFetchEvent = {
|
|
129
|
-
route
|
|
127
|
+
route,
|
|
130
128
|
path,
|
|
131
129
|
status: null,
|
|
132
130
|
input,
|
|
@@ -148,7 +146,7 @@ export namespace FetcherBase {
|
|
|
148
146
|
success:
|
|
149
147
|
response.status === 200 ||
|
|
150
148
|
response.status === 201 ||
|
|
151
|
-
response.status ==
|
|
149
|
+
response.status == route.status,
|
|
152
150
|
status: response.status,
|
|
153
151
|
headers: response_headers_to_object(response.headers),
|
|
154
152
|
data: undefined!,
|
|
@@ -167,19 +165,17 @@ export namespace FetcherBase {
|
|
|
167
165
|
} catch {}
|
|
168
166
|
} else {
|
|
169
167
|
// WHEN SUCCESS
|
|
170
|
-
if (
|
|
171
|
-
else if (
|
|
168
|
+
if (route.method === "HEAD") result.data = undefined!;
|
|
169
|
+
else if (route.response?.type === "application/json") {
|
|
172
170
|
const text: string = await response.text();
|
|
173
171
|
result.data = text.length ? JSON.parse(text) : undefined;
|
|
174
172
|
} else if (
|
|
175
|
-
|
|
173
|
+
route.response?.type === "application/x-www-form-urlencoded"
|
|
176
174
|
) {
|
|
177
175
|
const query: URLSearchParams = new URLSearchParams(
|
|
178
176
|
await response.text(),
|
|
179
177
|
);
|
|
180
|
-
result.data =
|
|
181
|
-
? metadata.parseQuery(query)
|
|
182
|
-
: query;
|
|
178
|
+
result.data = route.parseQuery ? route.parseQuery(query) : query;
|
|
183
179
|
} else
|
|
184
180
|
result.data = props.decode(await response.text(), result.headers);
|
|
185
181
|
}
|