dumi 2.0.0-rc.1 → 2.0.0-rc.2

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.
@@ -71,7 +71,7 @@ async function parseBlockAsset(opts) {
71
71
  return { path: args.path, external: true };
72
72
  }
73
73
  return {
74
- path: import_path.default.join(args.resolveDir, args.path),
74
+ path: args.kind !== "entry-point" ? opts.resolver(args.resolveDir, args.path) : import_path.default.join(args.resolveDir, args.path),
75
75
  pluginData: { kind: args.kind, resolveDir: args.resolveDir }
76
76
  };
77
77
  });
@@ -127,10 +127,11 @@ export declare type ILocalesConfig = ILocale[];
127
127
  export interface INavItem {
128
128
  title: string;
129
129
  link: string;
130
+ order: number;
130
131
  activePath?: string;
131
132
  [key: string]: any;
132
133
  }
133
- interface ISidebarItem {
134
+ export interface ISidebarItem {
134
135
  title: string;
135
136
  link: string;
136
137
  order: number;
@@ -1,5 +1,3 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
-
3
1
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
2
 
5
3
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -14,8 +12,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
12
 
15
13
  import { useFullSidebarData, useSiteData } from 'dumi';
16
14
  import { useState } from 'react';
17
- import { useSidebarDataCompare } from "./useSidebarData";
18
- import { useLocaleDocRoutes } from "./utils";
15
+ import { pickRouteSortMeta, useLocaleDocRoutes, useRouteDataComparer } from "./utils";
19
16
  /**
20
17
  * hook for get nav data
21
18
  */
@@ -27,7 +24,7 @@ export var useNavData = function useNavData() {
27
24
  themeConfig = _useSiteData.themeConfig;
28
25
 
29
26
  var sidebar = useFullSidebarData();
30
- var sidebarDataCompare = useSidebarDataCompare();
27
+ var sidebarDataComparer = useRouteDataComparer();
31
28
 
32
29
  var _useState = useState(function () {
33
30
  // use user config first
@@ -39,22 +36,9 @@ export var useNavData = function useNavData() {
39
36
  groups = _ref2[1];
40
37
 
41
38
  var meta = Object.values(routes).reduce(function (ret, route) {
42
- var _route$meta, _frontmatter$nav$orde;
43
-
44
39
  // find routes which within the nav path
45
40
  if (route.path.startsWith(link.slice(1))) {
46
- switch (_typeof((_route$meta = route.meta) === null || _route$meta === void 0 ? void 0 : _route$meta.frontmatter.nav)) {
47
- case 'object':
48
- ret.title = route.meta.frontmatter.nav.title || ret.title;
49
- ret.order = (_frontmatter$nav$orde = route.meta.frontmatter.nav.order) !== null && _frontmatter$nav$orde !== void 0 ? _frontmatter$nav$orde : ret.order;
50
- break;
51
-
52
- case 'string':
53
- ret.title = route.meta.frontmatter.nav || ret.title;
54
- break;
55
-
56
- default:
57
- }
41
+ pickRouteSortMeta(ret, 'nav', route.meta.frontmatter);
58
42
  }
59
43
 
60
44
  return ret;
@@ -67,7 +51,7 @@ export var useNavData = function useNavData() {
67
51
  };
68
52
  }); // TODO: 2-level nav data
69
53
 
70
- return data.sort(sidebarDataCompare);
54
+ return data.sort(sidebarDataComparer);
71
55
  }),
72
56
  _useState2 = _slicedToArray(_useState, 1),
73
57
  nav = _useState2[0];
@@ -1,10 +1,20 @@
1
1
  import type { ISidebarGroup } from './types';
2
- export declare const useSidebarDataCompare: () => (a: ISidebarGroup | ISidebarGroup['children'][0], b: ISidebarGroup | ISidebarGroup['children'][0]) => number;
3
2
  /**
4
3
  * hook for get sidebar data for all nav
5
4
  */
6
5
  export declare const useFullSidebarData: () => Record<string, ISidebarGroup[]>;
6
+ interface ITreeSidebarLeaf {
7
+ path: string;
8
+ title: string;
9
+ order: number;
10
+ children: (ITreeSidebarLeaf | ISidebarGroup)[];
11
+ }
12
+ /**
13
+ * hook for get full sidebar data in tree structure
14
+ */
15
+ export declare const useTreeSidebarData: () => ITreeSidebarLeaf[];
7
16
  /**
8
17
  * hook for get sidebar data for current nav
9
18
  */
10
19
  export declare const useSidebarData: () => ISidebarGroup[];
20
+ export {};
@@ -1,3 +1,11 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
7
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
8
+
1
9
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
10
 
3
11
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -6,8 +14,6 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
6
14
 
7
15
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8
16
 
9
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
10
-
11
17
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
18
 
13
19
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -21,28 +27,18 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
21
27
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22
28
 
23
29
  import { useLocale, useLocation, useSiteData } from 'dumi';
24
- import { useCallback, useState } from 'react';
25
- import { useLocaleDocRoutes } from "./utils";
30
+ import { useState } from 'react';
31
+ import { pickRouteSortMeta, useLocaleDocRoutes, useRouteDataComparer } from "./utils";
26
32
  var DEFAULT_GROUP_STUB_TITLE = '$default-group-title';
27
33
 
28
34
  var getLocaleClearPath = function getLocaleClearPath(routePath, locale) {
29
35
  return 'base' in locale ? routePath.replace(locale.base.slice(1), '').replace(/^\//, '') : routePath;
30
36
  };
31
-
32
- export var useSidebarDataCompare = function useSidebarDataCompare() {
33
- var locale = useLocale();
34
- return useCallback(function (a, b) {
35
- return (// small before large
36
- a.order - b.order || ( // shallower before deeper for sidebar item
37
- a.link ? a.link.split('/').length - b.link.split('/').length : 0) || ( // fallback to compare title (put non-title group at the end)
38
- a.title ? a.title.localeCompare(b.title || '', locale.id) : -1)
39
- );
40
- }, []);
41
- };
42
37
  /**
43
38
  * hook for get sidebar data for all nav
44
39
  */
45
40
 
41
+
46
42
  export var useFullSidebarData = function useFullSidebarData() {
47
43
  var locale = useLocale();
48
44
  var routes = useLocaleDocRoutes();
@@ -50,7 +46,7 @@ export var useFullSidebarData = function useFullSidebarData() {
50
46
  var _useSiteData = useSiteData(),
51
47
  themeConfig = _useSiteData.themeConfig;
52
48
 
53
- var sidebarDataCompare = useSidebarDataCompare();
49
+ var sidebarDataComparer = useRouteDataComparer();
54
50
 
55
51
  var _useState = useState(function () {
56
52
  // auto generate sidebar data from routes
@@ -67,12 +63,11 @@ export var useFullSidebarData = function useFullSidebarData() {
67
63
  // en-US/a/b => /en-US/a
68
64
  var parentPath = "/".concat(route.path.replace(/\/[^/]+$/, ''));
69
65
 
70
- var _ref = _typeof(route.meta.frontmatter.group) === 'object' ? route.meta.frontmatter.group : {
71
- title: route.meta.frontmatter.group
72
- },
73
- title = _ref.title,
74
- _ref$order = _ref.order,
75
- order = _ref$order === void 0 ? 0 : _ref$order;
66
+ var _pickRouteSortMeta = pickRouteSortMeta({
67
+ order: 0
68
+ }, 'group', route.meta.frontmatter),
69
+ title = _pickRouteSortMeta.title,
70
+ order = _pickRouteSortMeta.order;
76
71
 
77
72
  var titleKey = title || DEFAULT_GROUP_STUB_TITLE; // create group data by nav path & group name
78
73
 
@@ -92,15 +87,15 @@ export var useFullSidebarData = function useFullSidebarData() {
92
87
  return ret;
93
88
  }, {}); // destruct sidebar data into sidebar config
94
89
 
95
- var sidebarConfig = Object.entries(data).reduce(function (ret, _ref2) {
96
- var _ref3 = _slicedToArray(_ref2, 2),
97
- navPath = _ref3[0],
98
- groups = _ref3[1];
90
+ var sidebarConfig = Object.entries(data).reduce(function (ret, _ref) {
91
+ var _ref2 = _slicedToArray(_ref, 2),
92
+ navPath = _ref2[0],
93
+ groups = _ref2[1];
99
94
 
100
- ret[navPath] = Object.values(groups).sort(sidebarDataCompare); // sort group children by order or title
95
+ ret[navPath] = Object.values(groups).sort(sidebarDataComparer); // sort group children by order or title
101
96
 
102
97
  ret[navPath].forEach(function (group) {
103
- return group.children.sort(sidebarDataCompare);
98
+ return group.children.sort(sidebarDataComparer);
104
99
  });
105
100
  return ret;
106
101
  }, {}); // allow user partial override
@@ -112,6 +107,106 @@ export var useFullSidebarData = function useFullSidebarData() {
112
107
 
113
108
  return sidebar;
114
109
  };
110
+
111
+ function getLeafMeta(data) {
112
+ var leafMeta = {
113
+ order: 0,
114
+ title: ''
115
+ };
116
+
117
+ var _iterator = _createForOfIteratorHelper(data),
118
+ _step;
119
+
120
+ try {
121
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
122
+ var group = _step.value;
123
+
124
+ var _iterator2 = _createForOfIteratorHelper(group.children),
125
+ _step2;
126
+
127
+ try {
128
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
129
+ var item = _step2.value;
130
+
131
+ if ('frontmatter' in item) {
132
+ pickRouteSortMeta(leafMeta, 'nav', item.frontmatter);
133
+ }
134
+ }
135
+ } catch (err) {
136
+ _iterator2.e(err);
137
+ } finally {
138
+ _iterator2.f();
139
+ }
140
+ }
141
+ } catch (err) {
142
+ _iterator.e(err);
143
+ } finally {
144
+ _iterator.f();
145
+ }
146
+
147
+ return leafMeta;
148
+ }
149
+ /**
150
+ * hook for get full sidebar data in tree structure
151
+ */
152
+
153
+
154
+ export var useTreeSidebarData = function useTreeSidebarData() {
155
+ var original = useFullSidebarData();
156
+ var sidebarDataComparer = useRouteDataComparer();
157
+
158
+ var _useState3 = useState(function () {
159
+ var data = Object.entries(original) // match from the deepest level
160
+ .sort(function (a, b) {
161
+ return b[0].split('/').length - a[0].split('/').length;
162
+ }).reduce(function (ret, _ref3) {
163
+ var _ref4 = _slicedToArray(_ref3, 2),
164
+ path = _ref4[0],
165
+ data = _ref4[1];
166
+
167
+ var parent = path.replace(/\/[^/]+$/, '');
168
+
169
+ if (parent) {
170
+ var _ret$parent;
171
+
172
+ // handle nested sidebar data
173
+ // init parent first
174
+ (_ret$parent = ret[parent]) !== null && _ret$parent !== void 0 ? _ret$parent : ret[parent] = _objectSpread({
175
+ path: parent,
176
+ children: original[parent] || []
177
+ }, getLeafMeta(original[parent] || []));
178
+
179
+ if (ret[path]) {
180
+ // sort children first
181
+ ret[path].children.sort(sidebarDataComparer); // put n-level sidebar data as parent children
182
+
183
+ ret[parent].children.push(ret[path]);
184
+ delete ret[path];
185
+ } else {
186
+ var _ret$parent$children;
187
+
188
+ // put last-level sidebar data as parent children
189
+ (_ret$parent$children = ret[parent].children).push.apply(_ret$parent$children, _toConsumableArray(data));
190
+ }
191
+ } else {
192
+ // sort children first
193
+ data.sort(sidebarDataComparer); // put top-level sidebar data
194
+
195
+ ret[path] = _objectSpread({
196
+ path: path,
197
+ children: data
198
+ }, getLeafMeta(data));
199
+ }
200
+
201
+ return ret;
202
+ }, {});
203
+ return Object.values(data);
204
+ }),
205
+ _useState4 = _slicedToArray(_useState3, 1),
206
+ sidebar = _useState4[0];
207
+
208
+ return sidebar;
209
+ };
115
210
  /**
116
211
  * hook for get sidebar data for current nav
117
212
  */
@@ -1,5 +1,5 @@
1
1
  import { useEffect } from 'react';
2
- import type { IRoutesById } from './types';
2
+ import type { INavItem, IRouteMeta, IRoutesById } from './types';
3
3
  export declare const useLocaleDocRoutes: () => IRoutesById;
4
4
  /**
5
5
  * 在 react 18 中需要新的 render 方式,这个函数用来处理不同的 jsx 模式。
@@ -8,3 +8,16 @@ export declare const useLocaleDocRoutes: () => IRoutesById;
8
8
  */
9
9
  export declare const genReactRenderCode: (version: string) => string;
10
10
  export declare const useIsomorphicLayoutEffect: typeof useEffect;
11
+ /**
12
+ * common comparer for sidebar/nav items
13
+ */
14
+ export declare const useRouteDataComparer: <T extends {
15
+ order?: number | undefined;
16
+ link?: string | undefined;
17
+ path?: string | undefined;
18
+ title?: string | undefined;
19
+ }>() => (a: T, b: T) => number;
20
+ /**
21
+ * common util for pick meta to sort sidebar/nav items
22
+ */
23
+ export declare const pickRouteSortMeta: (original: Partial<Pick<INavItem, 'order' | 'title'>>, field: 'nav' | 'group', fm: IRouteMeta['frontmatter']) => Partial<Pick<INavItem, "title" | "order">>;
@@ -1,3 +1,5 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+
1
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
4
 
3
5
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -11,7 +13,8 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
11
13
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
14
 
13
15
  import { useAppData, useIntl, useSiteData } from 'dumi';
14
- import { useEffect, useLayoutEffect, useState } from 'react';
16
+ import { useCallback, useEffect, useLayoutEffect, useState } from 'react';
17
+ import { useLocale } from "./useLocale";
15
18
  export var useLocaleDocRoutes = function useLocaleDocRoutes() {
16
19
  var intl = useIntl();
17
20
 
@@ -57,4 +60,43 @@ export var genReactRenderCode = function genReactRenderCode(version) {
57
60
 
58
61
  return "".concat(annotation, "\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\n\nReactDOM.render(\n <App />,\n document.getElementById('root'),\n);");
59
62
  };
60
- export var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
63
+ export var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
64
+ /**
65
+ * common comparer for sidebar/nav items
66
+ */
67
+
68
+ export var useRouteDataComparer = function useRouteDataComparer() {
69
+ var locale = useLocale();
70
+ return useCallback(function (a, b) {
71
+ return (// smaller before larger for all
72
+ ('order' in a && 'order' in b ? a.order - b.order : 0) || ( // shallower before deeper for sidebar item
73
+ 'link' in a && 'link' in b ? a.link.split('/').length - b.link.split('/').length : 0) || ( // shallower before deeper for sidebar leaf
74
+ 'path' in a && 'path' in b ? a.path.split('/').length - b.path.split('/').length : 0) || ( // fallback to compare title (put non-title item at the end)
75
+ a.title ? a.title.localeCompare(b.title || '', locale.id) : -1)
76
+ );
77
+ }, []);
78
+ };
79
+ /**
80
+ * common util for pick meta to sort sidebar/nav items
81
+ */
82
+
83
+ export var pickRouteSortMeta = function pickRouteSortMeta(original, field, fm) {
84
+ var _sub$order;
85
+
86
+ var sub = fm[field];
87
+
88
+ switch (_typeof(sub)) {
89
+ case 'object':
90
+ original.title = sub.title || original.title;
91
+ original.order = (_sub$order = sub.order) !== null && _sub$order !== void 0 ? _sub$order : original.order;
92
+ break;
93
+
94
+ case 'string':
95
+ original.title = sub || original.title;
96
+ break;
97
+
98
+ default:
99
+ }
100
+
101
+ return original;
102
+ };
@@ -103,6 +103,7 @@ var derivative_default = (api) => {
103
103
  api.addRuntimePlugin(() => {
104
104
  return strategies.appJS().slice(0, 1);
105
105
  });
106
+ api.registerPlugins([require.resolve("@umijs/plugins/dist/analytics")]);
106
107
  };
107
108
  // Annotate the CommonJS export names for ESM import in node:
108
109
  0 && (module.exports = {
@@ -31,10 +31,19 @@ var import_fs = __toESM(require("fs"));
31
31
  var import_plugin_utils = require("umi/plugin-utils");
32
32
  var import_transformer = __toESM(require("./transformer"));
33
33
  var import_rehypeText = require("./transformer/rehypeText");
34
+ function getDemoSourceFiles(demos = []) {
35
+ return demos.reduce((ret, demo) => {
36
+ if ("sources" in demo) {
37
+ ret.push(...Object.values(demo.sources));
38
+ }
39
+ return ret;
40
+ }, []);
41
+ }
34
42
  function emit(opts, ret) {
35
43
  if (opts.mode === "meta") {
36
44
  const { demos, frontmatter, toc, texts, embeds = [] } = ret.meta;
37
45
  embeds.forEach((file) => this.addDependency(file));
46
+ getDemoSourceFiles(demos).forEach((file) => this.addDependency(file));
38
47
  if (demos && opts.onResolveDemos) {
39
48
  opts.onResolveDemos(demos);
40
49
  }
@@ -87,11 +96,11 @@ function DumiMarkdownContent() {
87
96
  export default DumiMarkdownContent;`;
88
97
  }
89
98
  }
90
- function getEmbedsCacheKey(embeds = []) {
91
- return JSON.stringify(embeds.map((file) => `${file}:${import_fs.default.statSync(file).mtimeMs}`));
99
+ function getDepsCacheKey(deps = []) {
100
+ return JSON.stringify(deps.map((file) => `${file}:${import_fs.default.statSync(file).mtimeMs}`));
92
101
  }
93
102
  var deferrer = {};
94
- var embedsMapping = {};
103
+ var depsMapping = {};
95
104
  function mdLoader(content) {
96
105
  const opts = this.getOptions();
97
106
  const cb = this.async();
@@ -103,7 +112,7 @@ function mdLoader(content) {
103
112
  ].join(":");
104
113
  const cacheKey = [
105
114
  baseCacheKey,
106
- getEmbedsCacheKey(embedsMapping[this.resourcePath])
115
+ getDepsCacheKey(depsMapping[this.resourcePath])
107
116
  ].join(":");
108
117
  const cacheRet = cache.getSync(cacheKey, "");
109
118
  if (cacheRet) {
@@ -120,11 +129,11 @@ function mdLoader(content) {
120
129
  fileAbsPath: this.resourcePath
121
130
  });
122
131
  deferrer[cacheKey].then((ret) => {
132
+ depsMapping[this.resourcePath] = (ret.meta.embeds || []).concat(getDemoSourceFiles(ret.meta.demos));
123
133
  const finalCacheKey = [
124
134
  baseCacheKey,
125
- getEmbedsCacheKey(ret.meta.embeds)
135
+ getDepsCacheKey(depsMapping[this.resourcePath])
126
136
  ].join(":");
127
- embedsMapping[this.resourcePath] = ret.meta.embeds || [];
128
137
  cache.setSync(finalCacheKey, ret);
129
138
  cb(null, emit.call(this, opts, ret));
130
139
  }).catch(cb);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dumi",
3
- "version": "2.0.0-rc.1",
3
+ "version": "2.0.0-rc.2",
4
4
  "description": "Framework for developing UI components",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -59,6 +59,7 @@
59
59
  "@types/mdast": "^3.0.10",
60
60
  "@umijs/bundler-utils": "^4.0.29",
61
61
  "@umijs/core": "^4.0.29",
62
+ "@umijs/plugins": "^4.0.29",
62
63
  "codesandbox": "^2.2.3",
63
64
  "deepmerge": "^4.2.2",
64
65
  "dumi-afx-deps": "^1.0.0-alpha.1",