@modern-js/plugin-data-loader 2.4.0 → 2.5.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/{js/node → cjs}/cli/create-request.js +4 -24
- package/dist/{js/node → cjs}/cli/generate-client.js +1 -1
- package/dist/{js/node → cjs}/cli/loader.js +12 -34
- package/dist/{js/node → cjs}/common/constants.js +0 -0
- package/dist/{js/node → cjs}/server/index.js +17 -53
- package/dist/{js/treeshaking → esm}/cli/create-request.js +0 -0
- package/dist/{js/treeshaking → esm}/cli/generate-client.js +1 -1
- package/dist/{js/treeshaking → esm}/cli/loader.js +2 -2
- package/dist/{js/treeshaking → esm}/common/constants.js +0 -0
- package/dist/{js/treeshaking → esm}/server/index.js +3 -3
- package/dist/{js/modern → esm-node}/cli/create-request.js +4 -24
- package/dist/{js/modern → esm-node}/cli/generate-client.js +1 -1
- package/dist/esm-node/cli/loader.js +18 -0
- package/dist/{js/modern → esm-node}/common/constants.js +0 -0
- package/dist/{js/modern → esm-node}/server/index.js +17 -55
- package/package.json +11 -12
- package/dist/js/modern/cli/loader.js +0 -40
|
@@ -15,26 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
return to;
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var __async = (__this, __arguments, generator) => {
|
|
19
|
-
return new Promise((resolve, reject) => {
|
|
20
|
-
var fulfilled = (value) => {
|
|
21
|
-
try {
|
|
22
|
-
step(generator.next(value));
|
|
23
|
-
} catch (e) {
|
|
24
|
-
reject(e);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
var rejected = (value) => {
|
|
28
|
-
try {
|
|
29
|
-
step(generator.throw(value));
|
|
30
|
-
} catch (e) {
|
|
31
|
-
reject(e);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
35
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
18
|
var create_request_exports = {};
|
|
39
19
|
__export(create_request_exports, {
|
|
40
20
|
createRequest: () => createRequest,
|
|
@@ -68,12 +48,12 @@ const handleRedirectResponse = (res) => {
|
|
|
68
48
|
return res;
|
|
69
49
|
};
|
|
70
50
|
const createRequest = (routeId, method = "get") => {
|
|
71
|
-
return
|
|
51
|
+
return async ({
|
|
72
52
|
params,
|
|
73
53
|
request
|
|
74
|
-
}) {
|
|
54
|
+
}) => {
|
|
75
55
|
const url = getRequestUrl({ params, request, routeId });
|
|
76
|
-
const res =
|
|
56
|
+
const res = await fetch(url, {
|
|
77
57
|
method,
|
|
78
58
|
signal: request.signal
|
|
79
59
|
});
|
|
@@ -81,7 +61,7 @@ const createRequest = (routeId, method = "get") => {
|
|
|
81
61
|
throw res;
|
|
82
62
|
}
|
|
83
63
|
return handleRedirectResponse(res);
|
|
84
|
-
}
|
|
64
|
+
};
|
|
85
65
|
};
|
|
86
66
|
// Annotate the CommonJS export names for ESM import in node:
|
|
87
67
|
0 && (module.exports = {
|
|
@@ -35,7 +35,7 @@ const generateClient = ({
|
|
|
35
35
|
const loadersMap = require(mapFile);
|
|
36
36
|
let requestCode = ``;
|
|
37
37
|
let exportsCode = ``;
|
|
38
|
-
const requestCreatorPath = import_path.default.join(__dirname, "./create-request").replace("/
|
|
38
|
+
const requestCreatorPath = import_path.default.join(__dirname, "./create-request").replace("/cjs/cli/", "/esm/cli/").replace(/\\/g, "/");
|
|
39
39
|
const importCode = `
|
|
40
40
|
import { createRequest } from '${requestCreatorPath}';
|
|
41
41
|
`;
|
|
@@ -15,47 +15,25 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
return to;
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var __async = (__this, __arguments, generator) => {
|
|
19
|
-
return new Promise((resolve, reject) => {
|
|
20
|
-
var fulfilled = (value) => {
|
|
21
|
-
try {
|
|
22
|
-
step(generator.next(value));
|
|
23
|
-
} catch (e) {
|
|
24
|
-
reject(e);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
var rejected = (value) => {
|
|
28
|
-
try {
|
|
29
|
-
step(generator.throw(value));
|
|
30
|
-
} catch (e) {
|
|
31
|
-
reject(e);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
35
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
18
|
var loader_exports = {};
|
|
39
19
|
__export(loader_exports, {
|
|
40
20
|
default: () => loader
|
|
41
21
|
});
|
|
42
22
|
module.exports = __toCommonJS(loader_exports);
|
|
43
23
|
var import_generate_client = require("./generate-client");
|
|
44
|
-
function loader(source) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
loaderId: options.loaderId
|
|
56
|
-
});
|
|
57
|
-
return code;
|
|
24
|
+
async function loader(source) {
|
|
25
|
+
var _a;
|
|
26
|
+
this.cacheable();
|
|
27
|
+
const target = (_a = this._compiler) == null ? void 0 : _a.options.target;
|
|
28
|
+
if (target === "node") {
|
|
29
|
+
return source;
|
|
30
|
+
}
|
|
31
|
+
const options = this.getOptions();
|
|
32
|
+
const code = (0, import_generate_client.generateClient)({
|
|
33
|
+
mapFile: options.mapFile,
|
|
34
|
+
loaderId: options.loaderId
|
|
58
35
|
});
|
|
36
|
+
return code;
|
|
59
37
|
}
|
|
60
38
|
// Annotate the CommonJS export names for ESM import in node:
|
|
61
39
|
0 && (module.exports = {});
|
|
File without changes
|
|
@@ -1,26 +1,9 @@
|
|
|
1
1
|
var __create = Object.create;
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var __defProps = Object.defineProperties;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
9
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
-
var __spreadValues = (a, b) => {
|
|
13
|
-
for (var prop in b || (b = {}))
|
|
14
|
-
if (__hasOwnProp.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
if (__getOwnPropSymbols)
|
|
17
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
-
if (__propIsEnum.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
}
|
|
21
|
-
return a;
|
|
22
|
-
};
|
|
23
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
7
|
var __export = (target, all) => {
|
|
25
8
|
for (var name in all)
|
|
26
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -38,26 +21,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
38
21
|
mod
|
|
39
22
|
));
|
|
40
23
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
41
|
-
var __async = (__this, __arguments, generator) => {
|
|
42
|
-
return new Promise((resolve, reject) => {
|
|
43
|
-
var fulfilled = (value) => {
|
|
44
|
-
try {
|
|
45
|
-
step(generator.next(value));
|
|
46
|
-
} catch (e) {
|
|
47
|
-
reject(e);
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
var rejected = (value) => {
|
|
51
|
-
try {
|
|
52
|
-
step(generator.throw(value));
|
|
53
|
-
} catch (e) {
|
|
54
|
-
reject(e);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
58
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
24
|
var server_exports = {};
|
|
62
25
|
__export(server_exports, {
|
|
63
26
|
default: () => server_default,
|
|
@@ -86,17 +49,18 @@ const json = (data, init = {}) => {
|
|
|
86
49
|
if (!headers.has("Content-Type")) {
|
|
87
50
|
headers.set("Content-Type", "application/json; charset=utf-8");
|
|
88
51
|
}
|
|
89
|
-
return new import_node.Response(JSON.stringify(data),
|
|
52
|
+
return new import_node.Response(JSON.stringify(data), {
|
|
53
|
+
...responseInit,
|
|
90
54
|
headers
|
|
91
|
-
})
|
|
55
|
+
});
|
|
92
56
|
};
|
|
93
|
-
const callRouteLoader =
|
|
57
|
+
const callRouteLoader = async ({
|
|
94
58
|
routeId,
|
|
95
59
|
loader,
|
|
96
60
|
params,
|
|
97
61
|
request,
|
|
98
62
|
loadContext
|
|
99
|
-
}) {
|
|
63
|
+
}) => {
|
|
100
64
|
if (!loader) {
|
|
101
65
|
throw new Error(
|
|
102
66
|
`You made a ${request.method} request to ${request.url} but did not provide a default component or \`loader\` for route "${routeId}", so there is no way to handle the request.`
|
|
@@ -104,7 +68,7 @@ const callRouteLoader = (_0) => __async(void 0, [_0], function* ({
|
|
|
104
68
|
}
|
|
105
69
|
let result;
|
|
106
70
|
try {
|
|
107
|
-
result =
|
|
71
|
+
result = await loader({
|
|
108
72
|
request,
|
|
109
73
|
params
|
|
110
74
|
});
|
|
@@ -120,7 +84,7 @@ const callRouteLoader = (_0) => __async(void 0, [_0], function* ({
|
|
|
120
84
|
);
|
|
121
85
|
}
|
|
122
86
|
return isResponse(result) ? result : json(result);
|
|
123
|
-
}
|
|
87
|
+
};
|
|
124
88
|
const createLoaderHeaders = (requestHeaders) => {
|
|
125
89
|
const headers = new Headers();
|
|
126
90
|
for (const [key, values] of Object.entries(requestHeaders)) {
|
|
@@ -147,18 +111,18 @@ const createLoaderRequest = (context) => {
|
|
|
147
111
|
};
|
|
148
112
|
return new Request(url.href, init);
|
|
149
113
|
};
|
|
150
|
-
const sendLoaderResponse = (res, nodeResponse) =>
|
|
114
|
+
const sendLoaderResponse = async (res, nodeResponse) => {
|
|
151
115
|
res.statusMessage = nodeResponse.statusText;
|
|
152
116
|
res.statusCode = nodeResponse.status;
|
|
153
117
|
for (const [key, value] of nodeResponse.headers.entries()) {
|
|
154
118
|
res.setHeader(key, value);
|
|
155
119
|
}
|
|
156
120
|
if (nodeResponse.body) {
|
|
157
|
-
|
|
121
|
+
await (0, import_node.writeReadableStreamToWritable)(nodeResponse.body, res);
|
|
158
122
|
} else {
|
|
159
123
|
res.end();
|
|
160
124
|
}
|
|
161
|
-
}
|
|
125
|
+
};
|
|
162
126
|
const getPathWithoutEntry = (pathname, entryPath) => {
|
|
163
127
|
if (entryPath === "/") {
|
|
164
128
|
return pathname;
|
|
@@ -168,11 +132,11 @@ const getPathWithoutEntry = (pathname, entryPath) => {
|
|
|
168
132
|
const matchEntry = (pathname, entries) => {
|
|
169
133
|
return entries.find((entry) => pathname.startsWith(entry.urlPath));
|
|
170
134
|
};
|
|
171
|
-
const handleRequest =
|
|
135
|
+
const handleRequest = async ({
|
|
172
136
|
context,
|
|
173
137
|
serverRoutes,
|
|
174
138
|
distDir
|
|
175
|
-
}) {
|
|
139
|
+
}) => {
|
|
176
140
|
const { method, query } = context;
|
|
177
141
|
const routeId = query[import_constants.LOADER_ID_PARAM];
|
|
178
142
|
if (!routeId || method.toLowerCase() !== "get") {
|
|
@@ -187,7 +151,7 @@ const handleRequest = (_0) => __async(void 0, [_0], function* ({
|
|
|
187
151
|
import_utils.SERVER_BUNDLE_DIRECTORY,
|
|
188
152
|
`${entry.entryName || import_utils.MAIN_ENTRY_NAME}-server-loaders`
|
|
189
153
|
);
|
|
190
|
-
const { routes } =
|
|
154
|
+
const { routes } = await Promise.resolve().then(() => __toESM(require(routesPath)));
|
|
191
155
|
if (!routes) {
|
|
192
156
|
return;
|
|
193
157
|
}
|
|
@@ -208,7 +172,7 @@ const handleRequest = (_0) => __async(void 0, [_0], function* ({
|
|
|
208
172
|
const request = createLoaderRequest(context);
|
|
209
173
|
let response;
|
|
210
174
|
try {
|
|
211
|
-
response =
|
|
175
|
+
response = await callRouteLoader({
|
|
212
176
|
loader: match.route.loader,
|
|
213
177
|
routeId: match.route.id,
|
|
214
178
|
params: match.params,
|
|
@@ -234,7 +198,7 @@ const handleRequest = (_0) => __async(void 0, [_0], function* ({
|
|
|
234
198
|
});
|
|
235
199
|
}
|
|
236
200
|
sendLoaderResponse(res, response);
|
|
237
|
-
}
|
|
201
|
+
};
|
|
238
202
|
var server_default = () => ({
|
|
239
203
|
name: "@modern-js/plugin-data-loader",
|
|
240
204
|
setup: () => ({
|
|
@@ -242,13 +206,13 @@ var server_default = () => ({
|
|
|
242
206
|
serverRoutes,
|
|
243
207
|
distDir
|
|
244
208
|
}) {
|
|
245
|
-
return (context) =>
|
|
209
|
+
return async (context) => {
|
|
246
210
|
return handleRequest({
|
|
247
211
|
serverRoutes,
|
|
248
212
|
distDir,
|
|
249
213
|
context
|
|
250
214
|
});
|
|
251
|
-
}
|
|
215
|
+
};
|
|
252
216
|
}
|
|
253
217
|
})
|
|
254
218
|
});
|
|
File without changes
|
|
@@ -5,7 +5,7 @@ var generateClient = function(param) {
|
|
|
5
5
|
var loadersMap = require(mapFile);
|
|
6
6
|
var requestCode = "";
|
|
7
7
|
var exportsCode = "";
|
|
8
|
-
var requestCreatorPath = path.join(__dirname, "./create-request").replace("/
|
|
8
|
+
var requestCreatorPath = path.join(__dirname, "./create-request").replace("/cjs/cli/", "/esm/cli/").replace(/\\/g, "/");
|
|
9
9
|
var importCode = "\n import { createRequest } from '".concat(requestCreatorPath, "';\n ");
|
|
10
10
|
if (!loaderId) {
|
|
11
11
|
requestCode = Object.keys(loadersMap).map(function(loaderId2) {
|
|
@@ -128,10 +128,10 @@ function loader(source) {
|
|
|
128
128
|
}
|
|
129
129
|
function _loader() {
|
|
130
130
|
_loader = _asyncToGenerator(function(source) {
|
|
131
|
-
var
|
|
131
|
+
var _this__compiler, target, options, code;
|
|
132
132
|
return __generator(this, function(_state) {
|
|
133
133
|
this.cacheable();
|
|
134
|
-
target = (
|
|
134
|
+
target = (_this__compiler = this._compiler) === null || _this__compiler === void 0 ? void 0 : _this__compiler.options.target;
|
|
135
135
|
if (target === "node") {
|
|
136
136
|
return [
|
|
137
137
|
2,
|
|
File without changes
|
|
@@ -313,7 +313,7 @@ var createLoaderHeaders = function(requestHeaders) {
|
|
|
313
313
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
314
314
|
try {
|
|
315
315
|
for(var _iterator = Object.entries(requestHeaders)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
316
|
-
var
|
|
316
|
+
var _step_value = _slicedToArray(_step.value, 2), key = _step_value[0], values = _step_value[1];
|
|
317
317
|
if (values) {
|
|
318
318
|
if (Array.isArray(values)) {
|
|
319
319
|
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
@@ -370,7 +370,7 @@ var createLoaderRequest = function(context) {
|
|
|
370
370
|
};
|
|
371
371
|
var sendLoaderResponse = function() {
|
|
372
372
|
var _ref = _asyncToGenerator(function(res, nodeResponse) {
|
|
373
|
-
var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step,
|
|
373
|
+
var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, key, value;
|
|
374
374
|
return __generator(this, function(_state) {
|
|
375
375
|
switch(_state.label){
|
|
376
376
|
case 0:
|
|
@@ -379,7 +379,7 @@ var sendLoaderResponse = function() {
|
|
|
379
379
|
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
380
380
|
try {
|
|
381
381
|
for(_iterator = nodeResponse.headers.entries()[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
382
|
-
|
|
382
|
+
_step_value = _slicedToArray(_step.value, 2), key = _step_value[0], value = _step_value[1];
|
|
383
383
|
res.setHeader(key, value);
|
|
384
384
|
}
|
|
385
385
|
} catch (err) {
|
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
var __async = (__this, __arguments, generator) => {
|
|
2
|
-
return new Promise((resolve, reject) => {
|
|
3
|
-
var fulfilled = (value) => {
|
|
4
|
-
try {
|
|
5
|
-
step(generator.next(value));
|
|
6
|
-
} catch (e) {
|
|
7
|
-
reject(e);
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
var rejected = (value) => {
|
|
11
|
-
try {
|
|
12
|
-
step(generator.throw(value));
|
|
13
|
-
} catch (e) {
|
|
14
|
-
reject(e);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
1
|
import { compile } from "path-to-regexp";
|
|
22
2
|
import { redirect } from "react-router-dom";
|
|
23
3
|
import { LOADER_ID_PARAM, DIRECT_PARAM } from "../common/constants";
|
|
@@ -45,12 +25,12 @@ const handleRedirectResponse = (res) => {
|
|
|
45
25
|
return res;
|
|
46
26
|
};
|
|
47
27
|
const createRequest = (routeId, method = "get") => {
|
|
48
|
-
return
|
|
28
|
+
return async ({
|
|
49
29
|
params,
|
|
50
30
|
request
|
|
51
|
-
}) {
|
|
31
|
+
}) => {
|
|
52
32
|
const url = getRequestUrl({ params, request, routeId });
|
|
53
|
-
const res =
|
|
33
|
+
const res = await fetch(url, {
|
|
54
34
|
method,
|
|
55
35
|
signal: request.signal
|
|
56
36
|
});
|
|
@@ -58,7 +38,7 @@ const createRequest = (routeId, method = "get") => {
|
|
|
58
38
|
throw res;
|
|
59
39
|
}
|
|
60
40
|
return handleRedirectResponse(res);
|
|
61
|
-
}
|
|
41
|
+
};
|
|
62
42
|
};
|
|
63
43
|
export {
|
|
64
44
|
createRequest,
|
|
@@ -7,7 +7,7 @@ const generateClient = ({
|
|
|
7
7
|
const loadersMap = require(mapFile);
|
|
8
8
|
let requestCode = ``;
|
|
9
9
|
let exportsCode = ``;
|
|
10
|
-
const requestCreatorPath = path.join(__dirname, "./create-request").replace("/
|
|
10
|
+
const requestCreatorPath = path.join(__dirname, "./create-request").replace("/cjs/cli/", "/esm/cli/").replace(/\\/g, "/");
|
|
11
11
|
const importCode = `
|
|
12
12
|
import { createRequest } from '${requestCreatorPath}';
|
|
13
13
|
`;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { generateClient } from "./generate-client";
|
|
2
|
+
async function loader(source) {
|
|
3
|
+
var _a;
|
|
4
|
+
this.cacheable();
|
|
5
|
+
const target = (_a = this._compiler) == null ? void 0 : _a.options.target;
|
|
6
|
+
if (target === "node") {
|
|
7
|
+
return source;
|
|
8
|
+
}
|
|
9
|
+
const options = this.getOptions();
|
|
10
|
+
const code = generateClient({
|
|
11
|
+
mapFile: options.mapFile,
|
|
12
|
+
loaderId: options.loaderId
|
|
13
|
+
});
|
|
14
|
+
return code;
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
loader as default
|
|
18
|
+
};
|
|
File without changes
|
|
@@ -1,42 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
var __async = (__this, __arguments, generator) => {
|
|
21
|
-
return new Promise((resolve, reject) => {
|
|
22
|
-
var fulfilled = (value) => {
|
|
23
|
-
try {
|
|
24
|
-
step(generator.next(value));
|
|
25
|
-
} catch (e) {
|
|
26
|
-
reject(e);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
var rejected = (value) => {
|
|
30
|
-
try {
|
|
31
|
-
step(generator.throw(value));
|
|
32
|
-
} catch (e) {
|
|
33
|
-
reject(e);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
37
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
1
|
import path from "path";
|
|
41
2
|
import {
|
|
42
3
|
installGlobals,
|
|
@@ -62,17 +23,18 @@ const json = (data, init = {}) => {
|
|
|
62
23
|
if (!headers.has("Content-Type")) {
|
|
63
24
|
headers.set("Content-Type", "application/json; charset=utf-8");
|
|
64
25
|
}
|
|
65
|
-
return new NodeResponse(JSON.stringify(data),
|
|
26
|
+
return new NodeResponse(JSON.stringify(data), {
|
|
27
|
+
...responseInit,
|
|
66
28
|
headers
|
|
67
|
-
})
|
|
29
|
+
});
|
|
68
30
|
};
|
|
69
|
-
const callRouteLoader =
|
|
31
|
+
const callRouteLoader = async ({
|
|
70
32
|
routeId,
|
|
71
33
|
loader,
|
|
72
34
|
params,
|
|
73
35
|
request,
|
|
74
36
|
loadContext
|
|
75
|
-
}) {
|
|
37
|
+
}) => {
|
|
76
38
|
if (!loader) {
|
|
77
39
|
throw new Error(
|
|
78
40
|
`You made a ${request.method} request to ${request.url} but did not provide a default component or \`loader\` for route "${routeId}", so there is no way to handle the request.`
|
|
@@ -80,7 +42,7 @@ const callRouteLoader = (_0) => __async(void 0, [_0], function* ({
|
|
|
80
42
|
}
|
|
81
43
|
let result;
|
|
82
44
|
try {
|
|
83
|
-
result =
|
|
45
|
+
result = await loader({
|
|
84
46
|
request,
|
|
85
47
|
params
|
|
86
48
|
});
|
|
@@ -96,7 +58,7 @@ const callRouteLoader = (_0) => __async(void 0, [_0], function* ({
|
|
|
96
58
|
);
|
|
97
59
|
}
|
|
98
60
|
return isResponse(result) ? result : json(result);
|
|
99
|
-
}
|
|
61
|
+
};
|
|
100
62
|
const createLoaderHeaders = (requestHeaders) => {
|
|
101
63
|
const headers = new Headers();
|
|
102
64
|
for (const [key, values] of Object.entries(requestHeaders)) {
|
|
@@ -123,18 +85,18 @@ const createLoaderRequest = (context) => {
|
|
|
123
85
|
};
|
|
124
86
|
return new Request(url.href, init);
|
|
125
87
|
};
|
|
126
|
-
const sendLoaderResponse = (res, nodeResponse) =>
|
|
88
|
+
const sendLoaderResponse = async (res, nodeResponse) => {
|
|
127
89
|
res.statusMessage = nodeResponse.statusText;
|
|
128
90
|
res.statusCode = nodeResponse.status;
|
|
129
91
|
for (const [key, value] of nodeResponse.headers.entries()) {
|
|
130
92
|
res.setHeader(key, value);
|
|
131
93
|
}
|
|
132
94
|
if (nodeResponse.body) {
|
|
133
|
-
|
|
95
|
+
await writeReadableStreamToWritable(nodeResponse.body, res);
|
|
134
96
|
} else {
|
|
135
97
|
res.end();
|
|
136
98
|
}
|
|
137
|
-
}
|
|
99
|
+
};
|
|
138
100
|
const getPathWithoutEntry = (pathname, entryPath) => {
|
|
139
101
|
if (entryPath === "/") {
|
|
140
102
|
return pathname;
|
|
@@ -144,11 +106,11 @@ const getPathWithoutEntry = (pathname, entryPath) => {
|
|
|
144
106
|
const matchEntry = (pathname, entries) => {
|
|
145
107
|
return entries.find((entry) => pathname.startsWith(entry.urlPath));
|
|
146
108
|
};
|
|
147
|
-
const handleRequest =
|
|
109
|
+
const handleRequest = async ({
|
|
148
110
|
context,
|
|
149
111
|
serverRoutes,
|
|
150
112
|
distDir
|
|
151
|
-
}) {
|
|
113
|
+
}) => {
|
|
152
114
|
const { method, query } = context;
|
|
153
115
|
const routeId = query[LOADER_ID_PARAM];
|
|
154
116
|
if (!routeId || method.toLowerCase() !== "get") {
|
|
@@ -163,7 +125,7 @@ const handleRequest = (_0) => __async(void 0, [_0], function* ({
|
|
|
163
125
|
SERVER_BUNDLE_DIRECTORY,
|
|
164
126
|
`${entry.entryName || MAIN_ENTRY_NAME}-server-loaders`
|
|
165
127
|
);
|
|
166
|
-
const { routes } =
|
|
128
|
+
const { routes } = await import(routesPath);
|
|
167
129
|
if (!routes) {
|
|
168
130
|
return;
|
|
169
131
|
}
|
|
@@ -184,7 +146,7 @@ const handleRequest = (_0) => __async(void 0, [_0], function* ({
|
|
|
184
146
|
const request = createLoaderRequest(context);
|
|
185
147
|
let response;
|
|
186
148
|
try {
|
|
187
|
-
response =
|
|
149
|
+
response = await callRouteLoader({
|
|
188
150
|
loader: match.route.loader,
|
|
189
151
|
routeId: match.route.id,
|
|
190
152
|
params: match.params,
|
|
@@ -210,7 +172,7 @@ const handleRequest = (_0) => __async(void 0, [_0], function* ({
|
|
|
210
172
|
});
|
|
211
173
|
}
|
|
212
174
|
sendLoaderResponse(res, response);
|
|
213
|
-
}
|
|
175
|
+
};
|
|
214
176
|
var server_default = () => ({
|
|
215
177
|
name: "@modern-js/plugin-data-loader",
|
|
216
178
|
setup: () => ({
|
|
@@ -218,13 +180,13 @@ var server_default = () => ({
|
|
|
218
180
|
serverRoutes,
|
|
219
181
|
distDir
|
|
220
182
|
}) {
|
|
221
|
-
return (context) =>
|
|
183
|
+
return async (context) => {
|
|
222
184
|
return handleRequest({
|
|
223
185
|
serverRoutes,
|
|
224
186
|
distDir,
|
|
225
187
|
context
|
|
226
188
|
});
|
|
227
|
-
}
|
|
189
|
+
};
|
|
228
190
|
}
|
|
229
191
|
})
|
|
230
192
|
});
|
package/package.json
CHANGED
|
@@ -11,20 +11,19 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "2.
|
|
14
|
+
"version": "2.5.0",
|
|
15
15
|
"jsnext:source": "./src/index.ts",
|
|
16
16
|
"types": "./dist/types/index.d.ts",
|
|
17
|
-
"main": "./dist/
|
|
18
|
-
"module": "./dist/
|
|
19
|
-
"jsnext:modern": "./dist/js/modern/index.js",
|
|
17
|
+
"main": "./dist/cjs/index.js",
|
|
18
|
+
"module": "./dist/esm/index.js",
|
|
20
19
|
"exports": {
|
|
21
20
|
"./loader": {
|
|
22
21
|
"jsnext:source": "./src/cli/loader.ts",
|
|
23
|
-
"default": "./dist/
|
|
22
|
+
"default": "./dist/cjs/cli/loader.js"
|
|
24
23
|
},
|
|
25
24
|
"./server": {
|
|
26
25
|
"jsnext:source": "./src/server/index.ts",
|
|
27
|
-
"default": "./dist/
|
|
26
|
+
"default": "./dist/cjs/server/index.js"
|
|
28
27
|
}
|
|
29
28
|
},
|
|
30
29
|
"typesVersions": {
|
|
@@ -43,7 +42,7 @@
|
|
|
43
42
|
"@remix-run/node": "^1.9.0",
|
|
44
43
|
"path-to-regexp": "^6.2.0",
|
|
45
44
|
"react-router-dom": "^6.6.0",
|
|
46
|
-
"@modern-js/utils": "2.
|
|
45
|
+
"@modern-js/utils": "2.5.0"
|
|
47
46
|
},
|
|
48
47
|
"devDependencies": {
|
|
49
48
|
"@types/babel__core": "^7.1.15",
|
|
@@ -58,11 +57,11 @@
|
|
|
58
57
|
"typescript": "^4",
|
|
59
58
|
"webpack": "^5.75.0",
|
|
60
59
|
"webpack-chain": "^6.5.1",
|
|
61
|
-
"@modern-js/core": "2.
|
|
62
|
-
"@modern-js/server-core": "2.
|
|
63
|
-
"@modern-js/types": "2.
|
|
64
|
-
"@scripts/jest-config": "2.
|
|
65
|
-
"@scripts/build": "2.
|
|
60
|
+
"@modern-js/core": "2.5.0",
|
|
61
|
+
"@modern-js/server-core": "2.5.0",
|
|
62
|
+
"@modern-js/types": "2.5.0",
|
|
63
|
+
"@scripts/jest-config": "2.5.0",
|
|
64
|
+
"@scripts/build": "2.5.0"
|
|
66
65
|
},
|
|
67
66
|
"sideEffects": false,
|
|
68
67
|
"publishConfig": {
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
var __async = (__this, __arguments, generator) => {
|
|
2
|
-
return new Promise((resolve, reject) => {
|
|
3
|
-
var fulfilled = (value) => {
|
|
4
|
-
try {
|
|
5
|
-
step(generator.next(value));
|
|
6
|
-
} catch (e) {
|
|
7
|
-
reject(e);
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
var rejected = (value) => {
|
|
11
|
-
try {
|
|
12
|
-
step(generator.throw(value));
|
|
13
|
-
} catch (e) {
|
|
14
|
-
reject(e);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
import { generateClient } from "./generate-client";
|
|
22
|
-
function loader(source) {
|
|
23
|
-
return __async(this, null, function* () {
|
|
24
|
-
var _a;
|
|
25
|
-
this.cacheable();
|
|
26
|
-
const target = (_a = this._compiler) == null ? void 0 : _a.options.target;
|
|
27
|
-
if (target === "node") {
|
|
28
|
-
return source;
|
|
29
|
-
}
|
|
30
|
-
const options = this.getOptions();
|
|
31
|
-
const code = generateClient({
|
|
32
|
-
mapFile: options.mapFile,
|
|
33
|
-
loaderId: options.loaderId
|
|
34
|
-
});
|
|
35
|
-
return code;
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
export {
|
|
39
|
-
loader as default
|
|
40
|
-
};
|