@nestia/fetcher 10.0.2 → 11.0.0-dev.20260312
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/LICENSE +21 -0
- package/README.md +93 -93
- package/lib/AesPkcs5.js +5 -5
- package/lib/AesPkcs5.js.map +1 -1
- package/lib/EncryptedFetcher.js +54 -95
- package/lib/EncryptedFetcher.js.map +1 -1
- package/lib/HttpError.d.ts +1 -1
- package/lib/HttpError.js +2 -2
- package/lib/HttpError.js.map +1 -1
- package/lib/NestiaSimulator.js +29 -47
- package/lib/NestiaSimulator.js.map +1 -1
- package/lib/PlainFetcher.js +17 -48
- package/lib/PlainFetcher.js.map +1 -1
- package/lib/index.d.ts +4 -0
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/lib/internal/FetcherBase.js +141 -304
- package/lib/internal/FetcherBase.js.map +1 -1
- package/package.json +20 -13
- package/src/AesPkcs5.ts +41 -49
- package/src/HttpError.ts +1 -1
- package/src/index.ts +12 -7
- package/lib/MigrateFetcher.d.ts +0 -19
- package/lib/MigrateFetcher.js +0 -179
- package/lib/MigrateFetcher.js.map +0 -1
- package/src/MigrateFetcher.ts +0 -118
package/lib/PlainFetcher.js
CHANGED
|
@@ -8,36 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
12
|
exports.PlainFetcher = void 0;
|
|
40
|
-
|
|
13
|
+
const FetcherBase_1 = require("./internal/FetcherBase");
|
|
41
14
|
/**
|
|
42
15
|
* Utility class for `fetch` functions used in `@nestia/sdk`.
|
|
43
16
|
*
|
|
@@ -56,32 +29,28 @@ var FetcherBase_1 = require("./internal/FetcherBase");
|
|
|
56
29
|
var PlainFetcher;
|
|
57
30
|
(function (PlainFetcher) {
|
|
58
31
|
function fetch(connection, route, input, stringify) {
|
|
59
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
33
|
var _a, _b;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
})(connection, route, input, stringify)];
|
|
69
|
-
});
|
|
34
|
+
if (((_a = route.request) === null || _a === void 0 ? void 0 : _a.encrypted) === true || ((_b = route.response) === null || _b === void 0 ? void 0 : _b.encrypted) === true)
|
|
35
|
+
throw new Error("Error on PlainFetcher.fetch(): PlainFetcher doesn't have encryption ability. Use EncryptedFetcher instead.");
|
|
36
|
+
return FetcherBase_1.FetcherBase.request({
|
|
37
|
+
className: "PlainFetcher",
|
|
38
|
+
encode: (input) => input,
|
|
39
|
+
decode: (input) => input,
|
|
40
|
+
})(connection, route, input, stringify);
|
|
70
41
|
});
|
|
71
42
|
}
|
|
72
43
|
PlainFetcher.fetch = fetch;
|
|
73
44
|
function propagate(connection, route, input, stringify) {
|
|
74
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
75
46
|
var _a, _b;
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
})(connection, route, input, stringify)];
|
|
84
|
-
});
|
|
47
|
+
if (((_a = route.request) === null || _a === void 0 ? void 0 : _a.encrypted) === true || ((_b = route.response) === null || _b === void 0 ? void 0 : _b.encrypted) === true)
|
|
48
|
+
throw new Error("Error on PlainFetcher.propagate(): PlainFetcher doesn't have encryption ability. Use EncryptedFetcher instead.");
|
|
49
|
+
return FetcherBase_1.FetcherBase.propagate({
|
|
50
|
+
className: "PlainFetcher",
|
|
51
|
+
encode: (input) => input,
|
|
52
|
+
decode: (input) => input,
|
|
53
|
+
})(connection, route, input, stringify);
|
|
85
54
|
});
|
|
86
55
|
}
|
|
87
56
|
PlainFetcher.propagate = propagate;
|
package/lib/PlainFetcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlainFetcher.js","sourceRoot":"","sources":["../src/PlainFetcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlainFetcher.js","sourceRoot":"","sources":["../src/PlainFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,wDAAqD;AAErD;;;;;;;;;;;;;;GAcG;AACH,IAAiB,YAAY,CAoF5B;AApFD,WAAiB,YAAY;IAuC3B,SAAsB,KAAK,CACzB,UAAuB,EACvB,KAAwE,EACxE,KAAa,EACb,SAAoC;;;YAEpC,IAAI,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,MAAK,IAAI,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,MAAK,IAAI;gBACzE,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G,CAAC;YACJ,OAAO,yBAAW,CAAC,OAAO,CAAC;gBACzB,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;gBACxB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;aACzB,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC;KAAA;IAfqB,kBAAK,QAe1B,CAAA;IAcD,SAAsB,SAAS,CAC7B,UAAuB,EACvB,KAAwE,EACxE,KAAa,EACb,SAAoC;;;YAEpC,IAAI,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,MAAK,IAAI,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,MAAK,IAAI;gBACzE,MAAM,IAAI,KAAK,CACb,gHAAgH,CACjH,CAAC;YACJ,OAAO,yBAAW,CAAC,SAAS,CAAC;gBAC3B,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;gBACxB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;aACzB,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAoB,CAAC;QAC7D,CAAC;KAAA;IAfqB,sBAAS,YAe9B,CAAA;AACH,CAAC,EApFgB,YAAY,4BAAZ,YAAY,QAoF5B"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from "./AesPkcs5";
|
|
2
|
+
export * from "./EncryptedFetcher";
|
|
1
3
|
export * from "./FormDataInput";
|
|
2
4
|
export * from "./HttpError";
|
|
3
5
|
export * from "./IConnection";
|
|
@@ -5,3 +7,5 @@ export * from "./IEncryptionPassword";
|
|
|
5
7
|
export * from "./IFetchEvent";
|
|
6
8
|
export * from "./IFetchRoute";
|
|
7
9
|
export * from "./IPropagation";
|
|
10
|
+
export * from "./NestiaSimulator";
|
|
11
|
+
export * from "./PlainFetcher";
|
package/lib/index.js
CHANGED
|
@@ -14,6 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./AesPkcs5"), exports);
|
|
18
|
+
__exportStar(require("./EncryptedFetcher"), exports);
|
|
17
19
|
__exportStar(require("./FormDataInput"), exports);
|
|
18
20
|
__exportStar(require("./HttpError"), exports);
|
|
19
21
|
__exportStar(require("./IConnection"), exports);
|
|
@@ -21,4 +23,6 @@ __exportStar(require("./IEncryptionPassword"), exports);
|
|
|
21
23
|
__exportStar(require("./IFetchEvent"), exports);
|
|
22
24
|
__exportStar(require("./IFetchRoute"), exports);
|
|
23
25
|
__exportStar(require("./IPropagation"), exports);
|
|
26
|
+
__exportStar(require("./NestiaSimulator"), exports);
|
|
27
|
+
__exportStar(require("./PlainFetcher"), exports);
|
|
24
28
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,8CAA4B;AAC5B,gDAA8B;AAC9B,wDAAsC;AACtC,gDAA8B;AAC9B,gDAA8B;AAC9B,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,qDAAmC;AACnC,kDAAgC;AAChC,8CAA4B;AAC5B,gDAA8B;AAC9B,wDAAsC;AACtC,gDAA8B;AAC9B,gDAA8B;AAC9B,iDAA+B;AAE/B,oDAAkC;AAClC,iDAA+B"}
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -19,326 +8,174 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
9
|
});
|
|
21
10
|
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
24
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
var __values = (this && this.__values) || function(o) {
|
|
50
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
51
|
-
if (m) return m.call(o);
|
|
52
|
-
if (o && typeof o.length === "number") return {
|
|
53
|
-
next: function () {
|
|
54
|
-
if (o && i >= o.length) o = void 0;
|
|
55
|
-
return { value: o && o[i++], done: !o };
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
59
|
-
};
|
|
60
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
61
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
62
|
-
if (!m) return o;
|
|
63
|
-
var i = m.call(o), r, ar = [], e;
|
|
64
|
-
try {
|
|
65
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
66
|
-
}
|
|
67
|
-
catch (error) { e = { error: error }; }
|
|
68
|
-
finally {
|
|
69
|
-
try {
|
|
70
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
71
|
-
}
|
|
72
|
-
finally { if (e) throw e.error; }
|
|
73
|
-
}
|
|
74
|
-
return ar;
|
|
75
|
-
};
|
|
76
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
77
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
78
|
-
if (ar || !(i in from)) {
|
|
79
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
80
|
-
ar[i] = from[i];
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
84
|
-
};
|
|
85
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
86
12
|
exports.FetcherBase = void 0;
|
|
87
|
-
|
|
13
|
+
const HttpError_1 = require("../HttpError");
|
|
88
14
|
/** @internal */
|
|
89
15
|
var FetcherBase;
|
|
90
16
|
(function (FetcherBase) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
case 1:
|
|
99
|
-
result = _a.sent();
|
|
100
|
-
if (result.success === false)
|
|
101
|
-
throw new HttpError_1.HttpError(route.method, route.path, result.status, result.headers, result.data);
|
|
102
|
-
return [2 /*return*/, result.data];
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}); };
|
|
106
|
-
};
|
|
107
|
-
FetcherBase.propagate = function (props) {
|
|
108
|
-
return function (connection, route, input, stringify) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
109
|
-
return [2 /*return*/, _Propagate("propagate")(props)(connection, route, input, stringify)];
|
|
110
|
-
}); }); };
|
|
111
|
-
};
|
|
17
|
+
FetcherBase.request = (props) => (connection, route, input, stringify) => __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
const result = yield _Propagate("fetch")(props)(connection, route, input, stringify);
|
|
19
|
+
if (result.success === false)
|
|
20
|
+
throw new HttpError_1.HttpError(route.method, route.path, result.status, result.headers, result.data);
|
|
21
|
+
return result.data;
|
|
22
|
+
});
|
|
23
|
+
FetcherBase.propagate = (props) => (connection, route, input, stringify) => __awaiter(this, void 0, void 0, function* () { return _Propagate("propagate")(props)(connection, route, input, stringify); });
|
|
112
24
|
/** @internal */
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
: ((_l = route.request) === null || _l === void 0 ? void 0 : _l.type) === "multipart/form-data"
|
|
172
|
-
? request_form_data_body(input)
|
|
173
|
-
: ((_m = route.request) === null || _m === void 0 ? void 0 : _m.type) !== "text/plain"
|
|
174
|
-
? (stringify !== null && stringify !== void 0 ? stringify : JSON.stringify)(input)
|
|
175
|
-
: input, headers);
|
|
176
|
-
path = connection.host[connection.host.length - 1] !== "/" &&
|
|
177
|
-
route.path[0] !== "/"
|
|
178
|
-
? "/".concat(route.path)
|
|
179
|
-
: route.path;
|
|
180
|
-
url = new URL("".concat(connection.host).concat(path));
|
|
181
|
-
event = {
|
|
182
|
-
route: route,
|
|
183
|
-
path: path,
|
|
184
|
-
status: null,
|
|
185
|
-
input: input,
|
|
186
|
-
output: undefined,
|
|
187
|
-
started_at: new Date(),
|
|
188
|
-
respond_at: null,
|
|
189
|
-
completed_at: null,
|
|
190
|
-
};
|
|
191
|
-
_r.label = 1;
|
|
192
|
-
case 1:
|
|
193
|
-
_r.trys.push([1, 12, 13, 18]);
|
|
194
|
-
return [4 /*yield*/, ((_o = connection.fetch) !== null && _o !== void 0 ? _o : fetch)(url.href, init)];
|
|
195
|
-
case 2:
|
|
196
|
-
response = _r.sent();
|
|
197
|
-
event.respond_at = new Date();
|
|
198
|
-
event.status = response.status;
|
|
199
|
-
result = {
|
|
200
|
-
success: response.status === 200 ||
|
|
201
|
-
response.status === 201 ||
|
|
202
|
-
response.status === route.status,
|
|
203
|
-
status: response.status,
|
|
204
|
-
headers: response_headers_to_object(response.headers),
|
|
205
|
-
data: undefined,
|
|
206
|
-
};
|
|
207
|
-
if (!(result.success === false)) return [3 /*break*/, 4];
|
|
208
|
-
// WHEN FAILED
|
|
209
|
-
_a = result;
|
|
210
|
-
return [4 /*yield*/, response.text()];
|
|
211
|
-
case 3:
|
|
212
|
-
// WHEN FAILED
|
|
213
|
-
_a.data = _r.sent();
|
|
214
|
-
type = response.headers.get("content-type");
|
|
215
|
-
if (method !== "fetch" &&
|
|
216
|
-
type &&
|
|
217
|
-
type.indexOf("application/json") !== -1)
|
|
218
|
-
try {
|
|
219
|
-
result.data = JSON.parse(result.data);
|
|
220
|
-
}
|
|
221
|
-
catch (_s) { }
|
|
222
|
-
return [3 /*break*/, 11];
|
|
223
|
-
case 4:
|
|
224
|
-
if (!(route.method === "HEAD")) return [3 /*break*/, 5];
|
|
225
|
-
result.data = undefined;
|
|
226
|
-
return [3 /*break*/, 11];
|
|
227
|
-
case 5:
|
|
228
|
-
if (!(((_p = route.response) === null || _p === void 0 ? void 0 : _p.type) === "application/json")) return [3 /*break*/, 7];
|
|
229
|
-
return [4 /*yield*/, response.text()];
|
|
230
|
-
case 6:
|
|
231
|
-
text = _r.sent();
|
|
232
|
-
result.data = text.length ? JSON.parse(text) : undefined;
|
|
233
|
-
return [3 /*break*/, 11];
|
|
234
|
-
case 7:
|
|
235
|
-
if (!(((_q = route.response) === null || _q === void 0 ? void 0 : _q.type) === "application/x-www-form-urlencoded")) return [3 /*break*/, 9];
|
|
236
|
-
_b = URLSearchParams.bind;
|
|
237
|
-
return [4 /*yield*/, response.text()];
|
|
238
|
-
case 8:
|
|
239
|
-
query = new (_b.apply(URLSearchParams, [void 0, _r.sent()]))();
|
|
240
|
-
result.data = route.parseQuery ? route.parseQuery(query) : query;
|
|
241
|
-
return [3 /*break*/, 11];
|
|
242
|
-
case 9:
|
|
243
|
-
_c = result;
|
|
244
|
-
_e = (_d = props).decode;
|
|
245
|
-
return [4 /*yield*/, response.text()];
|
|
246
|
-
case 10:
|
|
247
|
-
_c.data = _e.apply(_d, [_r.sent(), result.headers]);
|
|
248
|
-
_r.label = 11;
|
|
249
|
-
case 11:
|
|
250
|
-
event.output = result.data;
|
|
251
|
-
return [2 /*return*/, result];
|
|
252
|
-
case 12:
|
|
253
|
-
exp_1 = _r.sent();
|
|
254
|
-
throw exp_1;
|
|
255
|
-
case 13:
|
|
256
|
-
event.completed_at = new Date();
|
|
257
|
-
if (!connection.logger) return [3 /*break*/, 17];
|
|
258
|
-
_r.label = 14;
|
|
259
|
-
case 14:
|
|
260
|
-
_r.trys.push([14, 16, , 17]);
|
|
261
|
-
return [4 /*yield*/, connection.logger(event)];
|
|
262
|
-
case 15:
|
|
263
|
-
_r.sent();
|
|
264
|
-
return [3 /*break*/, 17];
|
|
265
|
-
case 16:
|
|
266
|
-
_f = _r.sent();
|
|
267
|
-
return [3 /*break*/, 17];
|
|
268
|
-
case 17: return [7 /*endfinally*/];
|
|
269
|
-
case 18: return [2 /*return*/];
|
|
270
|
-
}
|
|
271
|
-
});
|
|
272
|
-
}); };
|
|
25
|
+
const _Propagate = (method) => (props) => (connection, route, input, stringify) => __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
27
|
+
//----
|
|
28
|
+
// REQUEST MESSAGE
|
|
29
|
+
//----
|
|
30
|
+
// METHOD & HEADERS
|
|
31
|
+
const headers = Object.assign({}, ((_a = connection.headers) !== null && _a !== void 0 ? _a : {}));
|
|
32
|
+
if (input !== undefined) {
|
|
33
|
+
if (((_b = route.request) === null || _b === void 0 ? void 0 : _b.type) === undefined)
|
|
34
|
+
throw new Error(`Error on ${props.className}.fetch(): no content-type being configured.`);
|
|
35
|
+
else if (route.request.type !== "multipart/form-data")
|
|
36
|
+
headers["Content-Type"] = route.request.type;
|
|
37
|
+
}
|
|
38
|
+
else if (input === undefined && headers["Content-Type"] !== undefined)
|
|
39
|
+
delete headers["Content-Type"];
|
|
40
|
+
// INIT REQUEST DATA
|
|
41
|
+
const init = Object.assign(Object.assign({}, ((_c = connection.options) !== null && _c !== void 0 ? _c : {})), { method: route.method, headers: (() => {
|
|
42
|
+
const output = [];
|
|
43
|
+
for (const [key, value] of Object.entries(headers))
|
|
44
|
+
if (value === undefined)
|
|
45
|
+
continue;
|
|
46
|
+
else if (Array.isArray(value))
|
|
47
|
+
for (const v of value)
|
|
48
|
+
output.push([key, String(v)]);
|
|
49
|
+
else
|
|
50
|
+
output.push([key, String(value)]);
|
|
51
|
+
return output;
|
|
52
|
+
})() });
|
|
53
|
+
// CONSTRUCT BODY DATA
|
|
54
|
+
if (input !== undefined)
|
|
55
|
+
init.body = props.encode(
|
|
56
|
+
// BODY TRANSFORM
|
|
57
|
+
((_d = route.request) === null || _d === void 0 ? void 0 : _d.type) === "application/x-www-form-urlencoded"
|
|
58
|
+
? request_query_body(input)
|
|
59
|
+
: ((_e = route.request) === null || _e === void 0 ? void 0 : _e.type) === "multipart/form-data"
|
|
60
|
+
? request_form_data_body(input)
|
|
61
|
+
: ((_f = route.request) === null || _f === void 0 ? void 0 : _f.type) !== "text/plain"
|
|
62
|
+
? (stringify !== null && stringify !== void 0 ? stringify : JSON.stringify)(input)
|
|
63
|
+
: input, headers);
|
|
64
|
+
//----
|
|
65
|
+
// RESPONSE MESSAGE
|
|
66
|
+
//----
|
|
67
|
+
// URL SPECIFICATION
|
|
68
|
+
const path = connection.host[connection.host.length - 1] !== "/" &&
|
|
69
|
+
route.path[0] !== "/"
|
|
70
|
+
? `/${route.path}`
|
|
71
|
+
: route.path;
|
|
72
|
+
const url = new URL(`${connection.host}${path}`);
|
|
73
|
+
// DO FETCH
|
|
74
|
+
const event = {
|
|
75
|
+
route,
|
|
76
|
+
path,
|
|
77
|
+
status: null,
|
|
78
|
+
input,
|
|
79
|
+
output: undefined,
|
|
80
|
+
started_at: new Date(),
|
|
81
|
+
respond_at: null,
|
|
82
|
+
completed_at: null,
|
|
273
83
|
};
|
|
274
|
-
|
|
84
|
+
try {
|
|
85
|
+
// TRY FETCH
|
|
86
|
+
const response = yield ((_g = connection.fetch) !== null && _g !== void 0 ? _g : fetch)(url.href, init);
|
|
87
|
+
event.respond_at = new Date();
|
|
88
|
+
event.status = response.status;
|
|
89
|
+
// CONSTRUCT RESULT DATA
|
|
90
|
+
const result = {
|
|
91
|
+
success: response.status === 200 ||
|
|
92
|
+
response.status === 201 ||
|
|
93
|
+
response.status === route.status,
|
|
94
|
+
status: response.status,
|
|
95
|
+
headers: response_headers_to_object(response.headers),
|
|
96
|
+
data: undefined,
|
|
97
|
+
};
|
|
98
|
+
if (result.success === false) {
|
|
99
|
+
// WHEN FAILED
|
|
100
|
+
result.data = yield response.text();
|
|
101
|
+
const type = response.headers.get("content-type");
|
|
102
|
+
if (method !== "fetch" &&
|
|
103
|
+
type &&
|
|
104
|
+
type.indexOf("application/json") !== -1)
|
|
105
|
+
try {
|
|
106
|
+
result.data = JSON.parse(result.data);
|
|
107
|
+
}
|
|
108
|
+
catch (_k) { }
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
// WHEN SUCCESS
|
|
112
|
+
if (route.method === "HEAD")
|
|
113
|
+
result.data = undefined;
|
|
114
|
+
else if (((_h = route.response) === null || _h === void 0 ? void 0 : _h.type) === "application/json") {
|
|
115
|
+
const text = yield response.text();
|
|
116
|
+
result.data = text.length ? JSON.parse(text) : undefined;
|
|
117
|
+
}
|
|
118
|
+
else if (((_j = route.response) === null || _j === void 0 ? void 0 : _j.type) === "application/x-www-form-urlencoded") {
|
|
119
|
+
const query = new URLSearchParams(yield response.text());
|
|
120
|
+
result.data = route.parseQuery ? route.parseQuery(query) : query;
|
|
121
|
+
}
|
|
122
|
+
else
|
|
123
|
+
result.data = props.decode(yield response.text(), result.headers);
|
|
124
|
+
}
|
|
125
|
+
event.output = result.data;
|
|
126
|
+
return result;
|
|
127
|
+
}
|
|
128
|
+
catch (exp) {
|
|
129
|
+
throw exp;
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
event.completed_at = new Date();
|
|
133
|
+
if (connection.logger)
|
|
134
|
+
try {
|
|
135
|
+
yield connection.logger(event);
|
|
136
|
+
}
|
|
137
|
+
catch (_l) { }
|
|
138
|
+
}
|
|
139
|
+
});
|
|
275
140
|
})(FetcherBase || (exports.FetcherBase = FetcherBase = {}));
|
|
276
141
|
/** @internal */
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
var _loop_1 = function (key, value) {
|
|
142
|
+
const request_query_body = (input) => {
|
|
143
|
+
const q = new URLSearchParams();
|
|
144
|
+
for (const [key, value] of Object.entries(input))
|
|
281
145
|
if (value === undefined)
|
|
282
|
-
|
|
146
|
+
continue;
|
|
283
147
|
else if (Array.isArray(value))
|
|
284
|
-
value.forEach(
|
|
148
|
+
value.forEach((elem) => q.append(key, String(elem)));
|
|
285
149
|
else
|
|
286
150
|
q.set(key, String(value));
|
|
287
|
-
};
|
|
288
|
-
try {
|
|
289
|
-
for (var _b = __values(Object.entries(input)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
290
|
-
var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
|
|
291
|
-
_loop_1(key, value);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
295
|
-
finally {
|
|
296
|
-
try {
|
|
297
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
298
|
-
}
|
|
299
|
-
finally { if (e_3) throw e_3.error; }
|
|
300
|
-
}
|
|
301
151
|
return q;
|
|
302
152
|
};
|
|
303
153
|
/** @internal */
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
var append = function (key) { return function (value) {
|
|
154
|
+
const request_form_data_body = (input) => {
|
|
155
|
+
const encoded = new FormData();
|
|
156
|
+
const append = (key) => (value) => {
|
|
308
157
|
if (value === undefined)
|
|
309
158
|
return;
|
|
310
159
|
else if (typeof File === "function" && value instanceof File)
|
|
311
160
|
encoded.append(key, value, value.name);
|
|
312
161
|
else
|
|
313
162
|
encoded.append(key, value);
|
|
314
|
-
};
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
else
|
|
321
|
-
append(key)(value);
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
325
|
-
finally {
|
|
326
|
-
try {
|
|
327
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
328
|
-
}
|
|
329
|
-
finally { if (e_4) throw e_4.error; }
|
|
330
|
-
}
|
|
163
|
+
};
|
|
164
|
+
for (const [key, value] of Object.entries(input))
|
|
165
|
+
if (Array.isArray(value))
|
|
166
|
+
value.map(append(key));
|
|
167
|
+
else
|
|
168
|
+
append(key)(value);
|
|
331
169
|
return encoded;
|
|
332
170
|
};
|
|
333
171
|
/** @internal */
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
headers.forEach(
|
|
172
|
+
const response_headers_to_object = (headers) => {
|
|
173
|
+
const output = {};
|
|
174
|
+
headers.forEach((value, key) => {
|
|
337
175
|
var _a;
|
|
338
|
-
var _b;
|
|
339
176
|
if (key === "set-cookie") {
|
|
340
|
-
(
|
|
341
|
-
|
|
177
|
+
(_a = output[key]) !== null && _a !== void 0 ? _a : (output[key] = []);
|
|
178
|
+
output[key].push(...value.split(";").map((str) => str.trim()));
|
|
342
179
|
}
|
|
343
180
|
else
|
|
344
181
|
output[key] = value;
|