@modern-js/utils 2.6.0 → 2.7.1-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/CHANGELOG.md +19 -0
- package/README.md +2 -2
- package/dist/analyzeProject.d.ts +2 -1
- package/dist/analyzeProject.js +8 -2
- package/dist/getTargetDir.d.ts +1 -0
- package/dist/getTargetDir.js +41 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/is/index.d.ts +7 -1
- package/dist/is/index.js +13 -3
- package/dist/is/{node-env.js → nodeEnv.js} +3 -3
- package/dist/nestedRoutes.d.ts +11 -0
- package/dist/nestedRoutes.js +129 -0
- package/dist/prettyInstructions.d.ts +1 -6
- package/dist/prettyInstructions.js +1 -4
- package/dist/remix-router.d.ts +1 -0
- package/dist/remix-router.js +17 -0
- package/dist/serialize.d.ts +1 -0
- package/dist/serialize.js +40 -0
- package/dist/{test-utils.js → testUtils.js} +3 -3
- package/package.json +41 -7
- /package/dist/is/{node-env.d.ts → nodeEnv.d.ts} +0 -0
- /package/dist/{test-utils.d.ts → testUtils.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @modern-js/utils
|
|
2
2
|
|
|
3
|
+
## 2.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- dcad887024: feat: support deferred data for streaming ssr
|
|
8
|
+
feat: 流式渲染支持 deferred data
|
|
9
|
+
- 84bfb439b8: feat: support custom apiDir, lambdaDir and style of writing for bff
|
|
10
|
+
feat: 支持定制 api 目录,lambda 目录,bff 的写法
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- 0f15fc597c: fix: remove nestedRoutes export
|
|
15
|
+
fix: 移除 nestedRoutes 导出
|
|
16
|
+
- a4672f7c16: fix: lock @modern-js/utils/ssr by webpack alias
|
|
17
|
+
fix: 通过 webpack 别名将 @modern-js/utils/ssr 锁到同一版本
|
|
18
|
+
- 7fff9020e1: chore: make file naming consistent
|
|
19
|
+
|
|
20
|
+
chore: 统一文件命名为小驼峰格式
|
|
21
|
+
|
|
3
22
|
## 2.6.0
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -19,8 +19,8 @@ Please follow [Quick Start](https://modernjs.dev/en/guides/get-started/quick-sta
|
|
|
19
19
|
|
|
20
20
|
## Contributing
|
|
21
21
|
|
|
22
|
-
Please read the [Contributing Guide](https://github.com/
|
|
22
|
+
Please read the [Contributing Guide](https://github.com/web-infra-dev/modern.js/blob/main/CONTRIBUTING.md).
|
|
23
23
|
|
|
24
24
|
## License
|
|
25
25
|
|
|
26
|
-
Modern.js is [MIT licensed](https://github.com/
|
|
26
|
+
Modern.js is [MIT licensed](https://github.com/web-infra-dev/modern.js/blob/main/LICENSE).
|
package/dist/analyzeProject.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export declare const isApiOnly: (appDirectory: string, entryDir?: string) => Promise<boolean>;
|
|
1
|
+
export declare const isApiOnly: (appDirectory: string, entryDir?: string) => Promise<boolean>;
|
|
2
|
+
export declare const isWebOnly: () => Promise<boolean>;
|
package/dist/analyzeProject.js
CHANGED
|
@@ -47,7 +47,8 @@ var __async = (__this, __arguments, generator) => {
|
|
|
47
47
|
};
|
|
48
48
|
var analyzeProject_exports = {};
|
|
49
49
|
__export(analyzeProject_exports, {
|
|
50
|
-
isApiOnly: () => isApiOnly
|
|
50
|
+
isApiOnly: () => isApiOnly,
|
|
51
|
+
isWebOnly: () => isWebOnly
|
|
51
52
|
});
|
|
52
53
|
module.exports = __toCommonJS(analyzeProject_exports);
|
|
53
54
|
var path = __toESM(require("path"));
|
|
@@ -58,7 +59,12 @@ const isApiOnly = (appDirectory, entryDir) => __async(void 0, null, function* ()
|
|
|
58
59
|
const options = (0, import_compiled.minimist)(process.argv.slice(2));
|
|
59
60
|
return !existSrc || Boolean(options["api-only"]);
|
|
60
61
|
});
|
|
62
|
+
const isWebOnly = () => __async(void 0, null, function* () {
|
|
63
|
+
const options = (0, import_compiled.minimist)(process.argv.slice(2));
|
|
64
|
+
return Boolean(options["web-only"]);
|
|
65
|
+
});
|
|
61
66
|
// Annotate the CommonJS export names for ESM import in node:
|
|
62
67
|
0 && (module.exports = {
|
|
63
|
-
isApiOnly
|
|
68
|
+
isApiOnly,
|
|
69
|
+
isWebOnly
|
|
64
70
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getTargetDir: (from: string, baseDir: string, targetBaseDir: string) => string;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
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 getTargetDir_exports = {};
|
|
29
|
+
__export(getTargetDir_exports, {
|
|
30
|
+
getTargetDir: () => getTargetDir
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(getTargetDir_exports);
|
|
33
|
+
var path = __toESM(require("path"));
|
|
34
|
+
const getTargetDir = (from, baseDir, targetBaseDir) => {
|
|
35
|
+
const relativePath = path.relative(baseDir, from);
|
|
36
|
+
return path.resolve(targetBaseDir, relativePath);
|
|
37
|
+
};
|
|
38
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
39
|
+
0 && (module.exports = {
|
|
40
|
+
getTargetDir
|
|
41
|
+
});
|
package/dist/index.d.ts
CHANGED
|
@@ -32,13 +32,13 @@ export * from './nodeEnv';
|
|
|
32
32
|
export * from './wait';
|
|
33
33
|
export * from './emptyDir';
|
|
34
34
|
export * from './getServerConfig';
|
|
35
|
-
export * from './ssr';
|
|
36
35
|
export * from './tryResolve';
|
|
37
36
|
export * from './analyzeProject';
|
|
38
37
|
export * from './chainId';
|
|
39
38
|
export * from './version';
|
|
40
39
|
export * from './plugin';
|
|
41
40
|
export * from './routes';
|
|
42
|
-
export * from './
|
|
41
|
+
export * from './testUtils';
|
|
43
42
|
export * from './getCoreJsVersion';
|
|
44
|
-
export * from './react';
|
|
43
|
+
export * from './react';
|
|
44
|
+
export * from './getTargetDir';
|
package/dist/index.js
CHANGED
|
@@ -48,13 +48,13 @@ __reExport(src_exports, require("./nodeEnv"), module.exports);
|
|
|
48
48
|
__reExport(src_exports, require("./wait"), module.exports);
|
|
49
49
|
__reExport(src_exports, require("./emptyDir"), module.exports);
|
|
50
50
|
__reExport(src_exports, require("./getServerConfig"), module.exports);
|
|
51
|
-
__reExport(src_exports, require("./ssr"), module.exports);
|
|
52
51
|
__reExport(src_exports, require("./tryResolve"), module.exports);
|
|
53
52
|
__reExport(src_exports, require("./analyzeProject"), module.exports);
|
|
54
53
|
__reExport(src_exports, require("./chainId"), module.exports);
|
|
55
54
|
__reExport(src_exports, require("./version"), module.exports);
|
|
56
55
|
__reExport(src_exports, require("./plugin"), module.exports);
|
|
57
56
|
__reExport(src_exports, require("./routes"), module.exports);
|
|
58
|
-
__reExport(src_exports, require("./
|
|
57
|
+
__reExport(src_exports, require("./testUtils"), module.exports);
|
|
59
58
|
__reExport(src_exports, require("./getCoreJsVersion"), module.exports);
|
|
60
59
|
__reExport(src_exports, require("./react"), module.exports);
|
|
60
|
+
__reExport(src_exports, require("./getTargetDir"), module.exports);
|
package/dist/is/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
interface EntryPoint {
|
|
2
|
+
entryName: string;
|
|
3
|
+
}
|
|
1
4
|
/**
|
|
2
5
|
* Check if the package name is in dependencies or devDependencies.
|
|
3
6
|
*
|
|
@@ -5,6 +8,7 @@
|
|
|
5
8
|
* @param name - Package name.
|
|
6
9
|
* @returns True if the name is in dependencies or devDependencies, false otherwise.
|
|
7
10
|
*/
|
|
11
|
+
|
|
8
12
|
export declare const isDepExists: (appDirectory: string, name: string) => boolean;
|
|
9
13
|
/**
|
|
10
14
|
* Is typescript project.
|
|
@@ -47,6 +51,8 @@ export declare const isRouterV5: (config: {
|
|
|
47
51
|
} | boolean;
|
|
48
52
|
};
|
|
49
53
|
}) => boolean;
|
|
50
|
-
export
|
|
54
|
+
export declare const isSSGEntry: (config: any, entryName: string, entrypoints: EntryPoint[]) => boolean;
|
|
55
|
+
export declare const isSingleEntry: (entrypoints: EntryPoint[]) => boolean;
|
|
56
|
+
export * from './nodeEnv';
|
|
51
57
|
export * from './platform';
|
|
52
58
|
export * from './type';
|
package/dist/is/index.js
CHANGED
|
@@ -32,8 +32,10 @@ __export(is_exports, {
|
|
|
32
32
|
isEmpty: () => isEmpty,
|
|
33
33
|
isFastRefresh: () => isFastRefresh,
|
|
34
34
|
isRouterV5: () => isRouterV5,
|
|
35
|
+
isSSGEntry: () => isSSGEntry,
|
|
35
36
|
isSSR: () => isSSR,
|
|
36
37
|
isServiceWorker: () => isServiceWorker,
|
|
38
|
+
isSingleEntry: () => isSingleEntry,
|
|
37
39
|
isTypescript: () => isTypescript,
|
|
38
40
|
isUseSSRBundle: () => isUseSSRBundle
|
|
39
41
|
});
|
|
@@ -41,8 +43,8 @@ module.exports = __toCommonJS(is_exports);
|
|
|
41
43
|
var import_fs = __toESM(require("fs"));
|
|
42
44
|
var import_path = __toESM(require("path"));
|
|
43
45
|
var import_debug = require("../debug");
|
|
44
|
-
var
|
|
45
|
-
__reExport(is_exports, require("./
|
|
46
|
+
var import_nodeEnv = require("./nodeEnv");
|
|
47
|
+
__reExport(is_exports, require("./nodeEnv"), module.exports);
|
|
46
48
|
__reExport(is_exports, require("./platform"), module.exports);
|
|
47
49
|
__reExport(is_exports, require("./type"), module.exports);
|
|
48
50
|
const debug = (0, import_debug.createDebugger)("judge-depExists");
|
|
@@ -86,19 +88,27 @@ const isServiceWorker = (config) => {
|
|
|
86
88
|
}
|
|
87
89
|
return false;
|
|
88
90
|
};
|
|
89
|
-
const isFastRefresh = () => (0,
|
|
91
|
+
const isFastRefresh = () => (0, import_nodeEnv.isDev)() && process.env.FAST_REFRESH !== "false";
|
|
90
92
|
const isRouterV5 = (config) => {
|
|
91
93
|
var _a, _b, _c;
|
|
92
94
|
return typeof ((_a = config.runtime) == null ? void 0 : _a.router) !== "boolean" && ((_c = (_b = config == null ? void 0 : config.runtime) == null ? void 0 : _b.router) == null ? void 0 : _c.mode) === "react-router-5";
|
|
93
95
|
};
|
|
96
|
+
const isSSGEntry = (config, entryName, entrypoints) => {
|
|
97
|
+
const ssgConfig = config.output.ssg;
|
|
98
|
+
const useSSG = isSingleEntry(entrypoints) ? Boolean(ssgConfig) : ssgConfig === true || typeof (ssgConfig == null ? void 0 : ssgConfig[0]) === "function" || Boolean(ssgConfig == null ? void 0 : ssgConfig[entryName]);
|
|
99
|
+
return useSSG;
|
|
100
|
+
};
|
|
101
|
+
const isSingleEntry = (entrypoints) => entrypoints.length === 1 && entrypoints[0].entryName === "main";
|
|
94
102
|
// Annotate the CommonJS export names for ESM import in node:
|
|
95
103
|
0 && (module.exports = {
|
|
96
104
|
isDepExists,
|
|
97
105
|
isEmpty,
|
|
98
106
|
isFastRefresh,
|
|
99
107
|
isRouterV5,
|
|
108
|
+
isSSGEntry,
|
|
100
109
|
isSSR,
|
|
101
110
|
isServiceWorker,
|
|
111
|
+
isSingleEntry,
|
|
102
112
|
isTypescript,
|
|
103
113
|
isUseSSRBundle
|
|
104
114
|
});
|
|
@@ -15,15 +15,15 @@ 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
|
|
19
|
-
__export(
|
|
18
|
+
var nodeEnv_exports = {};
|
|
19
|
+
__export(nodeEnv_exports, {
|
|
20
20
|
getNodeEnv: () => getNodeEnv,
|
|
21
21
|
isDev: () => isDev,
|
|
22
22
|
isProd: () => isProd,
|
|
23
23
|
isProdProfile: () => isProdProfile,
|
|
24
24
|
isTest: () => isTest
|
|
25
25
|
});
|
|
26
|
-
module.exports = __toCommonJS(
|
|
26
|
+
module.exports = __toCommonJS(nodeEnv_exports);
|
|
27
27
|
const getNodeEnv = () => process.env.NODE_ENV || "development";
|
|
28
28
|
const isDev = () => getNodeEnv() === "development";
|
|
29
29
|
const isProd = () => getNodeEnv() === "production";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* runtime utils for nested routes generating
|
|
5
|
+
*/
|
|
6
|
+
import type { NestedRoute } from '@modern-js/types';
|
|
7
|
+
export declare const transformNestedRoutes: (routes: NestedRoute[]) => import("react-router-dom").RouteObject[];
|
|
8
|
+
export declare const renderNestedRoute: (nestedRoute: NestedRoute, options?: {
|
|
9
|
+
parent?: NestedRoute;
|
|
10
|
+
DeferredDataComponent?: () => JSX.Element | null;
|
|
11
|
+
}) => JSX.Element;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
22
|
+
var __export = (target, all) => {
|
|
23
|
+
for (var name in all)
|
|
24
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
25
|
+
};
|
|
26
|
+
var __copyProps = (to, from, except, desc) => {
|
|
27
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
28
|
+
for (let key of __getOwnPropNames(from))
|
|
29
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
30
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
31
|
+
}
|
|
32
|
+
return to;
|
|
33
|
+
};
|
|
34
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
35
|
+
var nestedRoutes_exports = {};
|
|
36
|
+
__export(nestedRoutes_exports, {
|
|
37
|
+
renderNestedRoute: () => renderNestedRoute,
|
|
38
|
+
transformNestedRoutes: () => transformNestedRoutes
|
|
39
|
+
});
|
|
40
|
+
module.exports = __toCommonJS(nestedRoutes_exports);
|
|
41
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
42
|
+
var import_react = require("react");
|
|
43
|
+
var import_react_router_dom = require("react-router-dom");
|
|
44
|
+
const transformNestedRoutes = (routes) => {
|
|
45
|
+
const routeElements = [];
|
|
46
|
+
for (const route of routes) {
|
|
47
|
+
const routeElement = renderNestedRoute(route);
|
|
48
|
+
routeElements.push(routeElement);
|
|
49
|
+
}
|
|
50
|
+
return (0, import_react_router_dom.createRoutesFromElements)(routeElements);
|
|
51
|
+
};
|
|
52
|
+
const renderNestedRoute = (nestedRoute, options = {}) => {
|
|
53
|
+
const { children, index, id, component, isRoot } = nestedRoute;
|
|
54
|
+
const Component = component;
|
|
55
|
+
const { parent, DeferredDataComponent } = options;
|
|
56
|
+
const routeProps = {
|
|
57
|
+
caseSensitive: nestedRoute.caseSensitive,
|
|
58
|
+
path: nestedRoute.path,
|
|
59
|
+
id: nestedRoute.id,
|
|
60
|
+
loader: createLoader(nestedRoute),
|
|
61
|
+
action: nestedRoute.action,
|
|
62
|
+
hasErrorBoundary: nestedRoute.hasErrorBoundary,
|
|
63
|
+
shouldRevalidate: nestedRoute.shouldRevalidate,
|
|
64
|
+
handle: nestedRoute.handle,
|
|
65
|
+
index: nestedRoute.index,
|
|
66
|
+
element: nestedRoute.element,
|
|
67
|
+
errorElement: nestedRoute.errorElement
|
|
68
|
+
};
|
|
69
|
+
if (nestedRoute.error) {
|
|
70
|
+
const errorElement = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(nestedRoute.error, {});
|
|
71
|
+
routeProps.errorElement = errorElement;
|
|
72
|
+
}
|
|
73
|
+
let element;
|
|
74
|
+
if (Component) {
|
|
75
|
+
if (parent == null ? void 0 : parent.loading) {
|
|
76
|
+
const Loading = parent.loading;
|
|
77
|
+
if (isLoadableComponent(Component)) {
|
|
78
|
+
element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { fallback: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Loading, {}) });
|
|
79
|
+
} else {
|
|
80
|
+
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, {}) });
|
|
81
|
+
}
|
|
82
|
+
} else if (isLoadableComponent(Component)) {
|
|
83
|
+
element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {});
|
|
84
|
+
} else if (isRoot) {
|
|
85
|
+
element = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
86
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {}),
|
|
87
|
+
typeof document === "undefined" && DeferredDataComponent && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DeferredDataComponent, {})
|
|
88
|
+
] });
|
|
89
|
+
} else {
|
|
90
|
+
element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Suspense, { fallback: null, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {}) });
|
|
91
|
+
}
|
|
92
|
+
} else {
|
|
93
|
+
nestedRoute.loading = parent == null ? void 0 : parent.loading;
|
|
94
|
+
}
|
|
95
|
+
if (element) {
|
|
96
|
+
routeProps.element = element;
|
|
97
|
+
}
|
|
98
|
+
const childElements = children == null ? void 0 : children.map((childRoute) => {
|
|
99
|
+
return renderNestedRoute(childRoute, { parent: nestedRoute });
|
|
100
|
+
});
|
|
101
|
+
const routeElement = index ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_router_dom.Route, __spreadProps(__spreadValues({}, routeProps), { index: true }), id) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_router_dom.Route, __spreadProps(__spreadValues({}, routeProps), { index: false, children: childElements }), id);
|
|
102
|
+
return routeElement;
|
|
103
|
+
};
|
|
104
|
+
function createLoader(route) {
|
|
105
|
+
const { loader } = route;
|
|
106
|
+
if (loader) {
|
|
107
|
+
return (args) => {
|
|
108
|
+
if (typeof route.lazyImport === "function") {
|
|
109
|
+
route.lazyImport();
|
|
110
|
+
}
|
|
111
|
+
return loader(args);
|
|
112
|
+
};
|
|
113
|
+
} else {
|
|
114
|
+
return () => {
|
|
115
|
+
if (typeof route.lazyImport === "function") {
|
|
116
|
+
route.lazyImport();
|
|
117
|
+
}
|
|
118
|
+
return null;
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function isLoadableComponent(component) {
|
|
123
|
+
return component && component.displayName === "Loadable" && component.preload && typeof component.preload === "function";
|
|
124
|
+
}
|
|
125
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
126
|
+
0 && (module.exports = {
|
|
127
|
+
renderNestedRoute,
|
|
128
|
+
transformNestedRoutes
|
|
129
|
+
});
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import os from 'os';
|
|
3
|
-
interface EntryPoint {
|
|
4
|
-
entryName: string;
|
|
5
|
-
}
|
|
6
|
-
export declare const isSingleEntry: (entrypoints: EntryPoint[]) => boolean;
|
|
7
3
|
export declare const getIpv4Interfaces: () => os.NetworkInterfaceInfo[];
|
|
8
4
|
export declare const getAddressUrls: (protocol: string | undefined, port: number) => {
|
|
9
5
|
type: string;
|
|
10
6
|
url: string;
|
|
11
7
|
}[];
|
|
12
|
-
export declare const prettyInstructions: (appContext: any, config: any) => string;
|
|
13
|
-
export {};
|
|
8
|
+
export declare const prettyInstructions: (appContext: any, config: any) => string;
|
|
@@ -29,14 +29,12 @@ var prettyInstructions_exports = {};
|
|
|
29
29
|
__export(prettyInstructions_exports, {
|
|
30
30
|
getAddressUrls: () => getAddressUrls,
|
|
31
31
|
getIpv4Interfaces: () => getIpv4Interfaces,
|
|
32
|
-
isSingleEntry: () => isSingleEntry,
|
|
33
32
|
prettyInstructions: () => prettyInstructions
|
|
34
33
|
});
|
|
35
34
|
module.exports = __toCommonJS(prettyInstructions_exports);
|
|
36
35
|
var import_os = __toESM(require("os"));
|
|
37
36
|
var import_compiled = require("./compiled");
|
|
38
37
|
var import_is = require("./is");
|
|
39
|
-
const isSingleEntry = (entrypoints) => entrypoints.length === 1 && entrypoints[0].entryName === "main";
|
|
40
38
|
const normalizeUrl = (url) => url.replace(/([^:]\/)\/+/g, "$1");
|
|
41
39
|
const getIpv4Interfaces = () => {
|
|
42
40
|
const interfaces = import_os.default.networkInterfaces();
|
|
@@ -75,7 +73,7 @@ const prettyInstructions = (appContext, config) => {
|
|
|
75
73
|
);
|
|
76
74
|
const routes = !apiOnly ? serverRoutes.filter((route) => route.entryName) : serverRoutes;
|
|
77
75
|
let message = "App running at:\n\n";
|
|
78
|
-
if (isSingleEntry(entrypoints) || apiOnly) {
|
|
76
|
+
if ((0, import_is.isSingleEntry)(entrypoints) || apiOnly) {
|
|
79
77
|
message += urls.map(
|
|
80
78
|
({ type, url }) => ` ${import_compiled.chalk.bold(`> ${type.padEnd(10)}`)}${import_compiled.chalk.cyanBright(
|
|
81
79
|
normalizeUrl(`${url}/${routes[0].urlPath}`)
|
|
@@ -113,6 +111,5 @@ const prettyInstructions = (appContext, config) => {
|
|
|
113
111
|
0 && (module.exports = {
|
|
114
112
|
getAddressUrls,
|
|
115
113
|
getIpv4Interfaces,
|
|
116
|
-
isSingleEntry,
|
|
117
114
|
prettyInstructions
|
|
118
115
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@remix-run/router';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var remix_router_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(remix_router_exports);
|
|
17
|
+
__reExport(remix_router_exports, require("@remix-run/router"), module.exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const serializeJson: (data: any) => string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
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 serialize_exports = {};
|
|
29
|
+
__export(serialize_exports, {
|
|
30
|
+
serializeJson: () => serializeJson
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(serialize_exports);
|
|
33
|
+
var import_serialize_javascript = __toESM(require("serialize-javascript"));
|
|
34
|
+
const serializeJson = (data) => {
|
|
35
|
+
return (0, import_serialize_javascript.default)(data, { isJSON: true });
|
|
36
|
+
};
|
|
37
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
38
|
+
0 && (module.exports = {
|
|
39
|
+
serializeJson
|
|
40
|
+
});
|
|
@@ -15,11 +15,11 @@ 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
|
|
19
|
-
__export(
|
|
18
|
+
var testUtils_exports = {};
|
|
19
|
+
__export(testUtils_exports, {
|
|
20
20
|
initSnapshotSerializer: () => initSnapshotSerializer
|
|
21
21
|
});
|
|
22
|
-
module.exports = __toCommonJS(
|
|
22
|
+
module.exports = __toCommonJS(testUtils_exports);
|
|
23
23
|
const initSnapshotSerializer = (root) => {
|
|
24
24
|
expect.addSnapshotSerializer({
|
|
25
25
|
test: (val) => typeof val === "string" && (val.includes("modern.js") || val.includes("node_modules") || val.includes(root)),
|
package/package.json
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"name": "@modern-js/utils",
|
|
3
3
|
"description": "A Progressive React Framework for modern web development.",
|
|
4
4
|
"homepage": "https://modernjs.dev",
|
|
5
|
-
"bugs": "https://github.com/
|
|
6
|
-
"repository": "
|
|
5
|
+
"bugs": "https://github.com/web-infra-dev/modern.js/issues",
|
|
6
|
+
"repository": "web-infra-dev/modern.js",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "2.
|
|
14
|
+
"version": "2.7.1-alpha.0",
|
|
15
15
|
"jsnext:source": "./src/index.ts",
|
|
16
16
|
"types": "./dist/index.d.ts",
|
|
17
17
|
"main": "./dist/index.js",
|
|
@@ -23,6 +23,9 @@
|
|
|
23
23
|
"./format": "./dist/format.js",
|
|
24
24
|
"./logger": "./dist/logger.js",
|
|
25
25
|
"./constants": "./dist/constants.js",
|
|
26
|
+
"./serialize": "./dist/serialize.js",
|
|
27
|
+
"./nestedRoutes": "./dist/nestedRoutes.js",
|
|
28
|
+
"./remix-router": "./dist/remix-router.js",
|
|
26
29
|
"./ajv": "./compiled/ajv/index.js",
|
|
27
30
|
"./glob": "./compiled/glob/index.js",
|
|
28
31
|
"./chalk": "./compiled/chalk/index.js",
|
|
@@ -61,6 +64,12 @@
|
|
|
61
64
|
"constants": [
|
|
62
65
|
"./dist/constants.d.ts"
|
|
63
66
|
],
|
|
67
|
+
"serialize": [
|
|
68
|
+
"./dist/serialize.d.ts"
|
|
69
|
+
],
|
|
70
|
+
"nestedRoutes": [
|
|
71
|
+
"./dist/nestedRoutes.d.ts"
|
|
72
|
+
],
|
|
64
73
|
"ajv": [
|
|
65
74
|
"./compiled/ajv/types/ajv.d.ts"
|
|
66
75
|
],
|
|
@@ -120,22 +129,47 @@
|
|
|
120
129
|
],
|
|
121
130
|
"chain-id": [
|
|
122
131
|
"./dist/chainId.d.ts"
|
|
132
|
+
],
|
|
133
|
+
"remix-router": [
|
|
134
|
+
"./dist/remix-router.d.ts"
|
|
123
135
|
]
|
|
124
136
|
}
|
|
125
137
|
},
|
|
126
138
|
"dependencies": {
|
|
127
139
|
"caniuse-lite": "^1.0.30001451",
|
|
128
|
-
"lodash": "^4.17.21"
|
|
140
|
+
"lodash": "^4.17.21",
|
|
141
|
+
"serialize-javascript": "^6.0.0",
|
|
142
|
+
"@remix-run/router": "^1.3.2"
|
|
143
|
+
},
|
|
144
|
+
"peerDependencies": {
|
|
145
|
+
"react": ">=17.0.0",
|
|
146
|
+
"react-dom": ">=17.0.0",
|
|
147
|
+
"react-router-dom": "^6.8.1"
|
|
148
|
+
},
|
|
149
|
+
"peerDependenciesMeta": {
|
|
150
|
+
"react": {
|
|
151
|
+
"optional": true
|
|
152
|
+
},
|
|
153
|
+
"react-dom": {
|
|
154
|
+
"optional": true
|
|
155
|
+
},
|
|
156
|
+
"react-router-dom": {
|
|
157
|
+
"optional": true
|
|
158
|
+
}
|
|
129
159
|
},
|
|
130
160
|
"devDependencies": {
|
|
161
|
+
"react": ">=17.0.0",
|
|
162
|
+
"react-dom": ">=17.0.0",
|
|
163
|
+
"react-router-dom": "^6.8.1",
|
|
164
|
+
"@modern-js/types": "2.7.0",
|
|
165
|
+
"@scripts/build": "2.7.0",
|
|
166
|
+
"@scripts/jest-config": "2.7.0",
|
|
131
167
|
"@types/jest": "^27",
|
|
132
168
|
"@types/node": "^14",
|
|
133
169
|
"jest": "^27",
|
|
134
170
|
"typescript": "^4",
|
|
135
171
|
"webpack": "^5.75.0",
|
|
136
|
-
"@
|
|
137
|
-
"@scripts/jest-config": "2.6.0",
|
|
138
|
-
"@scripts/build": "2.6.0"
|
|
172
|
+
"@types/serialize-javascript": "^5.0.1"
|
|
139
173
|
},
|
|
140
174
|
"sideEffects": false,
|
|
141
175
|
"scripts": {
|
|
File without changes
|
|
File without changes
|