@umijs/plugins 4.0.22 → 4.0.23

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/access.js CHANGED
@@ -50,7 +50,7 @@ import { AccessContext } from './context';
50
50
 
51
51
  function Provider(props) {${hasAccessFile ? `
52
52
  const { initialState } = useModel('@@initialState');
53
- const access = React.useMemo(() => accessFactory(initialState), [initialState]);
53
+ const access = accessFactory(initialState);
54
54
  ` : `
55
55
  const access = {};
56
56
  `}
@@ -91,48 +91,59 @@ export const Access: React.FC<PropsWithChildren<AccessProps>> = (props) => {
91
91
 
92
92
  export const useAccessMarkedRoutes = (routes: IRoute[]) => {
93
93
  const access = useAccess();
94
- const markdedRoutes: IRoute[] = React.useMemo(() => {
95
- const process = (route, parentAccessCode) => {
96
- const accessCode = route.access || parentAccessCode;
97
-
98
- // set default status
99
- route.unaccessible = ${api.config.access.strictMode ? "true" : "false"};
100
-
101
- // check access code
102
- if (typeof accessCode === 'string') {
103
- const detector = access[accessCode];
104
-
105
- if (typeof detector === 'function') {
106
- route.unaccessible = !detector(route);
107
- } else if (typeof detector === 'boolean') {
108
- route.unaccessible = !detector;
109
- } else if (typeof detector === 'undefined') {
110
- route.unaccessible = true;
111
- }
94
+ const process = (route, parentAccessCode, parentRoute) => {
95
+ let accessCode = route.access;
96
+ // \u7528\u7236\u7EA7\u7684\u8DEF\u7531\u68C0\u6D4B\u7236\u7EA7\u7684 accessCode
97
+ let detectorRoute = route;
98
+ if (!accessCode && parentAccessCode) {
99
+ accessCode = parentAccessCode;
100
+ detectorRoute = parentRoute;
112
101
  }
113
102
 
114
- // check children access code
115
- if (route.children?.length) {
116
- const isNoAccessibleChild = !route.children.reduce((hasAccessibleChild, child) => {
117
- process(child, accessCode);
103
+ // set default status
104
+ route.unaccessible = ${api.config.access.strictMode ? "true" : "false"};
118
105
 
119
- return hasAccessibleChild || !child.unaccessible;
120
- }, false);
106
+ // check access code
107
+ if (typeof accessCode === "string") {
108
+ const detector = access[accessCode];
121
109
 
122
- // make sure parent route is unaccessible if all children are unaccessible
123
- if (isNoAccessibleChild) {
124
- route.unaccessible = true;
125
- }
110
+ if (typeof detector === "function") {
111
+ route.unaccessible = !detector(detectorRoute);
112
+ } else if (typeof detector === "boolean") {
113
+ route.unaccessible = !detector;
114
+ } else if (typeof detector === "undefined") {
115
+ route.unaccessible = true;
126
116
  }
117
+ }
118
+
119
+ // check children access code
120
+ if (route.children?.length) {
121
+ const isNoAccessibleChild = !route.children.reduce(
122
+ (hasAccessibleChild, child) => {
123
+ process(child, accessCode, route);
124
+
125
+ return hasAccessibleChild || !child.unaccessible;
126
+ },
127
+ false
128
+ );
127
129
 
128
- return route;
130
+ // make sure parent route is unaccessible if all children are unaccessible
131
+ if (isNoAccessibleChild) {
132
+ route.unaccessible = true;
133
+ }
129
134
  }
130
135
 
131
- return routes.map(route => process(route));
132
- }, [routes.length, access]);
136
+ // \u4E3A\u4E86\u517C\u5BB9\u65E7\u7248\u672C\u7684layout\uFF0C<= 7.1.0
137
+ // \u5982\u679C\u662F 7.1.0 \u4EE5\u4E0B\u7684layout\u53EF\u80FD\u4F1A\u51FA\u73B0\u6570\u636E\u5F02\u5E38\u3002
138
+ delete route.routes;
139
+ route.routes = route.children;
140
+
141
+ return route;
142
+ };
143
+
144
+ return routes.map((route) => process(route));
145
+ };
133
146
 
134
- return markdedRoutes;
135
- }
136
147
  `
137
148
  });
138
149
  api.writeTmpFile({
package/dist/dva.js CHANGED
@@ -172,6 +172,68 @@ export { connect, useDispatch, useStore, useSelector } from 'dva';
172
172
  export { getDvaApp } from './dva';
173
173
  `
174
174
  });
175
+ api.writeTmpFile({
176
+ path: "types.d.ts",
177
+ tpl: `
178
+ import type { History } from 'umi';
179
+
180
+ export interface ConnectProps {
181
+ dispatch?: Dispatch;
182
+ }
183
+ type RequiredConnectProps = Required<ConnectProps>
184
+ export type ConnectRC<
185
+ T = {},
186
+ > = React.ForwardRefRenderFunction<any, T & RequiredConnectProps>;
187
+ interface Action<T = any> {
188
+ type: T
189
+ }
190
+ interface AnyAction extends Action {
191
+ // Allows any extra properties to be defined in an action.
192
+ [extraProps: string]: any
193
+ }
194
+ interface Dispatch<A extends Action = AnyAction> {
195
+ <T extends A>(action: T): T
196
+ }
197
+ interface EffectsCommandMap {
198
+ put: <A extends AnyAction>(action: A) => any,
199
+ call: Function,
200
+ select: Function,
201
+ take: Function,
202
+ cancel: Function,
203
+ [key: string]: any,
204
+ }
205
+ interface Action<T = any> {
206
+ type: T
207
+ }
208
+ export type Reducer<S = any, A extends Action = AnyAction> = (prevState: S, action: A) => S;
209
+ export type Effect = (action: AnyAction, effects: EffectsCommandMap) => void;
210
+ type EffectType = 'takeEvery' | 'takeLatest' | 'watcher' | 'throttle';
211
+ type EffectWithType = [Effect, { type: EffectType }];
212
+ export type Subscription = (api: SubscriptionAPI, done: Function) => void;
213
+
214
+ export interface ReducersMapObject<T> {
215
+ [key: string]: Reducer<T>,
216
+ }
217
+ export interface EffectsMapObject {
218
+ [key: string]: Effect | EffectWithType,
219
+ }
220
+ export interface SubscriptionAPI {
221
+ dispatch: Dispatch<any>,
222
+ history: History,
223
+ }
224
+ export interface SubscriptionsMapObject {
225
+ [key: string]: Subscription,
226
+ }
227
+ export interface DvaModel<T, E = EffectsMapObject, R = ReducersMapObject<T>> {
228
+ namespace: string,
229
+ state?: T,
230
+ reducers?: R,
231
+ effects?: E,
232
+ subscriptions?: SubscriptionsMapObject,
233
+ }
234
+ `,
235
+ context: {}
236
+ });
175
237
  });
