@modern-js/plugin-data-loader 0.0.0-next-1680077090761 → 0.0.0-next-1680093705168

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 CHANGED
@@ -1,21 +1,27 @@
1
1
  # @modern-js/plugin-data-loader
2
2
 
3
- ## 0.0.0-next-1680077090761
3
+ ## 0.0.0-next-1680093705168
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - e2466a107: fix: remove nestedRoutes file from @modern-js/utils
7
+ - 5d624fdc1d: feat: assets and data prefetching is supported
8
+ feat: 支持资源和数据预加载
9
+ - e2466a1071: fix: remove nestedRoutes file from @modern-js/utils
8
10
  fix: 将 nestedRoutes 从 @modern-js/utils 中移除
9
- - 381a3b9f3: feat(utils): move universal utils to the universal folder
11
+ - 381a3b9f32: feat(utils): move universal utils to the universal folder
10
12
 
11
13
  feat(utils): 将运行时使用的 utils 移动到 universal 目录
12
14
 
13
- - Updated dependencies [e2466a107]
14
- - Updated dependencies [02bb383cb]
15
- - Updated dependencies [381a3b9f3]
16
- - Updated dependencies [7a60f1071]
17
- - Updated dependencies [274b2e535]
18
- - @modern-js/utils@0.0.0-next-1680077090761
15
+ - Updated dependencies [cfb058fbf6]
16
+ - Updated dependencies [1d045b84ef]
17
+ - Updated dependencies [5d624fdc1d]
18
+ - Updated dependencies [e2466a1071]
19
+ - Updated dependencies [02bb383cb0]
20
+ - Updated dependencies [381a3b9f32]
21
+ - Updated dependencies [7a60f1071d]
22
+ - Updated dependencies [274b2e535a]
23
+ - Updated dependencies [b9e1c546bd]
24
+ - @modern-js/utils@0.0.0-next-1680093705168
19
25
 
20
26
  ## 2.10.0
21
27
 
@@ -25,9 +25,9 @@ module.exports = __toCommonJS(runtime_exports);
25
25
  var import_node = require("@remix-run/node");
26
26
  var import_remix_router = require("@modern-js/utils/universal/remix-router");
27
27
  var import_lodash = require("@modern-js/utils/lodash");
28
+ var import_nestedRoutes = require("@modern-js/utils/universal/nestedRoutes");
28
29
  var import_constants = require("../common/constants");
29
30
  var import_utils = require("../common/utils");
30
- var import_nestedRoutes = require("./nestedRoutes");
31
31
  var import_response = require("./response");
32
32
  (0, import_node.installGlobals)();
33
33
  const redirectStatusCodes = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]);
