@modern-js/plugin-data-loader 2.35.0 → 2.35.2-alpha.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/dist/cjs/cli/createRequest.js +73 -25
- package/dist/cjs/cli/data.js +27 -10
- package/dist/cjs/cli/generateClient.js +49 -30
- package/dist/cjs/cli/loader.js +34 -23
- package/dist/cjs/common/constants.js +27 -18
- package/dist/cjs/runtime/index.js +68 -55
- package/dist/cjs/runtime/response.js +28 -11
- package/dist/cjs/server/index.js +39 -18
- package/dist/esm/cli/createRequest.js +125 -7
- package/dist/esm/cli/data.js +5 -2
- package/dist/esm/cli/generateClient.js +13 -36
- package/dist/esm/cli/loader.js +12 -11
- package/dist/esm/common/constants.js +8 -3
- package/dist/esm/runtime/index.js +29 -19
- package/dist/esm/runtime/response.js +5 -2
- package/dist/esm/server/index.js +8 -5
- package/dist/esm-node/cli/createRequest.js +44 -3
- package/dist/esm-node/cli/data.js +5 -2
- package/dist/esm-node/cli/generateClient.js +16 -20
- package/dist/esm-node/cli/loader.js +12 -11
- package/dist/esm-node/common/constants.js +8 -3
- package/dist/esm-node/runtime/index.js +25 -16
- package/dist/esm-node/runtime/response.js +5 -2
- package/dist/esm-node/server/index.js +5 -2
- package/dist/js/modern/cli/create-request.js +66 -0
- package/dist/js/modern/cli/generate-client.js +42 -0
- package/dist/js/modern/cli/loader.js +40 -0
- package/dist/js/modern/common/constants.js +6 -0
- package/dist/js/modern/server/index.js +237 -0
- package/dist/js/node/cli/create-request.js +90 -0
- package/dist/js/node/cli/generate-client.js +71 -0
- package/dist/js/node/cli/loader.js +61 -0
- package/dist/js/node/common/constants.js +30 -0
- package/dist/js/node/server/index.js +261 -0
- package/dist/js/treeshaking/cli/create-request.js +186 -0
- package/dist/js/treeshaking/cli/generate-client.js +45 -0
- package/dist/js/treeshaking/cli/loader.js +154 -0
- package/dist/js/treeshaking/common/constants.js +3 -0
- package/dist/js/treeshaking/server/index.js +578 -0
- package/dist/types/cli/createRequest.d.ts +9 -2
- package/dist/types/cli/data.d.ts +1 -1
- package/dist/types/cli/generateClient.d.ts +6 -4
- package/dist/types/cli/loader.d.ts +4 -1
- package/dist/types/runtime/index.d.ts +1 -1
- package/dist/types/runtime/response.d.ts +1 -1
- package/package.json +8 -7
|
@@ -1,21 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
9
15
|
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var response_exports = {};
|
|
20
|
+
__export(response_exports, {
|
|
21
|
+
createDeferredReadableStream: () => createDeferredReadableStream
|
|
10
22
|
});
|
|
11
|
-
|
|
12
|
-
|
|
23
|
+
module.exports = __toCommonJS(response_exports);
|
|
24
|
+
var import_util = require("util");
|
|
25
|
+
var import_node = require("@modern-js/runtime-utils/node");
|
|
13
26
|
function isTrackedPromise(value) {
|
|
14
27
|
return value != null && typeof value.then === "function" && value._tracked === true;
|
|
15
28
|
}
|
|
16
29
|
const DEFERRED_VALUE_PLACEHOLDER_PREFIX = "__deferred_promise:";
|
|
17
30
|
function createDeferredReadableStream(deferredData, signal) {
|
|
18
|
-
const encoder = new
|
|
31
|
+
const encoder = new import_util.TextEncoder();
|
|
19
32
|
const stream = new ReadableStream({
|
|
20
33
|
async start(controller) {
|
|
21
34
|
const criticalData = {};
|
|
@@ -51,7 +64,7 @@ function createDeferredReadableStream(deferredData, signal) {
|
|
|
51
64
|
function enqueueTrackedPromise(controller, encoder, settledKey, promise) {
|
|
52
65
|
if ("_error" in promise) {
|
|
53
66
|
const { _error } = promise;
|
|
54
|
-
controller.enqueue(encoder.encode(`error:${(0,
|
|
67
|
+
controller.enqueue(encoder.encode(`error:${(0, import_node.serializeJson)({
|
|
55
68
|
[settledKey]: {
|
|
56
69
|
message: _error.message,
|
|
57
70
|
stack: _error.stack
|
|
@@ -68,3 +81,7 @@ function enqueueTrackedPromise(controller, encoder, settledKey, promise) {
|
|
|
68
81
|
`));
|
|
69
82
|
}
|
|
70
83
|
}
|
|
84
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
85
|
+
0 && (module.exports = {
|
|
86
|
+
createDeferredReadableStream
|
|
87
|
+
});
|
package/dist/cjs/server/index.js
CHANGED
|
@@ -1,33 +1,54 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
9
17
|
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var server_exports = {};
|
|
30
|
+
__export(server_exports, {
|
|
31
|
+
default: () => server_default
|
|
10
32
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const _default = () => ({
|
|
33
|
+
module.exports = __toCommonJS(server_exports);
|
|
34
|
+
var import_path = __toESM(require("path"));
|
|
35
|
+
var import_fs = __toESM(require("fs"));
|
|
36
|
+
var import_utils = require("@modern-js/utils");
|
|
37
|
+
var import_node = require("@modern-js/runtime-utils/node");
|
|
38
|
+
var server_default = () => ({
|
|
18
39
|
name: "@modern-js/plugin-data-loader",
|
|
19
40
|
setup: () => ({
|
|
20
41
|
prepareLoaderHandler({ serverRoutes, distDir }) {
|
|
21
42
|
return async (context) => {
|
|
22
|
-
const entry = (0,
|
|
43
|
+
const entry = (0, import_node.matchEntry)(context.path, serverRoutes);
|
|
23
44
|
if (!entry) {
|
|
24
45
|
return;
|
|
25
46
|
}
|
|
26
|
-
const routesPath =
|
|
27
|
-
if (!
|
|
47
|
+
const routesPath = import_path.default.join(distDir, import_utils.SERVER_BUNDLE_DIRECTORY, `${entry.entryName || import_utils.MAIN_ENTRY_NAME}-server-loaders.js`);
|
|
48
|
+
if (!import_fs.default.existsSync(routesPath)) {
|
|
28
49
|
return;
|
|
29
50
|
}
|
|
30
|
-
const { routes, handleRequest } = await Promise.resolve(
|
|
51
|
+
const { routes, handleRequest } = await Promise.resolve().then(() => __toESM(require(routesPath)));
|
|
31
52
|
if (!routes) {
|
|
32
53
|
return;
|
|
33
54
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
2
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
3
3
|
import { compile } from "path-to-regexp";
|
|
4
|
-
import { redirect } from "@modern-js/utils/
|
|
4
|
+
import { redirect } from "@modern-js/runtime-utils/router";
|
|
5
5
|
import { LOADER_ID_PARAM, DIRECT_PARAM, CONTENT_TYPE_DEFERRED } from "../common/constants";
|
|
6
6
|
import { parseDeferredReadableStream } from "./data";
|
|
7
|
-
|
|
7
|
+
var getRequestUrl = function(param) {
|
|
8
8
|
var params = param.params, request = param.request, routeId = param.routeId;
|
|
9
9
|
var url = new URL(request.url);
|
|
10
10
|
var toPath = compile(url.pathname, {
|
|
@@ -56,7 +56,7 @@ var handleDeferredResponse = function() {
|
|
|
56
56
|
return _ref.apply(this, arguments);
|
|
57
57
|
};
|
|
58
58
|
}();
|
|
59
|
-
|
|
59
|
+
var createRequest = function(routeId) {
|
|
60
60
|
var method = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "get";
|
|
61
61
|
return function() {
|
|
62
62
|
var _ref = _async_to_generator(function(param) {
|
|
@@ -66,14 +66,14 @@ export var createRequest = function(routeId) {
|
|
|
66
66
|
case 0:
|
|
67
67
|
params = param.params, request = param.request;
|
|
68
68
|
url = getRequestUrl({
|
|
69
|
-
params
|
|
70
|
-
request
|
|
71
|
-
routeId
|
|
69
|
+
params,
|
|
70
|
+
request,
|
|
71
|
+
routeId
|
|
72
72
|
});
|
|
73
73
|
return [
|
|
74
74
|
4,
|
|
75
75
|
fetch(url, {
|
|
76
|
-
method
|
|
76
|
+
method,
|
|
77
77
|
signal: request.signal
|
|
78
78
|
})
|
|
79
79
|
];
|
|
@@ -101,3 +101,121 @@ export var createRequest = function(routeId) {
|
|
|
101
101
|
};
|
|
102
102
|
}();
|
|
103
103
|
};
|
|
104
|
+
var createActionRequest = function(routeId) {
|
|
105
|
+
return function() {
|
|
106
|
+
var _ref = _async_to_generator(function(param) {
|
|
107
|
+
var params, request, url, init, contentType, _, _1, res;
|
|
108
|
+
return _ts_generator(this, function(_state) {
|
|
109
|
+
switch (_state.label) {
|
|
110
|
+
case 0:
|
|
111
|
+
params = param.params, request = param.request;
|
|
112
|
+
url = getRequestUrl({
|
|
113
|
+
params,
|
|
114
|
+
request,
|
|
115
|
+
routeId
|
|
116
|
+
});
|
|
117
|
+
init = {
|
|
118
|
+
signal: request.signal
|
|
119
|
+
};
|
|
120
|
+
if (!(request.method !== "GET"))
|
|
121
|
+
return [
|
|
122
|
+
3,
|
|
123
|
+
8
|
|
124
|
+
];
|
|
125
|
+
init.method = request.method;
|
|
126
|
+
contentType = request.headers.get("Content-Type");
|
|
127
|
+
if (!(contentType && /\bapplication\/json\b/.test(contentType)))
|
|
128
|
+
return [
|
|
129
|
+
3,
|
|
130
|
+
2
|
|
131
|
+
];
|
|
132
|
+
init.headers = {
|
|
133
|
+
"Content-Type": contentType
|
|
134
|
+
};
|
|
135
|
+
_ = JSON.stringify;
|
|
136
|
+
return [
|
|
137
|
+
4,
|
|
138
|
+
request.json()
|
|
139
|
+
];
|
|
140
|
+
case 1:
|
|
141
|
+
init.body = _.apply(JSON, [
|
|
142
|
+
_state.sent()
|
|
143
|
+
]);
|
|
144
|
+
return [
|
|
145
|
+
3,
|
|
146
|
+
8
|
|
147
|
+
];
|
|
148
|
+
case 2:
|
|
149
|
+
if (!(contentType && /\btext\/plain\b/.test(contentType)))
|
|
150
|
+
return [
|
|
151
|
+
3,
|
|
152
|
+
4
|
|
153
|
+
];
|
|
154
|
+
init.headers = {
|
|
155
|
+
"Content-Type": contentType
|
|
156
|
+
};
|
|
157
|
+
return [
|
|
158
|
+
4,
|
|
159
|
+
request.text()
|
|
160
|
+
];
|
|
161
|
+
case 3:
|
|
162
|
+
init.body = _state.sent();
|
|
163
|
+
return [
|
|
164
|
+
3,
|
|
165
|
+
8
|
|
166
|
+
];
|
|
167
|
+
case 4:
|
|
168
|
+
if (!(contentType && /\bapplication\/x-www-form-urlencoded\b/.test(contentType)))
|
|
169
|
+
return [
|
|
170
|
+
3,
|
|
171
|
+
6
|
|
172
|
+
];
|
|
173
|
+
_1 = URLSearchParams.bind;
|
|
174
|
+
return [
|
|
175
|
+
4,
|
|
176
|
+
request.text()
|
|
177
|
+
];
|
|
178
|
+
case 5:
|
|
179
|
+
init.body = new (_1.apply(URLSearchParams, [
|
|
180
|
+
void 0,
|
|
181
|
+
_state.sent()
|
|
182
|
+
]))();
|
|
183
|
+
return [
|
|
184
|
+
3,
|
|
185
|
+
8
|
|
186
|
+
];
|
|
187
|
+
case 6:
|
|
188
|
+
return [
|
|
189
|
+
4,
|
|
190
|
+
request.formData()
|
|
191
|
+
];
|
|
192
|
+
case 7:
|
|
193
|
+
init.body = _state.sent();
|
|
194
|
+
_state.label = 8;
|
|
195
|
+
case 8:
|
|
196
|
+
return [
|
|
197
|
+
4,
|
|
198
|
+
fetch(url, init)
|
|
199
|
+
];
|
|
200
|
+
case 9:
|
|
201
|
+
res = _state.sent();
|
|
202
|
+
if (!res.ok) {
|
|
203
|
+
throw res;
|
|
204
|
+
}
|
|
205
|
+
return [
|
|
206
|
+
2,
|
|
207
|
+
res
|
|
208
|
+
];
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
return function(_) {
|
|
213
|
+
return _ref.apply(this, arguments);
|
|
214
|
+
};
|
|
215
|
+
}();
|
|
216
|
+
};
|
|
217
|
+
export {
|
|
218
|
+
createActionRequest,
|
|
219
|
+
createRequest,
|
|
220
|
+
getRequestUrl
|
|
221
|
+
};
|
package/dist/esm/cli/data.js
CHANGED
|
@@ -7,9 +7,9 @@ import { _ as _to_array } from "@swc/helpers/_/_to_array";
|
|
|
7
7
|
import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
|
|
8
8
|
import { _ as _wrap_async_generator } from "@swc/helpers/_/_wrap_async_generator";
|
|
9
9
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
10
|
-
import { UNSAFE_DeferredData as DeferredData, AbortedDeferredError } from "@modern-js/utils/
|
|
10
|
+
import { UNSAFE_DeferredData as DeferredData, AbortedDeferredError } from "@modern-js/runtime-utils/remix-router";
|
|
11
11
|
var DEFERRED_VALUE_PLACEHOLDER_PREFIX = "__deferred_promise:";
|
|
12
|
-
|
|
12
|
+
function parseDeferredReadableStream(stream) {
|
|
13
13
|
return _parseDeferredReadableStream.apply(this, arguments);
|
|
14
14
|
}
|
|
15
15
|
function _parseDeferredReadableStream() {
|
|
@@ -485,3 +485,6 @@ function mergeArrays() {
|
|
|
485
485
|
}
|
|
486
486
|
return out;
|
|
487
487
|
}
|
|
488
|
+
export {
|
|
489
|
+
parseDeferredReadableStream
|
|
490
|
+
};
|
|
@@ -1,44 +1,21 @@
|
|
|
1
1
|
import path from "path";
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
delete require.cache[mapFile];
|
|
5
|
-
var loadersMap = require(mapFile);
|
|
2
|
+
var generateClient = function(param) {
|
|
3
|
+
var inline = param.inline, action = param.action, routeId = param.routeId;
|
|
6
4
|
var requestCode = "";
|
|
7
|
-
var exportsCode = "";
|
|
8
5
|
var requestCreatorPath = path.join(__dirname, "./createRequest").replace("/cjs/cli/", "/esm/cli/").replace(/\\/g, "/");
|
|
9
|
-
var importCode = "\n import { createRequest } from '".concat(requestCreatorPath, "';\n ");
|
|
10
|
-
if (
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
exportsCode = "export {";
|
|
16
|
-
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
17
|
-
try {
|
|
18
|
-
for (var _iterator = Object.keys(loadersMap)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
19
|
-
var loader = _step.value;
|
|
20
|
-
exportsCode += "".concat(loader, ",");
|
|
21
|
-
}
|
|
22
|
-
} catch (err) {
|
|
23
|
-
_didIteratorError = true;
|
|
24
|
-
_iteratorError = err;
|
|
25
|
-
} finally {
|
|
26
|
-
try {
|
|
27
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
28
|
-
_iterator.return();
|
|
29
|
-
}
|
|
30
|
-
} finally {
|
|
31
|
-
if (_didIteratorError) {
|
|
32
|
-
throw _iteratorError;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
6
|
+
var importCode = "\n import { createRequest, createActionRequest } from '".concat(requestCreatorPath, "';\n ");
|
|
7
|
+
if (inline) {
|
|
8
|
+
if (action) {
|
|
9
|
+
requestCode = "\n export const loader = createRequest('".concat(routeId, "');\n export const action = createActionRequest('").concat(routeId, "')\n ");
|
|
10
|
+
} else {
|
|
11
|
+
requestCode = "\n export const loader = createRequest('".concat(routeId, "');\n ");
|
|
35
12
|
}
|
|
36
|
-
exportsCode += "}";
|
|
37
13
|
} else {
|
|
38
|
-
|
|
39
|
-
requestCode = "\n const loader = createRequest('".concat(loader1.routeId, "');\n ");
|
|
40
|
-
exportsCode = "export default loader;";
|
|
14
|
+
requestCode = "\n export default createRequest('".concat(routeId, "');\n ");
|
|
41
15
|
}
|
|
42
|
-
var generatedCode = "\n ".concat(importCode, "\n ").concat(requestCode, "\n
|
|
16
|
+
var generatedCode = "\n ".concat(importCode, "\n ").concat(requestCode, "\n ");
|
|
43
17
|
return generatedCode;
|
|
44
18
|
};
|
|
19
|
+
export {
|
|
20
|
+
generateClient
|
|
21
|
+
};
|
package/dist/esm/cli/loader.js
CHANGED
|
@@ -4,7 +4,7 @@ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
|
4
4
|
import { promisify } from "util";
|
|
5
5
|
import { logger } from "@modern-js/utils/logger";
|
|
6
6
|
import { generateClient } from "./generateClient";
|
|
7
|
-
|
|
7
|
+
function loader(source) {
|
|
8
8
|
return _loader.apply(this, arguments);
|
|
9
9
|
}
|
|
10
10
|
function _loader() {
|
|
@@ -28,17 +28,14 @@ function _loader() {
|
|
|
28
28
|
];
|
|
29
29
|
}
|
|
30
30
|
resourceQuery = this.resourceQuery;
|
|
31
|
-
options = resourceQuery.slice(1).split("&").
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if (!key || !value) {
|
|
36
|
-
return pre;
|
|
31
|
+
options = resourceQuery.slice(1).split("&").reduce(function(pre, cur) {
|
|
32
|
+
var _cur_split = _sliced_to_array(cur.split("="), 2), key = _cur_split[0], value = _cur_split[1];
|
|
33
|
+
if (key && value) {
|
|
34
|
+
pre[key] = value === "true" ? true : value === "false" ? false : value;
|
|
37
35
|
}
|
|
38
|
-
pre[key] = value;
|
|
39
36
|
return pre;
|
|
40
37
|
}, {});
|
|
41
|
-
if (!options.
|
|
38
|
+
if (!options.loaderId) {
|
|
42
39
|
return [
|
|
43
40
|
2,
|
|
44
41
|
source
|
|
@@ -80,8 +77,9 @@ function _loader() {
|
|
|
80
77
|
];
|
|
81
78
|
case 4:
|
|
82
79
|
code = generateClient({
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
inline: options.inline,
|
|
81
|
+
action: options.action,
|
|
82
|
+
routeId: options.routeId
|
|
85
83
|
});
|
|
86
84
|
return [
|
|
87
85
|
2,
|
|
@@ -92,3 +90,6 @@ function _loader() {
|
|
|
92
90
|
});
|
|
93
91
|
return _loader.apply(this, arguments);
|
|
94
92
|
}
|
|
93
|
+
export {
|
|
94
|
+
loader as default
|
|
95
|
+
};
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
var LOADER_ID_PARAM = "__loader";
|
|
2
|
+
var DIRECT_PARAM = "__ssrDirect";
|
|
3
|
+
var CONTENT_TYPE_DEFERRED = "text/modernjs-deferred";
|
|
4
|
+
export {
|
|
5
|
+
CONTENT_TYPE_DEFERRED,
|
|
6
|
+
DIRECT_PARAM,
|
|
7
|
+
LOADER_ID_PARAM
|
|
8
|
+
};
|
|
@@ -3,11 +3,11 @@ import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
|
|
|
3
3
|
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
4
4
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
5
5
|
import { installGlobals, writeReadableStreamToWritable, Response as NodeResponse } from "@remix-run/node";
|
|
6
|
-
import { createStaticHandler, ErrorResponse, UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL } from "@modern-js/utils/
|
|
7
|
-
import { transformNestedRoutes } from "@modern-js/utils/
|
|
6
|
+
import { createStaticHandler, ErrorResponse, UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL } from "@modern-js/runtime-utils/remix-router";
|
|
7
|
+
import { transformNestedRoutes } from "@modern-js/runtime-utils/browser";
|
|
8
8
|
import { isPlainObject } from "@modern-js/utils/lodash";
|
|
9
|
-
import { matchEntry, createRequestContext, reporterCtx } from "@modern-js/utils/
|
|
10
|
-
import { time } from "@modern-js/utils/
|
|
9
|
+
import { matchEntry, createRequestContext, reporterCtx } from "@modern-js/runtime-utils/node";
|
|
10
|
+
import { time } from "@modern-js/runtime-utils/time";
|
|
11
11
|
import { LOADER_REPORTER_NAME } from "@modern-js/utils/universal/constants";
|
|
12
12
|
import { CONTENT_TYPE_DEFERRED, LOADER_ID_PARAM } from "../common/constants";
|
|
13
13
|
import { createDeferredReadableStream } from "./response";
|
|
@@ -19,10 +19,10 @@ var redirectStatusCodes = /* @__PURE__ */ new Set([
|
|
|
19
19
|
307,
|
|
20
20
|
308
|
|
21
21
|
]);
|
|
22
|
-
|
|
22
|
+
function isRedirectResponse(status) {
|
|
23
23
|
return redirectStatusCodes.has(status);
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
function isResponse(value) {
|
|
26
26
|
return value != null && typeof value.status === "number" && typeof value.statusText === "string" && typeof value.headers === "object" && typeof value.body !== "undefined";
|
|
27
27
|
}
|
|
28
28
|
function convertModernRedirectResponse(headers, basename) {
|
|
@@ -87,7 +87,7 @@ var createLoaderHeaders = function(requestHeaders) {
|
|
|
87
87
|
}
|
|
88
88
|
return headers;
|
|
89
89
|
};
|
|
90
|
-
var
|
|
90
|
+
var createRequest = function(context) {
|
|
91
91
|
var origin = "".concat(context.protocol, "://").concat(context.host);
|
|
92
92
|
var url = new URL(context.url, origin);
|
|
93
93
|
var controller = new AbortController();
|
|
@@ -96,7 +96,11 @@ var createLoaderRequest = function(context) {
|
|
|
96
96
|
headers: createLoaderHeaders(context.headers),
|
|
97
97
|
signal: controller.signal
|
|
98
98
|
};
|
|
99
|
-
|
|
99
|
+
if (context.method.toUpperCase() !== "GET" && context.method !== "HEAD") {
|
|
100
|
+
init.body = context.req;
|
|
101
|
+
}
|
|
102
|
+
var request = new Request(url.href, init);
|
|
103
|
+
return request;
|
|
100
104
|
};
|
|
101
105
|
var sendLoaderResponse = function() {
|
|
102
106
|
var _ref = _async_to_generator(function(res, nodeResponse) {
|
|
@@ -155,14 +159,14 @@ var sendLoaderResponse = function() {
|
|
|
155
159
|
return _ref.apply(this, arguments);
|
|
156
160
|
};
|
|
157
161
|
}();
|
|
158
|
-
|
|
162
|
+
var handleRequest = function() {
|
|
159
163
|
var _ref = _async_to_generator(function(param) {
|
|
160
|
-
var context, serverRoutes, routesConfig,
|
|
164
|
+
var context, serverRoutes, routesConfig, query, routeId, entry, basename, end, res, logger, reporter, routes, queryRoute, request, requestContext, response, deferredData, body, init, headers, error, message, cost;
|
|
161
165
|
return _ts_generator(this, function(_state) {
|
|
162
166
|
switch (_state.label) {
|
|
163
167
|
case 0:
|
|
164
168
|
context = param.context, serverRoutes = param.serverRoutes, routesConfig = param.routes;
|
|
165
|
-
|
|
169
|
+
query = context.query;
|
|
166
170
|
routeId = query[LOADER_ID_PARAM];
|
|
167
171
|
entry = matchEntry(context.path, serverRoutes);
|
|
168
172
|
if (!routeId || !entry) {
|
|
@@ -170,17 +174,14 @@ export var handleRequest = function() {
|
|
|
170
174
|
2
|
|
171
175
|
];
|
|
172
176
|
}
|
|
173
|
-
if (method.toLowerCase() !== "get") {
|
|
174
|
-
throw new Error("CSR data loader request only support http GET method");
|
|
175
|
-
}
|
|
176
177
|
basename = entry.urlPath;
|
|
177
178
|
end = time();
|
|
178
179
|
res = context.res, logger = context.logger, reporter = context.reporter;
|
|
179
180
|
routes = transformNestedRoutes(routesConfig, reporter);
|
|
180
181
|
queryRoute = createStaticHandler(routes, {
|
|
181
|
-
basename
|
|
182
|
+
basename
|
|
182
183
|
}).queryRoute;
|
|
183
|
-
request =
|
|
184
|
+
request = createRequest(context);
|
|
184
185
|
requestContext = createRequestContext();
|
|
185
186
|
requestContext.set(reporterCtx, reporter);
|
|
186
187
|
_state.label = 1;
|
|
@@ -194,8 +195,8 @@ export var handleRequest = function() {
|
|
|
194
195
|
return [
|
|
195
196
|
4,
|
|
196
197
|
queryRoute(request, {
|
|
197
|
-
routeId
|
|
198
|
-
requestContext
|
|
198
|
+
routeId,
|
|
199
|
+
requestContext
|
|
199
200
|
})
|
|
200
201
|
];
|
|
201
202
|
case 2:
|
|
@@ -231,7 +232,11 @@ export var handleRequest = function() {
|
|
|
231
232
|
case 3:
|
|
232
233
|
error = _state.sent();
|
|
233
234
|
message = _instanceof(error, ErrorResponse) ? error.data : String(error);
|
|
234
|
-
(
|
|
235
|
+
if (_instanceof(error, Error)) {
|
|
236
|
+
logger === null || logger === void 0 ? void 0 : logger.error(error);
|
|
237
|
+
} else {
|
|
238
|
+
logger === null || logger === void 0 ? void 0 : logger.error(message);
|
|
239
|
+
}
|
|
235
240
|
response = new NodeResponse(message, {
|
|
236
241
|
status: 500,
|
|
237
242
|
headers: {
|
|
@@ -261,3 +266,8 @@ export var handleRequest = function() {
|
|
|
261
266
|
return _ref.apply(this, arguments);
|
|
262
267
|
};
|
|
263
268
|
}();
|
|
269
|
+
export {
|
|
270
|
+
handleRequest,
|
|
271
|
+
isRedirectResponse,
|
|
272
|
+
isResponse
|
|
273
|
+
};
|
|
@@ -3,12 +3,12 @@ import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
|
3
3
|
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
4
4
|
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
5
5
|
import { TextEncoder } from "util";
|
|
6
|
-
import { serializeJson } from "@modern-js/utils/
|
|
6
|
+
import { serializeJson } from "@modern-js/runtime-utils/node";
|
|
7
7
|
function isTrackedPromise(value) {
|
|
8
8
|
return value != null && typeof value.then === "function" && value._tracked === true;
|
|
9
9
|
}
|
|
10
10
|
var DEFERRED_VALUE_PLACEHOLDER_PREFIX = "__deferred_promise:";
|
|
11
|
-
|
|
11
|
+
function createDeferredReadableStream(deferredData, signal) {
|
|
12
12
|
var encoder = new TextEncoder();
|
|
13
13
|
var stream = new ReadableStream({
|
|
14
14
|
start: function start(controller) {
|
|
@@ -102,3 +102,6 @@ function enqueueTrackedPromise(controller, encoder, settledKey, promise) {
|
|
|
102
102
|
controller.enqueue(encoder.encode("data:".concat(JSON.stringify(_define_property({}, settledKey, (_promise__data = promise._data) !== null && _promise__data !== void 0 ? _promise__data : null)), "\n\n")));
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
+
export {
|
|
106
|
+
createDeferredReadableStream
|
|
107
|
+
};
|
package/dist/esm/server/index.js
CHANGED
|
@@ -3,8 +3,8 @@ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
|
3
3
|
import path from "path";
|
|
4
4
|
import fs from "fs";
|
|
5
5
|
import { MAIN_ENTRY_NAME, SERVER_BUNDLE_DIRECTORY } from "@modern-js/utils";
|
|
6
|
-
import { matchEntry } from "@modern-js/utils/
|
|
7
|
-
|
|
6
|
+
import { matchEntry } from "@modern-js/runtime-utils/node";
|
|
7
|
+
function server_default() {
|
|
8
8
|
return {
|
|
9
9
|
name: "@modern-js/plugin-data-loader",
|
|
10
10
|
setup: function() {
|
|
@@ -43,9 +43,9 @@ export default function() {
|
|
|
43
43
|
return [
|
|
44
44
|
2,
|
|
45
45
|
handleRequest({
|
|
46
|
-
serverRoutes
|
|
47
|
-
context
|
|
48
|
-
routes
|
|
46
|
+
serverRoutes,
|
|
47
|
+
context,
|
|
48
|
+
routes
|
|
49
49
|
})
|
|
50
50
|
];
|
|
51
51
|
}
|
|
@@ -61,3 +61,6 @@ export default function() {
|
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
63
|
;
|
|
64
|
+
export {
|
|
65
|
+
server_default as default
|
|
66
|
+
};
|