176
238
  api.addTmpGenerateWatcherPaths(() => {
177
239
  return [(0, import_path.join)(api.paths.absSrcPath, "models")];
package/dist/layout.js CHANGED
@@ -124,13 +124,13 @@ const filterRoutes = (routes: IRoute[], filterFn: (route: IRoute) => boolean) =>
124
124
  let newRoutes = []
125
125
  for (const route of routes) {
126
126
  if (filterFn(route)) {
127
- if (Array.isArray(route.routes)) {
128
- newRoutes.push(...filterRoutes(route.routes, filterFn))
127
+ if (Array.isArray(route.children)) {
128
+ newRoutes.push(...filterRoutes(route.children, filterFn))
129
129
  }
130
130
  } else {
131
131
  newRoutes.push(route);
132
- if (Array.isArray(route.routes)) {
133
- route.routes = filterRoutes(route.routes, filterFn);
132
+ if (Array.isArray(route.children)) {
133
+ route.children = filterRoutes(route.children, filterFn);
134
134
  }
135
135
  }
136
136
  }
@@ -150,11 +150,11 @@ const mapRoutes = (routes: IRoute[]) => {
150
150
  newRoute.path = route.originPath
151
151
  }
152
152
 
153
- if (Array.isArray(route.routes)) {
154
- newRoute.routes = mapRoutes(route.routes);
153
+ if (Array.isArray(route.children)) {
154
+ newRoute.children = mapRoutes(route.children);
155
155
  }
156
156
 
157
- return newRoute
157
+ return newRoute;
158
158
  })
159
159
  }
160
160
 
@@ -180,12 +180,13 @@ const { formatMessage } = useIntl();
180
180
  },
181
181
  });
182
182
 
183
- const matchedRoute = useMemo(() => matchRoutes(clientRoutes, location.pathname).pop()?.route, [location.pathname]);
183
+ const matchedRouteNoAccess = useMemo(() => matchRoutes(clientRoutes, location.pathname)?.pop()?.route||[], [location.pathname]);
184
+ // \u73B0\u5728\u7684 layout \u53CA wrapper \u5B9E\u73B0\u662F\u901A\u8FC7\u7236\u8DEF\u7531\u7684\u5F62\u5F0F\u5B9E\u73B0\u7684, \u4F1A\u5BFC\u81F4\u8DEF\u7531\u6570\u636E\u591A\u4E86\u5197\u4F59\u5C42\u7EA7, proLayout \u6D88\u8D39\u65F6, \u65E0\u6CD5\u6B63\u786E\u5C55\u793A\u83DC\u5355, \u8FD9\u91CC\u5BF9\u5197\u4F59\u6570\u636E\u8FDB\u884C\u8FC7\u6EE4\u64CD\u4F5C
184
185
  const newRoutes = filterRoutes(clientRoutes.filter(route => route.id === 'ant-design-pro-layout'), (route) => {
185
186
  return (!!route.isLayout && route.id !== 'ant-design-pro-layout') || !!route.isWrapper;
186
187
  })
