@vlian/router 1.0.3
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.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/provider/hooks.d.ts +15 -0
- package/dist/provider/hooks.d.ts.map +1 -0
- package/dist/provider/hooks.js +73 -0
- package/dist/provider/index.d.ts +4 -0
- package/dist/provider/index.d.ts.map +1 -0
- package/dist/provider/index.js +3 -0
- package/dist/provider/router.d.ts +25 -0
- package/dist/provider/router.d.ts.map +1 -0
- package/dist/provider/router.js +196 -0
- package/dist/provider/transform.d.ts +19 -0
- package/dist/provider/transform.d.ts.map +1 -0
- package/dist/provider/transform.js +559 -0
- package/dist/router/index.d.ts +3 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +2 -0
- package/dist/router/router.d.ts +23 -0
- package/dist/router/router.d.ts.map +1 -0
- package/dist/router/router.js +101 -0
- package/dist/router/routes.d.ts +4 -0
- package/dist/router/routes.d.ts.map +1 -0
- package/dist/router/routes.js +33 -0
- package/dist/styles/square-rotate.d.ts +6 -0
- package/dist/styles/square-rotate.d.ts.map +1 -0
- package/dist/styles/square-rotate.js +68 -0
- package/dist/types.d.ts +31 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/utils.d.ts +10 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +24 -0
- package/package.json +74 -0
|
@@ -0,0 +1,559 @@
|
|
|
1
|
+
function _array_like_to_array(arr, len) {
|
|
2
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
3
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
4
|
+
return arr2;
|
|
5
|
+
}
|
|
6
|
+
function _array_with_holes(arr) {
|
|
7
|
+
if (Array.isArray(arr)) return arr;
|
|
8
|
+
}
|
|
9
|
+
function _array_without_holes(arr) {
|
|
10
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
11
|
+
}
|
|
12
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
13
|
+
try {
|
|
14
|
+
var info = gen[key](arg);
|
|
15
|
+
var value = info.value;
|
|
16
|
+
} catch (error) {
|
|
17
|
+
reject(error);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (info.done) {
|
|
21
|
+
resolve(value);
|
|
22
|
+
} else {
|
|
23
|
+
Promise.resolve(value).then(_next, _throw);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function _async_to_generator(fn) {
|
|
27
|
+
return function() {
|
|
28
|
+
var self = this, args = arguments;
|
|
29
|
+
return new Promise(function(resolve, reject) {
|
|
30
|
+
var gen = fn.apply(self, args);
|
|
31
|
+
function _next(value) {
|
|
32
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
33
|
+
}
|
|
34
|
+
function _throw(err) {
|
|
35
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
36
|
+
}
|
|
37
|
+
_next(undefined);
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function _define_property(obj, key, value) {
|
|
42
|
+
if (key in obj) {
|
|
43
|
+
Object.defineProperty(obj, key, {
|
|
44
|
+
value: value,
|
|
45
|
+
enumerable: true,
|
|
46
|
+
configurable: true,
|
|
47
|
+
writable: true
|
|
48
|
+
});
|
|
49
|
+
} else {
|
|
50
|
+
obj[key] = value;
|
|
51
|
+
}
|
|
52
|
+
return obj;
|
|
53
|
+
}
|
|
54
|
+
function _iterable_to_array(iter) {
|
|
55
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
56
|
+
}
|
|
57
|
+
function _iterable_to_array_limit(arr, i) {
|
|
58
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
59
|
+
if (_i == null) return;
|
|
60
|
+
var _arr = [];
|
|
61
|
+
var _n = true;
|
|
62
|
+
var _d = false;
|
|
63
|
+
var _s, _e;
|
|
64
|
+
try {
|
|
65
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
66
|
+
_arr.push(_s.value);
|
|
67
|
+
if (i && _arr.length === i) break;
|
|
68
|
+
}
|
|
69
|
+
} catch (err) {
|
|
70
|
+
_d = true;
|
|
71
|
+
_e = err;
|
|
72
|
+
} finally{
|
|
73
|
+
try {
|
|
74
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
75
|
+
} finally{
|
|
76
|
+
if (_d) throw _e;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return _arr;
|
|
80
|
+
}
|
|
81
|
+
function _non_iterable_rest() {
|
|
82
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
83
|
+
}
|
|
84
|
+
function _non_iterable_spread() {
|
|
85
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
86
|
+
}
|
|
87
|
+
function _object_spread(target) {
|
|
88
|
+
for(var i = 1; i < arguments.length; i++){
|
|
89
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
90
|
+
var ownKeys = Object.keys(source);
|
|
91
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
92
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
93
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
ownKeys.forEach(function(key) {
|
|
97
|
+
_define_property(target, key, source[key]);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return target;
|
|
101
|
+
}
|
|
102
|
+
function ownKeys(object, enumerableOnly) {
|
|
103
|
+
var keys = Object.keys(object);
|
|
104
|
+
if (Object.getOwnPropertySymbols) {
|
|
105
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
106
|
+
if (enumerableOnly) {
|
|
107
|
+
symbols = symbols.filter(function(sym) {
|
|
108
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
keys.push.apply(keys, symbols);
|
|
112
|
+
}
|
|
113
|
+
return keys;
|
|
114
|
+
}
|
|
115
|
+
function _object_spread_props(target, source) {
|
|
116
|
+
source = source != null ? source : {};
|
|
117
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
118
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
119
|
+
} else {
|
|
120
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
121
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
return target;
|
|
125
|
+
}
|
|
126
|
+
function _sliced_to_array(arr, i) {
|
|
127
|
+
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
128
|
+
}
|
|
129
|
+
function _to_consumable_array(arr) {
|
|
130
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
131
|
+
}
|
|
132
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
133
|
+
if (!o) return;
|
|
134
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
135
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
136
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
137
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
138
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
139
|
+
}
|
|
140
|
+
function _ts_generator(thisArg, body) {
|
|
141
|
+
var f, y, t, _ = {
|
|
142
|
+
label: 0,
|
|
143
|
+
sent: function() {
|
|
144
|
+
if (t[0] & 1) throw t[1];
|
|
145
|
+
return t[1];
|
|
146
|
+
},
|
|
147
|
+
trys: [],
|
|
148
|
+
ops: []
|
|
149
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
150
|
+
return d(g, "next", {
|
|
151
|
+
value: verb(0)
|
|
152
|
+
}), d(g, "throw", {
|
|
153
|
+
value: verb(1)
|
|
154
|
+
}), d(g, "return", {
|
|
155
|
+
value: verb(2)
|
|
156
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
157
|
+
value: function() {
|
|
158
|
+
return this;
|
|
159
|
+
}
|
|
160
|
+
}), g;
|
|
161
|
+
function verb(n) {
|
|
162
|
+
return function(v) {
|
|
163
|
+
return step([
|
|
164
|
+
n,
|
|
165
|
+
v
|
|
166
|
+
]);
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
function step(op) {
|
|
170
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
171
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
172
|
+
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) return t;
|
|
173
|
+
if (y = 0, t) op = [
|
|
174
|
+
op[0] & 2,
|
|
175
|
+
t.value
|
|
176
|
+
];
|
|
177
|
+
switch(op[0]){
|
|
178
|
+
case 0:
|
|
179
|
+
case 1:
|
|
180
|
+
t = op;
|
|
181
|
+
break;
|
|
182
|
+
case 4:
|
|
183
|
+
_.label++;
|
|
184
|
+
return {
|
|
185
|
+
value: op[1],
|
|
186
|
+
done: false
|
|
187
|
+
};
|
|
188
|
+
case 5:
|
|
189
|
+
_.label++;
|
|
190
|
+
y = op[1];
|
|
191
|
+
op = [
|
|
192
|
+
0
|
|
193
|
+
];
|
|
194
|
+
continue;
|
|
195
|
+
case 7:
|
|
196
|
+
op = _.ops.pop();
|
|
197
|
+
_.trys.pop();
|
|
198
|
+
continue;
|
|
199
|
+
default:
|
|
200
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
201
|
+
_ = 0;
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
205
|
+
_.label = op[1];
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
209
|
+
_.label = t[1];
|
|
210
|
+
t = op;
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
if (t && _.label < t[2]) {
|
|
214
|
+
_.label = t[2];
|
|
215
|
+
_.ops.push(op);
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
if (t[2]) _.ops.pop();
|
|
219
|
+
_.trys.pop();
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
op = body.call(thisArg, _);
|
|
223
|
+
} catch (e) {
|
|
224
|
+
op = [
|
|
225
|
+
6,
|
|
226
|
+
e
|
|
227
|
+
];
|
|
228
|
+
y = 0;
|
|
229
|
+
} finally{
|
|
230
|
+
f = t = 0;
|
|
231
|
+
}
|
|
232
|
+
if (op[0] & 5) throw op[1];
|
|
233
|
+
return {
|
|
234
|
+
value: op[0] ? op[1] : void 0,
|
|
235
|
+
done: true
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
import { Navigate } from 'react-router-dom';
|
|
240
|
+
import React from "react";
|
|
241
|
+
import { useUpdateEffect } from "ahooks";
|
|
242
|
+
export var useRouterTransform = function(config, rootRoutes, options) {
|
|
243
|
+
var transformRouteToReactRoutes = /**
|
|
244
|
+
* 批量处理路由
|
|
245
|
+
* @param routes 路由组
|
|
246
|
+
*/ function transformRouteToReactRoutes(routes) {
|
|
247
|
+
return routes.flatMap(function(route) {
|
|
248
|
+
return transformRouteToReactRoute(route);
|
|
249
|
+
});
|
|
250
|
+
};
|
|
251
|
+
var errorsMap = config.errorsMap, layouts = config.layouts, loadings = config.loadings, views = config.views;
|
|
252
|
+
var _ref = options || {}, _ref_deps = _ref.deps, deps = _ref_deps === void 0 ? [] : _ref_deps, fetchRoutes = _ref.fetchRoutes, staticRoutes = _ref.staticRoutes;
|
|
253
|
+
var _React_useState = _sliced_to_array(React.useState([]), 2), routes = _React_useState[0], setRoutes = _React_useState[1];
|
|
254
|
+
var _React_useState1 = _sliced_to_array(React.useState(null), 2), routeObject = _React_useState1[0], setRoutesObject = _React_useState1[1];
|
|
255
|
+
/**
|
|
256
|
+
* 处理单个路由
|
|
257
|
+
* @param route 路由
|
|
258
|
+
*/ function transformRouteToReactRoute(route) {
|
|
259
|
+
var _route_isGroup = route.isGroup, isGroup = _route_isGroup === void 0 ? false : _route_isGroup, _route_enableRedirection = route.enableRedirection, enableRedirection = _route_enableRedirection === void 0 ? false : _route_enableRedirection, name = route.name, path = route.path, handle = route.handle, children = route.children, page = route.page, layout = route.layout, loading = route.loading, errors = route.errors;
|
|
260
|
+
// 获取错误组件
|
|
261
|
+
function getErrorComponent() {
|
|
262
|
+
return _async_to_generator(function() {
|
|
263
|
+
var resolver, fallback;
|
|
264
|
+
return _ts_generator(this, function(_state) {
|
|
265
|
+
resolver = errors ? errorsMap[errors] : errorsMap.root;
|
|
266
|
+
if (typeof resolver === 'function') {
|
|
267
|
+
return [
|
|
268
|
+
2,
|
|
269
|
+
resolver()
|
|
270
|
+
];
|
|
271
|
+
}
|
|
272
|
+
fallback = errorsMap.root;
|
|
273
|
+
if (typeof fallback === 'function') {
|
|
274
|
+
return [
|
|
275
|
+
2,
|
|
276
|
+
fallback()
|
|
277
|
+
];
|
|
278
|
+
}
|
|
279
|
+
return [
|
|
280
|
+
2,
|
|
281
|
+
null
|
|
282
|
+
];
|
|
283
|
+
});
|
|
284
|
+
})();
|
|
285
|
+
}
|
|
286
|
+
// 获取转换配置
|
|
287
|
+
function convertConfig(m) {
|
|
288
|
+
var action = m.action, loader = m.loader, shouldRevalidate = m.shouldRevalidate, Component = m.default;
|
|
289
|
+
return {
|
|
290
|
+
action: action,
|
|
291
|
+
loader: loader,
|
|
292
|
+
shouldRevalidate: shouldRevalidate,
|
|
293
|
+
Component: Component
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
// 获取配置
|
|
297
|
+
function getConfig() {
|
|
298
|
+
var index = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
|
|
299
|
+
return _async_to_generator(function() {
|
|
300
|
+
var layoutResolver, _$config, pageName, viewResolver, _$config1;
|
|
301
|
+
return _ts_generator(this, function(_state) {
|
|
302
|
+
switch(_state.label){
|
|
303
|
+
case 0:
|
|
304
|
+
if (!(layout && !index)) return [
|
|
305
|
+
3,
|
|
306
|
+
2
|
|
307
|
+
];
|
|
308
|
+
layoutResolver = layouts[layout];
|
|
309
|
+
if (!layoutResolver) {
|
|
310
|
+
throw new Error("未找到名为 ".concat(layout, " 的布局组件"));
|
|
311
|
+
}
|
|
312
|
+
return [
|
|
313
|
+
4,
|
|
314
|
+
layoutResolver()
|
|
315
|
+
];
|
|
316
|
+
case 1:
|
|
317
|
+
_$config = _state.sent();
|
|
318
|
+
return [
|
|
319
|
+
2,
|
|
320
|
+
convertConfig(_$config)
|
|
321
|
+
];
|
|
322
|
+
case 2:
|
|
323
|
+
pageName = name;
|
|
324
|
+
// 如果是notFound则转成404
|
|
325
|
+
if (pageName === 'notFound') {
|
|
326
|
+
pageName = '404';
|
|
327
|
+
}
|
|
328
|
+
if (!(page && (!(children === null || children === void 0 ? void 0 : children.length) || index))) return [
|
|
329
|
+
3,
|
|
330
|
+
4
|
|
331
|
+
];
|
|
332
|
+
viewResolver = views[pageName];
|
|
333
|
+
if (!viewResolver) {
|
|
334
|
+
throw new Error("未找到名为 ".concat(pageName, " 的页面组件"));
|
|
335
|
+
}
|
|
336
|
+
return [
|
|
337
|
+
4,
|
|
338
|
+
viewResolver()
|
|
339
|
+
];
|
|
340
|
+
case 3:
|
|
341
|
+
_$config1 = _state.sent();
|
|
342
|
+
return [
|
|
343
|
+
2,
|
|
344
|
+
convertConfig(_$config1)
|
|
345
|
+
];
|
|
346
|
+
case 4:
|
|
347
|
+
return [
|
|
348
|
+
2,
|
|
349
|
+
null
|
|
350
|
+
];
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
})();
|
|
354
|
+
}
|
|
355
|
+
// 获取处理信息,即额外的配置信息
|
|
356
|
+
function getHandle() {
|
|
357
|
+
var index = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
|
|
358
|
+
if ((layout || isGroup) && !index) {
|
|
359
|
+
return null;
|
|
360
|
+
}
|
|
361
|
+
return _object_spread_props(_object_spread({}, handle, route), {
|
|
362
|
+
name: name
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
var reactRoute = {
|
|
366
|
+
children: [],
|
|
367
|
+
HydrateFallback: loading ? loadings[loading] : loadings["root"],
|
|
368
|
+
id: name,
|
|
369
|
+
handle: getHandle(),
|
|
370
|
+
lazy: function() {
|
|
371
|
+
return _async_to_generator(function() {
|
|
372
|
+
var ErrorBoundary, _tmp;
|
|
373
|
+
return _ts_generator(this, function(_state) {
|
|
374
|
+
switch(_state.label){
|
|
375
|
+
case 0:
|
|
376
|
+
return [
|
|
377
|
+
4,
|
|
378
|
+
getErrorComponent()
|
|
379
|
+
];
|
|
380
|
+
case 1:
|
|
381
|
+
ErrorBoundary = _state.sent();
|
|
382
|
+
_tmp = [
|
|
383
|
+
{
|
|
384
|
+
ErrorBoundary: ErrorBoundary === null || ErrorBoundary === void 0 ? void 0 : ErrorBoundary.default
|
|
385
|
+
}
|
|
386
|
+
];
|
|
387
|
+
return [
|
|
388
|
+
4,
|
|
389
|
+
getConfig()
|
|
390
|
+
];
|
|
391
|
+
case 2:
|
|
392
|
+
return [
|
|
393
|
+
2,
|
|
394
|
+
_object_spread.apply(void 0, _tmp.concat([
|
|
395
|
+
_state.sent()
|
|
396
|
+
]))
|
|
397
|
+
];
|
|
398
|
+
}
|
|
399
|
+
});
|
|
400
|
+
})();
|
|
401
|
+
},
|
|
402
|
+
path: path
|
|
403
|
+
};
|
|
404
|
+
// 处理子路由
|
|
405
|
+
if (children === null || children === void 0 ? void 0 : children.length) {
|
|
406
|
+
reactRoute.children = children.flatMap(function(child) {
|
|
407
|
+
return transformRouteToReactRoute(child);
|
|
408
|
+
}).sort(function(a, b) {
|
|
409
|
+
var _ref, _ref1;
|
|
410
|
+
var _a_handle, _b_handle;
|
|
411
|
+
var orderA = (_ref = (_a_handle = a.handle) === null || _a_handle === void 0 ? void 0 : _a_handle.order) !== null && _ref !== void 0 ? _ref : 99;
|
|
412
|
+
var orderB = (_ref1 = (_b_handle = b.handle) === null || _b_handle === void 0 ? void 0 : _b_handle.order) !== null && _ref1 !== void 0 ? _ref1 : 99;
|
|
413
|
+
return orderA - orderB;
|
|
414
|
+
});
|
|
415
|
+
if (page && !isGroup) {
|
|
416
|
+
reactRoute.children.unshift({
|
|
417
|
+
handle: getHandle(true),
|
|
418
|
+
index: true,
|
|
419
|
+
lazy: function() {
|
|
420
|
+
return _async_to_generator(function() {
|
|
421
|
+
var ErrorBoundary, _tmp;
|
|
422
|
+
return _ts_generator(this, function(_state) {
|
|
423
|
+
switch(_state.label){
|
|
424
|
+
case 0:
|
|
425
|
+
return [
|
|
426
|
+
4,
|
|
427
|
+
getErrorComponent()
|
|
428
|
+
];
|
|
429
|
+
case 1:
|
|
430
|
+
ErrorBoundary = _state.sent();
|
|
431
|
+
_tmp = [
|
|
432
|
+
{
|
|
433
|
+
ErrorBoundary: ErrorBoundary === null || ErrorBoundary === void 0 ? void 0 : ErrorBoundary.default
|
|
434
|
+
}
|
|
435
|
+
];
|
|
436
|
+
return [
|
|
437
|
+
4,
|
|
438
|
+
getConfig(true)
|
|
439
|
+
];
|
|
440
|
+
case 2:
|
|
441
|
+
return [
|
|
442
|
+
2,
|
|
443
|
+
_object_spread.apply(void 0, _tmp.concat([
|
|
444
|
+
_state.sent()
|
|
445
|
+
]))
|
|
446
|
+
];
|
|
447
|
+
}
|
|
448
|
+
});
|
|
449
|
+
})();
|
|
450
|
+
}
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
if (enableRedirection && isGroup) {
|
|
454
|
+
var _reactRoute_children = _sliced_to_array(reactRoute.children, 1), firstChild = _reactRoute_children[0];
|
|
455
|
+
if (firstChild === null || firstChild === void 0 ? void 0 : firstChild.path) {
|
|
456
|
+
reactRoute.children.unshift({
|
|
457
|
+
index: true,
|
|
458
|
+
handle: getHandle(true),
|
|
459
|
+
element: /*#__PURE__*/ React.createElement(Navigate, {
|
|
460
|
+
to: firstChild.path,
|
|
461
|
+
replace: true
|
|
462
|
+
})
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
// 若存在 layout 且没有子路由,但同时声明了 page,则自动生成 index 子路由以渲染页面
|
|
468
|
+
// 场景:/test 使用自定义 layout,且没有 children 时仍应渲染 page
|
|
469
|
+
if ((!children || children.length === 0) && layout && page && !isGroup) {
|
|
470
|
+
reactRoute.children = [
|
|
471
|
+
{
|
|
472
|
+
handle: getHandle(true),
|
|
473
|
+
index: true,
|
|
474
|
+
lazy: function() {
|
|
475
|
+
return _async_to_generator(function() {
|
|
476
|
+
var ErrorBoundary, _tmp;
|
|
477
|
+
return _ts_generator(this, function(_state) {
|
|
478
|
+
switch(_state.label){
|
|
479
|
+
case 0:
|
|
480
|
+
return [
|
|
481
|
+
4,
|
|
482
|
+
getErrorComponent()
|
|
483
|
+
];
|
|
484
|
+
case 1:
|
|
485
|
+
ErrorBoundary = _state.sent();
|
|
486
|
+
_tmp = [
|
|
487
|
+
{
|
|
488
|
+
ErrorBoundary: ErrorBoundary === null || ErrorBoundary === void 0 ? void 0 : ErrorBoundary.default
|
|
489
|
+
}
|
|
490
|
+
];
|
|
491
|
+
return [
|
|
492
|
+
4,
|
|
493
|
+
getConfig(true)
|
|
494
|
+
];
|
|
495
|
+
case 2:
|
|
496
|
+
return [
|
|
497
|
+
2,
|
|
498
|
+
_object_spread.apply(void 0, _tmp.concat([
|
|
499
|
+
_state.sent()
|
|
500
|
+
]))
|
|
501
|
+
];
|
|
502
|
+
}
|
|
503
|
+
});
|
|
504
|
+
})();
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
];
|
|
508
|
+
}
|
|
509
|
+
return reactRoute;
|
|
510
|
+
}
|
|
511
|
+
var _React_useState2 = _sliced_to_array(React.useState([]), 2), dynamicRoutes = _React_useState2[0], setDynamicRoutes = _React_useState2[1];
|
|
512
|
+
var initRouter = function() {
|
|
513
|
+
return _async_to_generator(function() {
|
|
514
|
+
var routes;
|
|
515
|
+
return _ts_generator(this, function(_state) {
|
|
516
|
+
switch(_state.label){
|
|
517
|
+
case 0:
|
|
518
|
+
routes = [];
|
|
519
|
+
if (!fetchRoutes) return [
|
|
520
|
+
3,
|
|
521
|
+
2
|
|
522
|
+
];
|
|
523
|
+
return [
|
|
524
|
+
4,
|
|
525
|
+
fetchRoutes()
|
|
526
|
+
];
|
|
527
|
+
case 1:
|
|
528
|
+
routes = _state.sent();
|
|
529
|
+
_state.label = 2;
|
|
530
|
+
case 2:
|
|
531
|
+
setDynamicRoutes(routes);
|
|
532
|
+
setRoutes(routes);
|
|
533
|
+
return [
|
|
534
|
+
2
|
|
535
|
+
];
|
|
536
|
+
}
|
|
537
|
+
});
|
|
538
|
+
})();
|
|
539
|
+
};
|
|
540
|
+
React.useEffect(function() {
|
|
541
|
+
void initRouter();
|
|
542
|
+
}, deps);
|
|
543
|
+
useUpdateEffect(function() {
|
|
544
|
+
var rootRoute = _object_spread({}, rootRoutes);
|
|
545
|
+
if (!rootRoute.children) {
|
|
546
|
+
rootRoute.children = [];
|
|
547
|
+
}
|
|
548
|
+
rootRoute.children = _to_consumable_array(routes || []).concat(_to_consumable_array(staticRoutes || []));
|
|
549
|
+
setRoutesObject(transformRouteToReactRoutes([
|
|
550
|
+
rootRoute
|
|
551
|
+
]));
|
|
552
|
+
}, [
|
|
553
|
+
JSON.stringify(routes)
|
|
554
|
+
]);
|
|
555
|
+
return {
|
|
556
|
+
routeObject: routeObject,
|
|
557
|
+
dynamicRoutes: dynamicRoutes
|
|
558
|
+
};
|
|
559
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DOMRouterOpts } from 'react-router-dom';
|
|
2
|
+
import { navigator } from "../provider";
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import type { RouteItem } from '../types';
|
|
5
|
+
declare global {
|
|
6
|
+
interface Window {
|
|
7
|
+
$router: ReturnType<typeof navigator>;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export type RouterProviderProps = {
|
|
11
|
+
fetchRoutes: () => Promise<RouteItem[]>;
|
|
12
|
+
imports: Record<string, any>;
|
|
13
|
+
rootRoutes?: RouteItem;
|
|
14
|
+
staticRoutes?: RouteItem[];
|
|
15
|
+
options?: DOMRouterOpts;
|
|
16
|
+
isSubApp?: boolean;
|
|
17
|
+
loadingRender?: React.ReactNode;
|
|
18
|
+
loadingSize?: string;
|
|
19
|
+
loadingColor?: string;
|
|
20
|
+
loadingOpacity?: number;
|
|
21
|
+
};
|
|
22
|
+
export declare const RouterProvider: React.FC<RouterProviderProps>;
|
|
23
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router/router.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAmE,MAAM,kBAAkB,CAAC;AACjH,OAAO,EAAqB,SAAS,EAAC,MAAM,aAAa,CAAC;AAC1D,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI1C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,OAAO,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;KACvC;CACF;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAA;AAED,eAAO,MAAM,cAAc,EAAC,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAoDvD,CAAA"}
|