@xfe-repo/web-router 1.0.2 → 1.0.5
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/index.d.mts +8 -3
- package/dist/index.d.ts +8 -3
- package/dist/index.js +11 -14
- package/dist/index.mjs +5 -8
- package/package.json +3 -4
package/dist/index.d.mts
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import { History } from 'history';
|
|
2
2
|
import { LoadableComponent, loadableReady } from '@loadable/component';
|
|
3
3
|
import { ParsedQuery } from 'query-string';
|
|
4
|
+
import React, { ReactElement, ComponentType } from 'react';
|
|
4
5
|
import { RegisterComponentStatic } from '@xfe-repo/web-register';
|
|
5
6
|
export * from 'react-router-dom';
|
|
6
|
-
import React, { ReactElement, ComponentType } from 'react';
|
|
7
7
|
|
|
8
8
|
type PageComponent = LoadableComponent<any> & RegisterComponentStatic;
|
|
9
9
|
type RouteConfig = {
|
|
10
10
|
path: string;
|
|
11
11
|
Component: PageComponent;
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
type GetRoutesConfig = {
|
|
14
|
+
pagesIndexPath: string[];
|
|
15
|
+
getPageComponents: (path: string) => Promise<any>;
|
|
16
|
+
fallback?: ReactElement;
|
|
17
|
+
};
|
|
18
|
+
declare const getRoutes: (config: GetRoutesConfig) => RouteConfig[];
|
|
14
19
|
|
|
15
20
|
type RouterProps = {
|
|
16
21
|
navigator: NavigatorType;
|
|
@@ -50,4 +55,4 @@ declare function createNavigator(options: CreateNavigatorOptions): NavigatorType
|
|
|
50
55
|
declare const getClientNavigator: () => NavigatorType;
|
|
51
56
|
declare const routerReady: typeof loadableReady;
|
|
52
57
|
|
|
53
|
-
export { type CreateNavigatorOptions, Link, type NavigatorStack, type NavigatorType, type PageComponent, type RouteConfig, Router, createNavigator, getClientNavigator, getRoutes, routerReady };
|
|
58
|
+
export { type CreateNavigatorOptions, type GetRoutesConfig, Link, type NavigatorStack, type NavigatorType, type PageComponent, type RouteConfig, Router, createNavigator, getClientNavigator, getRoutes, routerReady };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import { History } from 'history';
|
|
2
2
|
import { LoadableComponent, loadableReady } from '@loadable/component';
|
|
3
3
|
import { ParsedQuery } from 'query-string';
|
|
4
|
+
import React, { ReactElement, ComponentType } from 'react';
|
|
4
5
|
import { RegisterComponentStatic } from '@xfe-repo/web-register';
|
|
5
6
|
export * from 'react-router-dom';
|
|
6
|
-
import React, { ReactElement, ComponentType } from 'react';
|
|
7
7
|
|
|
8
8
|
type PageComponent = LoadableComponent<any> & RegisterComponentStatic;
|
|
9
9
|
type RouteConfig = {
|
|
10
10
|
path: string;
|
|
11
11
|
Component: PageComponent;
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
type GetRoutesConfig = {
|
|
14
|
+
pagesIndexPath: string[];
|
|
15
|
+
getPageComponents: (path: string) => Promise<any>;
|
|
16
|
+
fallback?: ReactElement;
|
|
17
|
+
};
|
|
18
|
+
declare const getRoutes: (config: GetRoutesConfig) => RouteConfig[];
|
|
14
19
|
|
|
15
20
|
type RouterProps = {
|
|
16
21
|
navigator: NavigatorType;
|
|
@@ -50,4 +55,4 @@ declare function createNavigator(options: CreateNavigatorOptions): NavigatorType
|
|
|
50
55
|
declare const getClientNavigator: () => NavigatorType;
|
|
51
56
|
declare const routerReady: typeof loadableReady;
|
|
52
57
|
|
|
53
|
-
export { type CreateNavigatorOptions, Link, type NavigatorStack, type NavigatorType, type PageComponent, type RouteConfig, Router, createNavigator, getClientNavigator, getRoutes, routerReady };
|
|
58
|
+
export { type CreateNavigatorOptions, type GetRoutesConfig, Link, type NavigatorStack, type NavigatorType, type PageComponent, type RouteConfig, Router, createNavigator, getClientNavigator, getRoutes, routerReady };
|
package/dist/index.js
CHANGED
|
@@ -287,10 +287,9 @@ var import_react_router_dom3 = require("react-router-dom");
|
|
|
287
287
|
var import_query_string = __toESM(require("query-string"));
|
|
288
288
|
__reExport(src_exports, require("react-router-dom"), module.exports);
|
|
289
289
|
// src/routes.ts
|
|
290
|
-
var import_react = require("react");
|
|
291
290
|
var import_component = __toESM(require("@loadable/component"));
|
|
292
|
-
var
|
|
293
|
-
var
|
|
291
|
+
var getRoutes = function(config) {
|
|
292
|
+
var pagesIndexPath = config.pagesIndexPath, getPageComponents = config.getPageComponents, fallback = config.fallback;
|
|
294
293
|
var routes = [];
|
|
295
294
|
pagesIndexPath.forEach(function(pageIndexPath) {
|
|
296
295
|
if (pageIndexPath.startsWith("./")) return;
|
|
@@ -299,31 +298,29 @@ var getRoutes = function(pagesIndexPath, getPageComponents) {
|
|
|
299
298
|
var pageComponent = (0, import_component.default)(function() {
|
|
300
299
|
return getPageComponents(pageRelativePath);
|
|
301
300
|
}, {
|
|
302
|
-
fallback:
|
|
303
|
-
loading: true
|
|
304
|
-
})
|
|
301
|
+
fallback: fallback
|
|
305
302
|
});
|
|
306
303
|
var routerPath = "/".concat(pageRelativePath);
|
|
307
304
|
if (routerPath === "/home" || routerPath === "/index") routerPath = "/";
|
|
308
|
-
var
|
|
305
|
+
var config2 = {
|
|
309
306
|
path: routerPath,
|
|
310
307
|
Component: pageComponent
|
|
311
308
|
};
|
|
312
|
-
routes.push(
|
|
309
|
+
routes.push(config2);
|
|
313
310
|
});
|
|
314
311
|
return routes;
|
|
315
312
|
};
|
|
316
313
|
// src/Router.tsx
|
|
317
|
-
var
|
|
314
|
+
var import_react = require("react");
|
|
318
315
|
var import_react_router_dom = require("react-router-dom");
|
|
319
316
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
320
|
-
var Router = (0,
|
|
317
|
+
var Router = (0, import_react.memo)(function(props) {
|
|
321
318
|
var navigator = props.navigator, routes = props.routes, _props_basename = props.basename, basename = _props_basename === void 0 ? "/" : _props_basename, children = props.children, NotFoundPageComponent = props.NotFoundPageComponent;
|
|
322
|
-
var _ref = _sliced_to_array((0,
|
|
319
|
+
var _ref = _sliced_to_array((0, import_react.useState)({
|
|
323
320
|
action: navigator.action,
|
|
324
321
|
location: navigator.location
|
|
325
322
|
}), 2), navigatorState = _ref[0], setNavigatorState = _ref[1];
|
|
326
|
-
(0,
|
|
323
|
+
(0, import_react.useEffect)(function() {
|
|
327
324
|
return navigator.listen(setNavigatorState);
|
|
328
325
|
}, [
|
|
329
326
|
navigator
|
|
@@ -355,12 +352,12 @@ var Router = (0, import_react2.memo)(function(props) {
|
|
|
355
352
|
});
|
|
356
353
|
});
|
|
357
354
|
// src/Link.tsx
|
|
358
|
-
var
|
|
355
|
+
var import_react2 = require("react");
|
|
359
356
|
var import_react_router_dom2 = require("react-router-dom");
|
|
360
357
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
361
358
|
var Link = function(props) {
|
|
362
359
|
var to = props.to, children = props.children, reLaunch = props.reLaunch, preload = props.preload, replace = props.replace, className = props.className;
|
|
363
|
-
var _navigator2 = (0,
|
|
360
|
+
var _navigator2 = (0, import_react2.useMemo)(function() {
|
|
364
361
|
return getClientNavigator();
|
|
365
362
|
}, []);
|
|
366
363
|
if (/http(s)?:\/{2}/.test(to)) {
|
package/dist/index.mjs
CHANGED
|
@@ -6,27 +6,24 @@ import queryString from "query-string";
|
|
|
6
6
|
export * from "react-router-dom";
|
|
7
7
|
|
|
8
8
|
// src/routes.ts
|
|
9
|
-
import { createElement } from "react";
|
|
10
9
|
import loadable from "@loadable/component";
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
var getRoutes = (config) => {
|
|
11
|
+
const { pagesIndexPath, getPageComponents, fallback } = config;
|
|
13
12
|
const routes = [];
|
|
14
13
|
pagesIndexPath.forEach((pageIndexPath) => {
|
|
15
14
|
if (pageIndexPath.startsWith("./"))
|
|
16
15
|
return;
|
|
17
16
|
const regExpResult = pageIndexPath.match(/(?<=pages\/).*(?=\/index.(?:tsx|js))/);
|
|
18
17
|
const pageRelativePath = regExpResult ? regExpResult[0].toLowerCase() : "";
|
|
19
|
-
const pageComponent = loadable(() => getPageComponents(pageRelativePath), {
|
|
20
|
-
fallback: createElement(Loading, { loading: true })
|
|
21
|
-
});
|
|
18
|
+
const pageComponent = loadable(() => getPageComponents(pageRelativePath), { fallback });
|
|
22
19
|
let routerPath = `/${pageRelativePath}`;
|
|
23
20
|
if (routerPath === "/home" || routerPath === "/index")
|
|
24
21
|
routerPath = "/";
|
|
25
|
-
const
|
|
22
|
+
const config2 = {
|
|
26
23
|
path: routerPath,
|
|
27
24
|
Component: pageComponent
|
|
28
25
|
};
|
|
29
|
-
routes.push(
|
|
26
|
+
routes.push(config2);
|
|
30
27
|
});
|
|
31
28
|
return routes;
|
|
32
29
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xfe-repo/web-router",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -25,8 +25,7 @@
|
|
|
25
25
|
"@loadable/component": "^5.15.3",
|
|
26
26
|
"history": "^5.3.0",
|
|
27
27
|
"query-string": "^7.1.3",
|
|
28
|
-
"react-router-dom": "^6.11.1"
|
|
29
|
-
"@xfe-repo/web-components": "1.0.2"
|
|
28
|
+
"react-router-dom": "^6.11.1"
|
|
30
29
|
},
|
|
31
30
|
"devDependencies": {
|
|
32
31
|
"@types/loadable__component": "^5.13.8",
|
|
@@ -34,7 +33,7 @@
|
|
|
34
33
|
"@types/react": "^18.2.0",
|
|
35
34
|
"@xfe-repo/web-register": "1.0.3",
|
|
36
35
|
"@xfe-repo/typescript-config": "0.0.3",
|
|
37
|
-
"@xfe-repo/eslint-config": "0.0.
|
|
36
|
+
"@xfe-repo/eslint-config": "0.0.2"
|
|
38
37
|
},
|
|
39
38
|
"scripts": {
|
|
40
39
|
"build": "tsup",
|