187
188
  const [route] = useAccessMarkedRoutes(mapRoutes(newRoutes));
188
-
189
+ const [matchedRoute] = useAccessMarkedRoutes([matchedRouteNoAccess]);
189
190
  return (
190
191
  <ProLayout
191
192
  route={route}
@@ -0,0 +1,3 @@
1
+ import { IApi } from 'umi';
2
+ declare const _default: (api: IApi) => void;
3
+ export default _default;
package/dist/valtio.js ADDED
@@ -0,0 +1,64 @@
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(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+
22
+ // src/valtio.ts
23
+ var valtio_exports = {};
24
+ __export(valtio_exports, {
25
+ default: () => valtio_default
26
+ });
27
+ module.exports = __toCommonJS(valtio_exports);
28
+ var import_path = require("path");
29
+ var import_utils = require("@umijs/utils");
30
+ var valtio_default = (api) => {
31
+ api.describe({
32
+ key: "valtio",
33
+ config: {
34
+ schema(joi) {
35
+ return joi.object();
36
+ }
37
+ }
38
+ });
39
+ const libPath = (0, import_utils.winPath)((0, import_path.dirname)(require.resolve("@umijs/valtio/package.json")));
40
+ api.onGenerateFiles(() => {
41
+ api.writeTmpFile({
42
+ path: "index.ts",
43
+ content: `
44
+ export {
45
+ proxy, useSnapshot, snapshot, subscribe,
46
+ proxyWithComputed,
47
+ proxyWithHistory,
48
+ proxyWithDevtools,
49
+ proxyMap,
50
+ proxySet,
51
+ } from '${libPath}';
52
+ `
53
+ });
54
+ });
55
+ api.modifyConfig((memo) => {
56
+ memo.alias = {
57
+ ...memo.alias,
58
+ "@umijs/valtio": libPath
59
+ };
60
+ return memo;
61
+ });
62
+ };
63
+ // Annotate the CommonJS export names for ESM import in node:
64
+ 0 && (module.exports = {});
@@ -16,15 +16,13 @@ export function patchRoutes({ routes }) {
16
16
  Object.keys(routes).forEach((key) => {
17
17
  const route = routes[key];
18
18
  if (route.title) {
19
+ route.locale = route.title;
19
20
  const newTitle = intl.messages[route.title] ? intl.formatMessage({ id: route.title }, {}) : route.title;
20
21
  route.name = intl.messages[route.title] ? intl.formatMessage({ id: route.title }, {}) : route.name;
21
22
  route.title = newTitle;
22
23
  }
23
- if (route.routes) {
24
- traverseRoute(route.routes);
25
- }
26
- if (route.routes) {
27
- traverseRoute(route.routes);
24
+ if (route.children) {
25
+ traverseRoute(route.children);
28
26
  }
29
27
  })
30
28
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umijs/plugins",
3
- "version": "4.0.22",
3
+ "version": "4.0.23",
4
4
  "description": "@umijs/plugins",
5
5
  "homepage": "https://github.com/umijs/umi/tree/master/packages/plugins#readme",
6
6
  "bugs": "https://github.com/umijs/umi/issues",
@@ -27,7 +27,8 @@
27
27
  "@ant-design/antd-theme-variable": "^1.0.0",
28
28
  "@ant-design/icons": "^4.7.0",
29
29
  "@ant-design/pro-components": "^2.0.1",
30
- "@umijs/bundler-utils": "4.0.22",
30
+ "@umijs/bundler-utils": "4.0.23",
31
+ "@umijs/valtio": "^1.0.0",
31
32
  "antd-dayjs-webpack-plugin": "^1.0.6",
32
33
  "axios": "^0.27.2",
33
34
  "babel-plugin-import": "^1.13.5",
@@ -46,7 +47,7 @@
46
47
  "warning": "^4.0.3"
47
48
  },
48
49
  "devDependencies": {
49
- "umi": "4.0.22"
50
+ "umi": "4.0.23"
50
51
  },
51
52
  "publishConfig": {
52
53
  "access": "public"