@@ -178,9 +178,9 @@ var __generator = this && this.__generator || function(thisArg, body) {
178
178
  import { installGlobals, writeReadableStreamToWritable, Response as NodeResponse } from "@remix-run/node";
179
179
  import { createStaticHandler, ErrorResponse, UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL } from "@modern-js/utils/universal/remix-router";
180
180
  import { isPlainObject } from "@modern-js/utils/lodash";
181
+ import { transformNestedRoutes } from "@modern-js/utils/universal/nestedRoutes";
181
182
  import { CONTENT_TYPE_DEFERRED, LOADER_ID_PARAM } from "../common/constants";
182
183
  import { matchEntry } from "../common/utils";
183
- import { transformNestedRoutes } from "./nestedRoutes";
184
184
  import { createDeferredReadableStream } from "./response";
185
185
  installGlobals();
186
186
  var redirectStatusCodes = /* @__PURE__ */ new Set([
@@ -9,9 +9,9 @@ import {
9
9
  UNSAFE_DEFERRED_SYMBOL as DEFERRED_SYMBOL
10
10
  } from "@modern-js/utils/universal/remix-router";
11
11
  import { isPlainObject } from "@modern-js/utils/lodash";
12
+ import { transformNestedRoutes } from "@modern-js/utils/universal/nestedRoutes";
12
13
  import { CONTENT_TYPE_DEFERRED, LOADER_ID_PARAM } from "../common/constants";
13
14
  import { matchEntry } from "../common/utils";
14
- import { transformNestedRoutes } from "./nestedRoutes";
15
15
  import { createDeferredReadableStream } from "./response";
16
16
  installGlobals();
17
17
  const redirectStatusCodes = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]);
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "0.0.0-next-1680077090761",
14
+ "version": "0.0.0-next-1680093705168",
15
15
  "engines": {
16
16
  "node": ">=14.17.6"
17
17
  },
@@ -55,7 +55,7 @@
55
55
  "@remix-run/node": "^1.12.0",
56
56
  "path-to-regexp": "^6.2.0",
57
57
  "react-router-dom": "^6.8.1",
58
- "@modern-js/utils": "0.0.0-next-1680077090761"
58
+ "@modern-js/utils": "0.0.0-next-1680093705168"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/babel__core": "^7.1.15",
@@ -72,11 +72,11 @@
72
72
  "webpack-chain": "^6.5.1",
73
73
  "react": ">=17.0.0",
74
74
  "react-router-dom": "^6.8.1",
75
- "@modern-js/core": "0.0.0-next-1680077090761",
76
- "@modern-js/server-core": "0.0.0-next-1680077090761",
77
- "@modern-js/types": "0.0.0-next-1680077090761",
78
- "@scripts/build": "0.0.0-next-1680077090761",
79
- "@scripts/jest-config": "0.0.0-next-1680077090761"
75
+ "@modern-js/core": "0.0.0-next-1680093705168",
76
+ "@modern-js/server-core": "0.0.0-next-1680093705168",
77
+ "@modern-js/types": "0.0.0-next-1680093705168",
78
+ "@scripts/build": "0.0.0-next-1680093705168",
79
+ "@scripts/jest-config": "0.0.0-next-1680093705168"
80
80
  },
