@modern-js/plugin-data-loader 2.15.0 → 2.16.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.
- package/CHANGELOG.md +13 -0
- package/dist/cjs/cli/createRequest.js +31 -47
- package/dist/cjs/cli/data.js +17 -34
- package/dist/cjs/cli/generateClient.js +15 -41
- package/dist/cjs/cli/loader.js +11 -27
- package/dist/cjs/common/constants.js +13 -27
- package/dist/cjs/common/utils.js +7 -25
- package/dist/cjs/runtime/index.js +45 -60
- package/dist/cjs/runtime/response.js +24 -58
- package/dist/cjs/server/index.js +62 -50
- package/dist/esm/cli/createRequest.js +212 -205
- package/dist/esm/cli/data.js +769 -741
- package/dist/esm/cli/generateClient.js +40 -41
- package/dist/esm/cli/loader.js +219 -201
- package/dist/esm/common/constants.js +3 -4
- package/dist/esm/common/utils.js +17 -18
- package/dist/esm/runtime/index.js +400 -381
- package/dist/esm/runtime/response.js +276 -258
- package/dist/esm/server/index.js +177 -170
- package/dist/esm-node/cli/createRequest.js +11 -22
- package/dist/esm-node/cli/data.js +11 -16
- package/dist/esm-node/cli/generateClient.js +1 -7
- package/dist/esm-node/cli/loader.js +3 -6
- package/dist/esm-node/common/constants.js +3 -8
- package/dist/esm-node/common/utils.js +1 -4
- package/dist/esm-node/runtime/index.js +14 -28
- package/dist/esm-node/runtime/response.js +15 -34
- package/dist/esm-node/server/index.js +4 -17
- package/package.json +12 -8
|
@@ -1,33 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var response_exports = {};
|
|
19
|
-
__export(response_exports, {
|
|
20
|
-
createDeferredReadableStream: () => createDeferredReadableStream
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "createDeferredReadableStream", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: () => createDeferredReadableStream
|
|
21
8
|
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
var import_serialize = require("@modern-js/utils/universal/serialize");
|
|
9
|
+
const _util = require("util");
|
|
10
|
+
const _serialize = require("@modern-js/utils/universal/serialize");
|
|
25
11
|
function isTrackedPromise(value) {
|
|
26
12
|
return value != null && typeof value.then === "function" && value._tracked === true;
|
|
27
13
|
}
|
|
28
14
|
const DEFERRED_VALUE_PLACEHOLDER_PREFIX = "__deferred_promise:";
|
|
29
15
|
function createDeferredReadableStream(deferredData, signal) {
|
|
30
|
-
const encoder = new
|
|
16
|
+
const encoder = new _util.TextEncoder();
|
|
31
17
|
const stream = new ReadableStream({
|
|
32
18
|
async start(controller) {
|
|
33
19
|
const criticalData = {};
|
|
@@ -46,21 +32,11 @@ function createDeferredReadableStream(deferredData, signal) {
|
|
|
46
32
|
|
|
47
33
|
`));
|
|
48
34
|
for (const preresolvedKey of preresolvedKeys) {
|
|
49
|
-
enqueueTrackedPromise(
|
|
50
|
-
controller,
|
|
51
|
-
encoder,
|
|
52
|
-
preresolvedKey,
|
|
53
|
-
deferredData.data[preresolvedKey]
|
|
54
|
-
);
|
|
35
|
+
enqueueTrackedPromise(controller, encoder, preresolvedKey, deferredData.data[preresolvedKey]);
|
|
55
36
|
}
|
|
56
37
|
const unsubscribe = deferredData.subscribe((aborted, settledKey) => {
|
|
57
38
|
if (settledKey) {
|
|
58
|
-
enqueueTrackedPromise(
|
|
59
|
-
controller,
|
|
60
|
-
encoder,
|
|
61
|
-
settledKey,
|
|
62
|
-
deferredData.data[settledKey]
|
|
63
|
-
);
|
|
39
|
+
enqueueTrackedPromise(controller, encoder, settledKey, deferredData.data[settledKey]);
|
|
64
40
|
}
|
|
65
41
|
});
|
|
66
42
|
await deferredData.resolveData(signal);
|
|
@@ -71,32 +47,22 @@ function createDeferredReadableStream(deferredData, signal) {
|
|
|
71
47
|
return stream;
|
|
72
48
|
}
|
|
73
49
|
function enqueueTrackedPromise(controller, encoder, settledKey, promise) {
|
|
74
|
-
var _a;
|
|
75
50
|
if ("_error" in promise) {
|
|
76
51
|
const { _error } = promise;
|
|
77
|
-
controller.enqueue(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
})}
|
|
52
|
+
controller.enqueue(encoder.encode(`error:${(0, _serialize.serializeJson)({
|
|
53
|
+
[settledKey]: {
|
|
54
|
+
message: _error.message,
|
|
55
|
+
stack: _error.stack
|
|
56
|
+
}
|
|
57
|
+
})}
|
|
85
58
|
|
|
86
|
-
`
|
|
87
|
-
)
|
|
88
|
-
);
|
|
59
|
+
`));
|
|
89
60
|
} else {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
61
|
+
var _promise__data;
|
|
62
|
+
controller.enqueue(encoder.encode(`data:${JSON.stringify({
|
|
63
|
+
[settledKey]: (_promise__data = promise._data) !== null && _promise__data !== void 0 ? _promise__data : null
|
|
64
|
+
})}
|
|
93
65
|
|
|
94
|
-
`
|
|
95
|
-
)
|
|
96
|
-
);
|
|
66
|
+
`));
|
|
97
67
|
}
|
|
98
68
|
}
|
|
99
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
100
|
-
0 && (module.exports = {
|
|
101
|
-
createDeferredReadableStream
|
|
102
|
-
});
|
package/dist/cjs/server/index.js
CHANGED
|
@@ -1,60 +1,74 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var server_exports = {};
|
|
29
|
-
__export(server_exports, {
|
|
30
|
-
default: () => server_default
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: () => _default
|
|
31
8
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
9
|
+
const _path = /* @__PURE__ */ _interop_require_default(require("path"));
|
|
10
|
+
const _fs = /* @__PURE__ */ _interop_require_default(require("fs"));
|
|
11
|
+
const _constants = require("@modern-js/utils/constants");
|
|
12
|
+
const _utils = require("../common/utils");
|
|
13
|
+
function _interop_require_default(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
19
|
+
if (typeof WeakMap !== "function")
|
|
20
|
+
return null;
|
|
21
|
+
var cacheBabelInterop = /* @__PURE__ */ new WeakMap();
|
|
22
|
+
var cacheNodeInterop = /* @__PURE__ */ new WeakMap();
|
|
23
|
+
return (_getRequireWildcardCache = function(nodeInterop2) {
|
|
24
|
+
return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop;
|
|
25
|
+
})(nodeInterop);
|
|
26
|
+
}
|
|
27
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
28
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
29
|
+
return obj;
|
|
30
|
+
}
|
|
31
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
32
|
+
return {
|
|
33
|
+
default: obj
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
37
|
+
if (cache && cache.has(obj)) {
|
|
38
|
+
return cache.get(obj);
|
|
39
|
+
}
|
|
40
|
+
var newObj = {};
|
|
41
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
42
|
+
for (var key in obj) {
|
|
43
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
44
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
45
|
+
if (desc && (desc.get || desc.set)) {
|
|
46
|
+
Object.defineProperty(newObj, key, desc);
|
|
47
|
+
} else {
|
|
48
|
+
newObj[key] = obj[key];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
newObj.default = obj;
|
|
53
|
+
if (cache) {
|
|
54
|
+
cache.set(obj, newObj);
|
|
55
|
+
}
|
|
56
|
+
return newObj;
|
|
57
|
+
}
|
|
58
|
+
const _default = () => ({
|
|
38
59
|
name: "@modern-js/plugin-data-loader",
|
|
39
60
|
setup: () => ({
|
|
40
|
-
prepareLoaderHandler({
|
|
41
|
-
serverRoutes,
|
|
42
|
-
distDir
|
|
43
|
-
}) {
|
|
61
|
+
prepareLoaderHandler({ serverRoutes, distDir }) {
|
|
44
62
|
return async (context) => {
|
|
45
|
-
const entry = (0,
|
|
63
|
+
const entry = (0, _utils.matchEntry)(context.path, serverRoutes);
|
|
46
64
|
if (!entry) {
|
|
47
65
|
return;
|
|
48
66
|
}
|
|
49
|
-
const routesPath =
|
|
50
|
-
|
|
51
|
-
import_constants.SERVER_BUNDLE_DIRECTORY,
|
|
52
|
-
`${entry.entryName || import_constants.MAIN_ENTRY_NAME}-server-loaders.js`
|
|
53
|
-
);
|
|
54
|
-
if (!import_fs.default.existsSync(routesPath)) {
|
|
67
|
+
const routesPath = _path.default.join(distDir, _constants.SERVER_BUNDLE_DIRECTORY, `${entry.entryName || _constants.MAIN_ENTRY_NAME}-server-loaders.js`);
|
|
68
|
+
if (!_fs.default.existsSync(routesPath)) {
|
|
55
69
|
return;
|
|
56
70
|
}
|
|
57
|
-
const { routes, handleRequest } = await Promise.resolve().then(() =>
|
|
71
|
+
const { routes, handleRequest } = await Promise.resolve(routesPath).then((p) => /* @__PURE__ */ _interop_require_wildcard(require(p)));
|
|
58
72
|
if (!routes) {
|
|
59
73
|
return;
|
|
60
74
|
}
|
|
@@ -67,5 +81,3 @@ var server_default = () => ({
|
|
|
67
81
|
}
|
|
68
82
|
})
|
|
69
83
|
});
|
|
70
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
71
|
-
0 && (module.exports = {});
|
|
@@ -1,225 +1,232 @@
|
|
|
1
1
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
try {
|
|
3
|
+
var info = gen[key](arg);
|
|
4
|
+
var value = info.value;
|
|
5
|
+
} catch (error) {
|
|
6
|
+
reject(error);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (info.done) {
|
|
10
|
+
resolve(value);
|
|
11
|
+
} else {
|
|
12
|
+
Promise.resolve(value).then(_next, _throw);
|
|
13
|
+
}
|
|
14
14
|
}
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
15
|
+
function _async_to_generator(fn) {
|
|
16
|
+
return function() {
|
|
17
|
+
var self = this, args = arguments;
|
|
18
|
+
return new Promise(function(resolve, reject) {
|
|
19
|
+
var gen = fn.apply(self, args);
|
|
20
|
+
function _next(value) {
|
|
21
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
22
|
+
}
|
|
23
|
+
function _throw(err) {
|
|
24
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
+
}
|
|
26
|
+
_next(void 0);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
29
|
}
|
|
30
|
-
var __generator =
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
var __generator = function(thisArg, body) {
|
|
31
|
+
var f, y, t, g, _ = {
|
|
32
|
+
label: 0,
|
|
33
|
+
sent: function() {
|
|
34
|
+
if (t[0] & 1)
|
|
35
|
+
throw t[1];
|
|
36
|
+
return t[1];
|
|
37
|
+
},
|
|
38
|
+
trys: [],
|
|
39
|
+
ops: []
|
|
40
|
+
};
|
|
41
|
+
return g = {
|
|
42
|
+
next: verb(0),
|
|
43
|
+
"throw": verb(1),
|
|
44
|
+
"return": verb(2)
|
|
45
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
46
|
+
return this;
|
|
47
|
+
}), g;
|
|
48
|
+
function verb(n) {
|
|
49
|
+
return function(v) {
|
|
50
|
+
return step([
|
|
51
|
+
n,
|
|
52
|
+
v
|
|
53
|
+
]);
|
|
39
54
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
break;
|
|
68
|
-
case 4:
|
|
69
|
-
_.label++;
|
|
70
|
-
return {
|
|
71
|
-
value: op[1],
|
|
72
|
-
done: false
|
|
73
|
-
};
|
|
74
|
-
case 5:
|
|
75
|
-
_.label++;
|
|
76
|
-
y = op[1];
|
|
77
|
-
op = [
|
|
78
|
-
0
|
|
79
|
-
];
|
|
80
|
-
continue;
|
|
81
|
-
case 7:
|
|
82
|
-
op = _.ops.pop();
|
|
83
|
-
_.trys.pop();
|
|
84
|
-
continue;
|
|
85
|
-
default:
|
|
86
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
87
|
-
_ = 0;
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
91
|
-
_.label = op[1];
|
|
92
|
-
break;
|
|
93
|
-
}
|
|
94
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
95
|
-
_.label = t[1];
|
|
96
|
-
t = op;
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
if (t && _.label < t[2]) {
|
|
100
|
-
_.label = t[2];
|
|
101
|
-
_.ops.push(op);
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
if (t[2]) _.ops.pop();
|
|
105
|
-
_.trys.pop();
|
|
106
|
-
continue;
|
|
107
|
-
}
|
|
108
|
-
op = body.call(thisArg, _);
|
|
109
|
-
} catch (e) {
|
|
55
|
+
}
|
|
56
|
+
function step(op) {
|
|
57
|
+
if (f)
|
|
58
|
+
throw new TypeError("Generator is already executing.");
|
|
59
|
+
while (_)
|
|
60
|
+
try {
|
|
61
|
+
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)
|
|
62
|
+
return t;
|
|
63
|
+
if (y = 0, t)
|
|
64
|
+
op = [
|
|
65
|
+
op[0] & 2,
|
|
66
|
+
t.value
|
|
67
|
+
];
|
|
68
|
+
switch (op[0]) {
|
|
69
|
+
case 0:
|
|
70
|
+
case 1:
|
|
71
|
+
t = op;
|
|
72
|
+
break;
|
|
73
|
+
case 4:
|
|
74
|
+
_.label++;
|
|
75
|
+
return {
|
|
76
|
+
value: op[1],
|
|
77
|
+
done: false
|
|
78
|
+
};
|
|
79
|
+
case 5:
|
|
80
|
+
_.label++;
|
|
81
|
+
y = op[1];
|
|
110
82
|
op = [
|
|
111
|
-
|
|
112
|
-
e
|
|
83
|
+
0
|
|
113
84
|
];
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
85
|
+
continue;
|
|
86
|
+
case 7:
|
|
87
|
+
op = _.ops.pop();
|
|
88
|
+
_.trys.pop();
|
|
89
|
+
continue;
|
|
90
|
+
default:
|
|
91
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
92
|
+
_ = 0;
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
96
|
+
_.label = op[1];
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
100
|
+
_.label = t[1];
|
|
101
|
+
t = op;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
if (t && _.label < t[2]) {
|
|
105
|
+
_.label = t[2];
|
|
106
|
+
_.ops.push(op);
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
if (t[2])
|
|
110
|
+
_.ops.pop();
|
|
111
|
+
_.trys.pop();
|
|
112
|
+
continue;
|
|
117
113
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
114
|
+
op = body.call(thisArg, _);
|
|
115
|
+
} catch (e) {
|
|
116
|
+
op = [
|
|
117
|
+
6,
|
|
118
|
+
e
|
|
119
|
+
];
|
|
120
|
+
y = 0;
|
|
121
|
+
} finally {
|
|
122
|
+
f = t = 0;
|
|
123
|
+
}
|
|
124
|
+
if (op[0] & 5)
|
|
125
|
+
throw op[1];
|
|
126
|
+
return {
|
|
127
|
+
value: op[0] ? op[1] : void 0,
|
|
128
|
+
done: true
|
|
129
|
+
};
|
|
130
|
+
}
|
|
124
131
|
};
|
|
125
132
|
import { compile } from "path-to-regexp";
|
|
126
133
|
import { redirect } from "react-router-dom";
|
|
127
134
|
import { LOADER_ID_PARAM, DIRECT_PARAM, CONTENT_TYPE_DEFERRED } from "../common/constants";
|
|
128
135
|
import { parseDeferredReadableStream } from "./data";
|
|
129
|
-
var getRequestUrl = function(param) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
136
|
+
export var getRequestUrl = function(param) {
|
|
137
|
+
var params = param.params, request = param.request, routeId = param.routeId;
|
|
138
|
+
var url = new URL(request.url);
|
|
139
|
+
var toPath = compile(url.pathname, {
|
|
140
|
+
encode: encodeURIComponent
|
|
141
|
+
});
|
|
142
|
+
var newPathName = toPath(params);
|
|
143
|
+
url.pathname = newPathName;
|
|
144
|
+
url.searchParams.append(LOADER_ID_PARAM, routeId);
|
|
145
|
+
url.searchParams.append(DIRECT_PARAM, "true");
|
|
146
|
+
return url;
|
|
140
147
|
};
|
|
141
148
|
var handleRedirectResponse = function(res) {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
149
|
+
var headers = res.headers;
|
|
150
|
+
var location = headers.get("X-Modernjs-Redirect");
|
|
151
|
+
if (location) {
|
|
152
|
+
throw redirect(location);
|
|
153
|
+
}
|
|
154
|
+
return res;
|
|
148
155
|
};
|
|
149
156
|
var handleDeferredResponse = function() {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
157
|
+
var _ref = _async_to_generator(function(res) {
|
|
158
|
+
var _res_headers_get;
|
|
159
|
+
return __generator(this, function(_state) {
|
|
160
|
+
switch (_state.label) {
|
|
161
|
+
case 0:
|
|
162
|
+
if (!(((_res_headers_get = res.headers.get("Content-Type")) === null || _res_headers_get === void 0 ? void 0 : _res_headers_get.match(CONTENT_TYPE_DEFERRED)) && res.body))
|
|
163
|
+
return [
|
|
164
|
+
3,
|
|
165
|
+
2
|
|
166
|
+
];
|
|
167
|
+
return [
|
|
168
|
+
4,
|
|
169
|
+
parseDeferredReadableStream(res.body)
|
|
170
|
+
];
|
|
171
|
+
case 1:
|
|
172
|
+
return [
|
|
173
|
+
2,
|
|
174
|
+
_state.sent()
|
|
175
|
+
];
|
|
176
|
+
case 2:
|
|
177
|
+
return [
|
|
178
|
+
2,
|
|
179
|
+
res
|
|
180
|
+
];
|
|
181
|
+
}
|
|
175
182
|
});
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
183
|
+
});
|
|
184
|
+
return function handleDeferredResponse2(res) {
|
|
185
|
+
return _ref.apply(this, arguments);
|
|
186
|
+
};
|
|
179
187
|
}();
|
|
180
|
-
var createRequest = function(routeId) {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
});
|
|
194
|
-
return [
|
|
195
|
-
4,
|
|
196
|
-
fetch(url, {
|
|
197
|
-
method: method,
|
|
198
|
-
signal: request.signal
|
|
199
|
-
})
|
|
200
|
-
];
|
|
201
|
-
case 1:
|
|
202
|
-
res = _state.sent();
|
|
203
|
-
if (!res.ok) {
|
|
204
|
-
throw res;
|
|
205
|
-
}
|
|
206
|
-
res = handleRedirectResponse(res);
|
|
207
|
-
return [
|
|
208
|
-
4,
|
|
209
|
-
handleDeferredResponse(res)
|
|
210
|
-
];
|
|
211
|
-
case 2:
|
|
212
|
-
res = _state.sent();
|
|
213
|
-
return [
|
|
214
|
-
2,
|
|
215
|
-
res
|
|
216
|
-
];
|
|
217
|
-
}
|
|
188
|
+
export var createRequest = function(routeId) {
|
|
189
|
+
var method = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "get";
|
|
190
|
+
return function() {
|
|
191
|
+
var _ref = _async_to_generator(function(param) {
|
|
192
|
+
var params, request, url, res;
|
|
193
|
+
return __generator(this, function(_state) {
|
|
194
|
+
switch (_state.label) {
|
|
195
|
+
case 0:
|
|
196
|
+
params = param.params, request = param.request;
|
|
197
|
+
url = getRequestUrl({
|
|
198
|
+
params,
|
|
199
|
+
request,
|
|
200
|
+
routeId
|
|
218
201
|
});
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
202
|
+
return [
|
|
203
|
+
4,
|
|
204
|
+
fetch(url, {
|
|
205
|
+
method,
|
|
206
|
+
signal: request.signal
|
|
207
|
+
})
|
|
208
|
+
];
|
|
209
|
+
case 1:
|
|
210
|
+
res = _state.sent();
|
|
211
|
+
if (!res.ok) {
|
|
212
|
+
throw res;
|
|
213
|
+
}
|
|
214
|
+
res = handleRedirectResponse(res);
|
|
215
|
+
return [
|
|
216
|
+
4,
|
|
217
|
+
handleDeferredResponse(res)
|
|
218
|
+
];
|
|
219
|
+
case 2:
|
|
220
|
+
res = _state.sent();
|
|
221
|
+
return [
|
|
222
|
+
2,
|
|
223
|
+
res
|
|
224
|
+
];
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
return function(_) {
|
|
229
|
+
return _ref.apply(this, arguments);
|
|
230
|
+
};
|
|
231
|
+
}();
|
|
224
232
|
};
|
|
225
|
-
export { createRequest, getRequestUrl };
|