@modern-js/plugin-data-loader 2.19.1 → 2.21.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 +32 -0
- package/dist/cjs/cli/data.js +3 -3
- package/dist/cjs/cli/generateClient.js +2 -6
- package/dist/cjs/runtime/index.js +7 -6
- package/dist/cjs/server/index.js +5 -48
- package/dist/esm/cli/createRequest.js +4 -133
- package/dist/esm/cli/data.js +14 -375
- package/dist/esm/cli/loader.js +4 -190
- package/dist/esm/runtime/index.js +8 -199
- package/dist/esm/runtime/response.js +5 -203
- package/dist/esm/server/index.js +3 -132
- package/dist/esm-node/cli/data.js +1 -1
- package/dist/esm-node/runtime/index.js +2 -1
- package/dist/types/cli/createRequest.d.ts +1 -1
- package/dist/types/cli/data.d.ts +1 -1
- package/dist/types/runtime/response.d.ts +1 -1
- package/dist/types/server/index.d.ts +0 -2
- package/package.json +12 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @modern-js/plugin-data-loader
|
|
2
2
|
|
|
3
|
+
## 2.21.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- e81eeaf: refactor: guard react-router version consistency
|
|
8
|
+
refactor: 保证 react-router 相关包的版本一致性
|
|
9
|
+
- 26dcf3a: chore: bump typescript to v5 in devDependencies
|
|
10
|
+
|
|
11
|
+
chore: 升级 devDependencies 中的 typescript 版本到 v5
|
|
12
|
+
|
|
13
|
+
- ad78387: chore(deps): bump babel-related dependencies to latest version
|
|
14
|
+
|
|
15
|
+
chore(deps): 升级 babel 相关依赖到最新版本
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [e81eeaf]
|
|
18
|
+
- Updated dependencies [26dcf3a]
|
|
19
|
+
- Updated dependencies [056627f]
|
|
20
|
+
- Updated dependencies [0fc15ca]
|
|
21
|
+
- Updated dependencies [43b4e83]
|
|
22
|
+
- Updated dependencies [ad78387]
|
|
23
|
+
- @modern-js/utils@2.21.0
|
|
24
|
+
|
|
25
|
+
## 2.20.0
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- 6b9d90a: chore: remove @babel/runtime. add @swc/helper and enable `externalHelper` config.
|
|
30
|
+
chore: 移除 @babel/runtime 依赖. 增加 @swc/helpers 依赖并且开启 `externalHelpers` 配置
|
|
31
|
+
- Updated dependencies [3c4e0a5]
|
|
32
|
+
- Updated dependencies [6b9d90a]
|
|
33
|
+
- @modern-js/utils@2.20.0
|
|
34
|
+
|
|
3
35
|
## 2.19.1
|
|
4
36
|
|
|
5
37
|
### Patch Changes
|
package/dist/cjs/cli/data.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "parseDeferredReadableStream", {
|
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: () => parseDeferredReadableStream
|
|
8
8
|
});
|
|
9
|
-
const
|
|
9
|
+
const _remixrouter = require("@modern-js/utils/runtime/remix-router");
|
|
10
10
|
const DEFERRED_VALUE_PLACEHOLDER_PREFIX = "__deferred_promise:";
|
|
11
11
|
async function parseDeferredReadableStream(stream) {
|
|
12
12
|
if (!stream) {
|
|
@@ -65,7 +65,7 @@ async function parseDeferredReadableStream(stream) {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
for (const [key, resolver] of Object.entries(deferredResolvers)) {
|
|
68
|
-
resolver.reject(new
|
|
68
|
+
resolver.reject(new _remixrouter.AbortedDeferredError(`Deferred ${key} will never resolved`));
|
|
69
69
|
}
|
|
70
70
|
} catch (error) {
|
|
71
71
|
for (const resolver of Object.values(deferredResolvers)) {
|
|
@@ -73,7 +73,7 @@ async function parseDeferredReadableStream(stream) {
|
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
})();
|
|
76
|
-
return new
|
|
76
|
+
return new _remixrouter.UNSAFE_DeferredData({
|
|
77
77
|
...criticalData,
|
|
78
78
|
...deferredData
|
|
79
79
|
});
|
|
@@ -6,12 +6,8 @@ Object.defineProperty(exports, "generateClient", {
|
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: () => generateClient
|
|
8
8
|
});
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
return obj && obj.__esModule ? obj : {
|
|
12
|
-
default: obj
|
|
13
|
-
};
|
|
14
|
-
}
|
|
9
|
+
const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
10
|
+
const _path = /* @__PURE__ */ _interop_require_default._(require("path"));
|
|
15
11
|
const generateClient = ({ mapFile, loaderId }) => {
|
|
16
12
|
delete require.cache[mapFile];
|
|
17
13
|
const loadersMap = require(mapFile);
|
|
@@ -15,7 +15,8 @@ _export(exports, {
|
|
|
15
15
|
handleRequest: () => handleRequest
|
|
16
16
|
});
|
|
17
17
|
const _node = require("@remix-run/node");
|
|
18
|
-
const
|
|
18
|
+
const _remixrouter = require("@modern-js/utils/runtime/remix-router");
|
|
19
|
+
const _nestedroutes = require("@modern-js/utils/runtime/nested-routes");
|
|
19
20
|
const _lodash = require("@modern-js/utils/lodash");
|
|
20
21
|
const _constants = require("../common/constants");
|
|
21
22
|
const _utils = require("../common/utils");
|
|
@@ -96,8 +97,8 @@ const handleRequest = async ({ context, serverRoutes, routes: routesConfig }) =>
|
|
|
96
97
|
throw new Error("CSR data loader request only support http GET method");
|
|
97
98
|
}
|
|
98
99
|
const basename = entry.urlPath;
|
|
99
|
-
const routes = (0,
|
|
100
|
-
const { queryRoute } = (0,
|
|
100
|
+
const routes = (0, _nestedroutes.transformNestedRoutes)(routesConfig);
|
|
101
|
+
const { queryRoute } = (0, _remixrouter.createStaticHandler)(routes, {
|
|
101
102
|
basename
|
|
102
103
|
});
|
|
103
104
|
const { res, logger } = context;
|
|
@@ -109,8 +110,8 @@ const handleRequest = async ({ context, serverRoutes, routes: routesConfig }) =>
|
|
|
109
110
|
});
|
|
110
111
|
if (isResponse(response) && isRedirectResponse(response.status)) {
|
|
111
112
|
response = convertModernRedirectResponse(response.headers, basename);
|
|
112
|
-
} else if ((0, _lodash.isPlainObject)(response) &&
|
|
113
|
-
const deferredData = response[
|
|
113
|
+
} else if ((0, _lodash.isPlainObject)(response) && _remixrouter.UNSAFE_DEFERRED_SYMBOL in response) {
|
|
114
|
+
const deferredData = response[_remixrouter.UNSAFE_DEFERRED_SYMBOL];
|
|
114
115
|
const body = (0, _response.createDeferredReadableStream)(deferredData, request.signal);
|
|
115
116
|
const init = deferredData.init || {};
|
|
116
117
|
if (init.status && isRedirectResponse(init.status)) {
|
|
@@ -132,7 +133,7 @@ const handleRequest = async ({ context, serverRoutes, routes: routesConfig }) =>
|
|
|
132
133
|
});
|
|
133
134
|
}
|
|
134
135
|
} catch (error) {
|
|
135
|
-
const message = error instanceof
|
|
136
|
+
const message = error instanceof _remixrouter.ErrorResponse ? error.data : String(error);
|
|
136
137
|
logger === null || logger === void 0 ? void 0 : logger.error(message);
|
|
137
138
|
response = new _node.Response(message, {
|
|
138
139
|
status: 500,
|
package/dist/cjs/server/index.js
CHANGED
|
@@ -6,55 +6,12 @@ Object.defineProperty(exports, "default", {
|
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: () => _default
|
|
8
8
|
});
|
|
9
|
-
const
|
|
10
|
-
const
|
|
9
|
+
const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
10
|
+
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
11
|
+
const _path = /* @__PURE__ */ _interop_require_default._(require("path"));
|
|
12
|
+
const _fs = /* @__PURE__ */ _interop_require_default._(require("fs"));
|
|
11
13
|
const _utils = require("@modern-js/utils");
|
|
12
14
|
const _utils1 = 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
15
|
const _default = () => ({
|
|
59
16
|
name: "@modern-js/plugin-data-loader",
|
|
60
17
|
setup: () => ({
|
|
@@ -68,7 +25,7 @@ const _default = () => ({
|
|
|
68
25
|
if (!_fs.default.existsSync(routesPath)) {
|
|
69
26
|
return;
|
|
70
27
|
}
|
|
71
|
-
const { routes, handleRequest } = await Promise.resolve(routesPath).then((p) => /* @__PURE__ */ _interop_require_wildcard(require(p)));
|
|
28
|
+
const { routes, handleRequest } = await Promise.resolve(routesPath).then((p) => /* @__PURE__ */ _interop_require_wildcard._(require(p)));
|
|
72
29
|
if (!routes) {
|
|
73
30
|
return;
|
|
74
31
|
}
|
|
@@ -1,134 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
-
}
|
|
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
|
-
}
|
|
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
|
-
]);
|
|
54
|
-
};
|
|
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];
|
|
82
|
-
op = [
|
|
83
|
-
0
|
|
84
|
-
];
|
|
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;
|
|
113
|
-
}
|
|
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
|
-
}
|
|
131
|
-
};
|
|
1
|
+
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
|
+
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
132
3
|
import { compile } from "path-to-regexp";
|
|
133
4
|
import { redirect } from "react-router-dom";
|
|
134
5
|
import { LOADER_ID_PARAM, DIRECT_PARAM, CONTENT_TYPE_DEFERRED } from "../common/constants";
|
|
@@ -156,7 +27,7 @@ var handleRedirectResponse = function(res) {
|
|
|
156
27
|
var handleDeferredResponse = function() {
|
|
157
28
|
var _ref = _async_to_generator(function(res) {
|
|
158
29
|
var _res_headers_get;
|
|
159
|
-
return
|
|
30
|
+
return _ts_generator(this, function(_state) {
|
|
160
31
|
switch (_state.label) {
|
|
161
32
|
case 0:
|
|
162
33
|
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))
|
|
@@ -190,7 +61,7 @@ export var createRequest = function(routeId) {
|
|
|
190
61
|
return function() {
|
|
191
62
|
var _ref = _async_to_generator(function(param) {
|
|
192
63
|
var params, request, url, res;
|
|
193
|
-
return
|
|
64
|
+
return _ts_generator(this, function(_state) {
|
|
194
65
|
switch (_state.label) {
|
|
195
66
|
case 0:
|
|
196
67
|
params = param.params, request = param.request;
|