81
81
  "peerDependencies": {
82
82
  "react": ">=17.0.0",
@@ -1,114 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
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 nestedRoutes_exports = {};
19
- __export(nestedRoutes_exports, {
20
- renderNestedRoute: () => renderNestedRoute,
21
- transformNestedRoutes: () => transformNestedRoutes
22
- });
23
- module.exports = __toCommonJS(nestedRoutes_exports);
24
- var import_jsx_runtime = require("react/jsx-runtime");
25
- var import_react = require("react");
26
- var import_react_router_dom = require("react-router-dom");
27
- const transformNestedRoutes = (routes) => {
28
- const routeElements = [];
29
- for (const route of routes) {
30
- const routeElement = renderNestedRoute(route);
31
- routeElements.push(routeElement);
32
- }
33
- return (0, import_react_router_dom.createRoutesFromElements)(routeElements);
34
- };
35
- const renderNestedRoute = (nestedRoute, options = {}) => {
36
- const { children, index, id, component, isRoot, lazyImport } = nestedRoute;
37
- const Component = component;
38
- const { parent, DeferredDataComponent } = options;
39
- const routeProps = {
40
- caseSensitive: nestedRoute.caseSensitive,
41
- path: nestedRoute.path,
42
- id: nestedRoute.id,
43
- loader: createLoader(nestedRoute),
44
- action: nestedRoute.action,
45
- hasErrorBoundary: nestedRoute.hasErrorBoundary,
46
- shouldRevalidate: nestedRoute.shouldRevalidate,
47
- handle: nestedRoute.handle,
48
- index: nestedRoute.index,
49
- element: nestedRoute.element,
50
- errorElement: nestedRoute.errorElement
51
- };
52
- if (nestedRoute.error) {
53
- const errorElement = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(nestedRoute.error, {});
54
- routeProps.errorElement = errorElement;
55
- }
56
- let element;
57
- if (Component) {
58
- if ((parent == null ? void 0 : parent.loading) && lazyImport) {
59
- const Loading = parent.loading;
60
- if (isLoadableComponent(Component)) {
61
- element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { fallback: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Loading, {}) });
62
- } else {
63
- element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Suspense, { fallback: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Loading, {}), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {}) });
64
- }
65
- } else if (isLoadableComponent(Component) && lazyImport) {
66
- element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {});
67
- } else if (isRoot) {
68
- element = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
69
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {}),
70
- typeof document === "undefined" && DeferredDataComponent && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DeferredDataComponent, {})
71
- ] });
72
- } else if (lazyImport) {
73
- element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Suspense, { fallback: null, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {}) });
74
- } else {
75
- element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {});
76
- }
77
- } else {
78
- nestedRoute.loading = parent == null ? void 0 : parent.loading;
79
- }
80
- if (element) {
81
- routeProps.element = element;
82
- }
83
- const childElements = children == null ? void 0 : children.map((childRoute) => {
84
- return renderNestedRoute(childRoute, { parent: nestedRoute });
85
- });
86
- const routeElement = index ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_router_dom.Route, { ...routeProps, index: true }, id) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_router_dom.Route, { ...routeProps, index: false, children: childElements }, id);
87
- return routeElement;
88
- };
89
- function createLoader(route) {
90
- const { loader } = route;
91
- if (loader) {
92
- return (args) => {
93
- if (typeof route.lazyImport === "function") {
94
- route.lazyImport();
95
- }
96
- return loader(args);
97
- };
98
- } else {
99
- return () => {
100
- if (typeof route.lazyImport === "function") {
101
- route.lazyImport();
102
- }
103
- return null;
104
- };
105
- }
106
- }
107
- function isLoadableComponent(component) {
108
- return component && component.displayName === "Loadable" && component.preload && typeof component.preload === "function";
109
- }
110
- // Annotate the CommonJS export names for ESM import in node:
111
- 0 && (module.exports = {
112
- renderNestedRoute,
113
- transformNestedRoutes
114
- });
@@ -1,174 +0,0 @@
1
- function _defineProperty(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value: value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
14
- function _objectSpread(target) {
15
- for(var i = 1; i < arguments.length; i++){
16
- var source = arguments[i] != null ? arguments[i] : {};
17
- var ownKeys = Object.keys(source);
18
- if (typeof Object.getOwnPropertySymbols === "function") {
19
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
20
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
21
- }));
22
- }
23
- ownKeys.forEach(function(key) {
24
- _defineProperty(target, key, source[key]);
25
- });
26
- }
27
- return target;
28
- }
29
- function ownKeys(object, enumerableOnly) {
30
- var keys = Object.keys(object);
31
- if (Object.getOwnPropertySymbols) {
32
- var symbols = Object.getOwnPropertySymbols(object);
33
- if (enumerableOnly) {
34
- symbols = symbols.filter(function(sym) {
35
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
36
- });
37
- }
38
- keys.push.apply(keys, symbols);
39
- }
40
- return keys;
41
- }
42
- function _objectSpreadProps(target, source) {
43
- source = source != null ? source : {};
44
- if (Object.getOwnPropertyDescriptors) {
45
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
46
- } else {
47
- ownKeys(Object(source)).forEach(function(key) {
48
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
49
- });
50
- }
51
- return target;
52
- }
53
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
54
- import { Suspense } from "react";
55
- import { createRoutesFromElements, Route } from "react-router-dom";
56
- var transformNestedRoutes = function(routes) {
57
- var routeElements = [];
58
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
59
- try {
60
- for(var _iterator = routes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
61
- var route = _step.value;
62
- var routeElement = renderNestedRoute(route);
63
- routeElements.push(routeElement);
64
- }
65
- } catch (err) {
66
- _didIteratorError = true;
67
- _iteratorError = err;
68
- } finally{
69
- try {
70
- if (!_iteratorNormalCompletion && _iterator.return != null) {
71
- _iterator.return();
72
- }
73
- } finally{
74
- if (_didIteratorError) {
75
- throw _iteratorError;
76
- }
77
- }
78
- }
79
- return createRoutesFromElements(routeElements);
80
- };
81
- var renderNestedRoute = function(nestedRoute) {
82
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
83
- var children = nestedRoute.children, index = nestedRoute.index, id = nestedRoute.id, component = nestedRoute.component, isRoot = nestedRoute.isRoot, lazyImport = nestedRoute.lazyImport;
84
- var Component = component;
85
- var parent = options.parent, DeferredDataComponent = options.DeferredDataComponent;
86
- var routeProps = {
87
- caseSensitive: nestedRoute.caseSensitive,
88
- path: nestedRoute.path,
89
- id: nestedRoute.id,
90
- loader: createLoader(nestedRoute),
91
- action: nestedRoute.action,
92
- hasErrorBoundary: nestedRoute.hasErrorBoundary,
93
- shouldRevalidate: nestedRoute.shouldRevalidate,
94
- handle: nestedRoute.handle,
95
- index: nestedRoute.index,
96
- element: nestedRoute.element,
97
- errorElement: nestedRoute.errorElement
98
- };
99
- if (nestedRoute.error) {
100
- var errorElement = /* @__PURE__ */ jsx(nestedRoute.error, {});
101
- routeProps.errorElement = errorElement;
102
- }
103
- var element;
104
- if (Component) {
105
- if ((parent === null || parent === void 0 ? void 0 : parent.loading) && lazyImport) {
106
- var Loading = parent.loading;
107
- if (isLoadableComponent(Component)) {
108
- element = /* @__PURE__ */ jsx(Component, {
109
- fallback: /* @__PURE__ */ jsx(Loading, {})
110
- });
111
- } else {
112
- element = /* @__PURE__ */ jsx(Suspense, {
113
- fallback: /* @__PURE__ */ jsx(Loading, {}),
114
- children: /* @__PURE__ */ jsx(Component, {})
115
- });
116
- }
117
- } else if (isLoadableComponent(Component) && lazyImport) {
118
- element = /* @__PURE__ */ jsx(Component, {});
119
- } else if (isRoot) {
120
- element = /* @__PURE__ */ jsxs(Fragment, {
121
- children: [
122
- /* @__PURE__ */ jsx(Component, {}),
123
- typeof document === "undefined" && DeferredDataComponent && /* @__PURE__ */ jsx(DeferredDataComponent, {})
124
- ]
125
- });
126
- } else if (lazyImport) {
127
- element = /* @__PURE__ */ jsx(Suspense, {
128
- fallback: null,
129
- children: /* @__PURE__ */ jsx(Component, {})
130
- });
131
- } else {
132
- element = /* @__PURE__ */ jsx(Component, {});
133
- }
134
- } else {
135
- nestedRoute.loading = parent === null || parent === void 0 ? void 0 : parent.loading;
136
- }
137
- if (element) {
138
- routeProps.element = element;
139
- }
140
- var childElements = children === null || children === void 0 ? void 0 : children.map(function(childRoute) {
141
- return renderNestedRoute(childRoute, {
142
- parent: nestedRoute
143
- });
144
- });
145
- var routeElement = index ? /* @__PURE__ */ jsx(Route, _objectSpreadProps(_objectSpread({}, routeProps), {
146
- index: true
147
- }), id) : /* @__PURE__ */ jsx(Route, _objectSpreadProps(_objectSpread({}, routeProps), {
148
- index: false,
149
- children: childElements
150
- }), id);
151
- return routeElement;
152
- };
153
- function createLoader(route) {
154
- var loader = route.loader;
155
- if (loader) {
156
- return function(args) {
157
- if (typeof route.lazyImport === "function") {
158
- route.lazyImport();
159
- }
160
- return loader(args);
161
- };
162
- } else {
163
- return function() {
164
- if (typeof route.lazyImport === "function") {
165
- route.lazyImport();
166
- }
167
- return null;
168
- };
169
- }
170
- }
171
- function isLoadableComponent(component) {
172
- return component && component.displayName === "Loadable" && component.preload && typeof component.preload === "function";
173
- }
174
- export { renderNestedRoute, transformNestedRoutes };
@@ -1,93 +0,0 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import { Suspense } from "react";
3
- import {
4
- createRoutesFromElements,
5
- Route
6
- } from "react-router-dom";
7
- const transformNestedRoutes = (routes) => {
8
- const routeElements = [];
9
- for (const route of routes) {
10
- const routeElement = renderNestedRoute(route);
11
- routeElements.push(routeElement);
12
- }
13
- return createRoutesFromElements(routeElements);
14
- };
15
- const renderNestedRoute = (nestedRoute, options = {}) => {
16
- const { children, index, id, component, isRoot, lazyImport } = nestedRoute;
17
- const Component = component;
18
- const { parent, DeferredDataComponent } = options;
19
- const routeProps = {
20
- caseSensitive: nestedRoute.caseSensitive,
21
- path: nestedRoute.path,
22
- id: nestedRoute.id,
23
- loader: createLoader(nestedRoute),
24
- action: nestedRoute.action,
25
- hasErrorBoundary: nestedRoute.hasErrorBoundary,
26
- shouldRevalidate: nestedRoute.shouldRevalidate,
27
- handle: nestedRoute.handle,
28
- index: nestedRoute.index,
29
- element: nestedRoute.element,
30
- errorElement: nestedRoute.errorElement
31
- };
32
- if (nestedRoute.error) {
33
- const errorElement = /* @__PURE__ */ jsx(nestedRoute.error, {});
34
- routeProps.errorElement = errorElement;
35
- }
36
- let element;
37
- if (Component) {
38
- if ((parent == null ? void 0 : parent.loading) && lazyImport) {
39
- const Loading = parent.loading;
40
- if (isLoadableComponent(Component)) {
41
- element = /* @__PURE__ */ jsx(Component, { fallback: /* @__PURE__ */ jsx(Loading, {}) });
42
- } else {
43
- element = /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Loading, {}), children: /* @__PURE__ */ jsx(Component, {}) });
44
- }
45
- } else if (isLoadableComponent(Component) && lazyImport) {
46
- element = /* @__PURE__ */ jsx(Component, {});
47
- } else if (isRoot) {
48
- element = /* @__PURE__ */ jsxs(Fragment, { children: [
49
- /* @__PURE__ */ jsx(Component, {}),
50
- typeof document === "undefined" && DeferredDataComponent && /* @__PURE__ */ jsx(DeferredDataComponent, {})
51
- ] });
52
- } else if (lazyImport) {
53
- element = /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(Component, {}) });
54
- } else {
55
- element = /* @__PURE__ */ jsx(Component, {});
56
- }
57
- } else {
58
- nestedRoute.loading = parent == null ? void 0 : parent.loading;
59
- }
60
- if (element) {
61
- routeProps.element = element;
62
- }
63
- const childElements = children == null ? void 0 : children.map((childRoute) => {
64
- return renderNestedRoute(childRoute, { parent: nestedRoute });
65
- });
66
- const routeElement = index ? /* @__PURE__ */ jsx(Route, { ...routeProps, index: true }, id) : /* @__PURE__ */ jsx(Route, { ...routeProps, index: false, children: childElements }, id);
67
- return routeElement;
68
- };
69
- function createLoader(route) {
70
- const { loader } = route;
71
- if (loader) {
72
- return (args) => {
73
- if (typeof route.lazyImport === "function") {
74
- route.lazyImport();
75
- }
76
- return loader(args);
77
- };
78
- } else {
79
- return () => {
80
- if (typeof route.lazyImport === "function") {
81
- route.lazyImport();
82
- }
83
- return null;
84
- };
85
- }
86
- }
87
- function isLoadableComponent(component) {
88
- return component && component.displayName === "Loadable" && component.preload && typeof component.preload === "function";
89
- }
90
- export {
91
- renderNestedRoute,
92
- transformNestedRoutes
93
- };
@@ -1,6 +0,0 @@
1
- import type { NestedRoute } from '@modern-js/types';
2
- export declare const transformNestedRoutes: (routes: NestedRoute[]) => import("react-router-dom").RouteObject[];
3
- export declare const renderNestedRoute: (nestedRoute: NestedRoute, options?: {
4
- parent?: NestedRoute;
5
- DeferredDataComponent?: () => JSX.Element | null;
6
- }) => JSX.Element;