dumi 2.3.0-beta.0 → 2.3.0-beta.1
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/client/pages/Demo/index.js +4 -4
- package/dist/client/theme-api/useLiveDemo.d.ts +1 -1
- package/dist/client/theme-api/useLiveDemo.js +4 -4
- package/dist/features/configPlugins/schema.js +3 -1
- package/dist/features/derivative.js +5 -0
- package/dist/types.d.ts +2 -2
- package/package.json +1 -1
- package/theme-default/builtins/Previewer/index.js +6 -6
- package/theme-default/slots/PreviewerActions/index.d.ts +3 -3
- package/theme-default/slots/PreviewerActions/index.js +5 -5
|
@@ -8,19 +8,19 @@ var DemoRenderPage = function DemoRenderPage() {
|
|
|
8
8
|
component = _ref.component;
|
|
9
9
|
var _useLiveDemo = useLiveDemo(id),
|
|
10
10
|
liveDemoNode = _useLiveDemo.node,
|
|
11
|
-
|
|
11
|
+
setSource = _useLiveDemo.setSource;
|
|
12
12
|
var finalNode = liveDemoNode || component && /*#__PURE__*/createElement(component);
|
|
13
13
|
useEffect(function () {
|
|
14
14
|
var handler = function handler(ev) {
|
|
15
|
-
if (ev.data.type === 'dumi.liveDemo.
|
|
16
|
-
|
|
15
|
+
if (ev.data.type === 'dumi.liveDemo.setSource') {
|
|
16
|
+
setSource(ev.data.value);
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
window.addEventListener('message', handler);
|
|
20
20
|
return function () {
|
|
21
21
|
return window.removeEventListener('message', handler);
|
|
22
22
|
};
|
|
23
|
-
}, [
|
|
23
|
+
}, [setSource]);
|
|
24
24
|
return finalNode;
|
|
25
25
|
};
|
|
26
26
|
export default DemoRenderPage;
|
|
@@ -19,11 +19,11 @@ export var useLiveDemo = function useLiveDemo(id) {
|
|
|
19
19
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
20
20
|
error = _useState4[0],
|
|
21
21
|
setError = _useState4[1];
|
|
22
|
-
var
|
|
22
|
+
var setSource = useCallback(function (source) {
|
|
23
23
|
var entryFileName = Object.keys(asset.dependencies).find(function (k) {
|
|
24
24
|
return asset.dependencies[k].type === 'FILE';
|
|
25
25
|
});
|
|
26
|
-
var entryFileCode =
|
|
26
|
+
var entryFileCode = source[entryFileName];
|
|
27
27
|
var require = function require(v) {
|
|
28
28
|
if (v in context) return context[v];
|
|
29
29
|
throw new Error("Cannot find module: ".concat(v));
|
|
@@ -54,7 +54,7 @@ export var useLiveDemo = function useLiveDemo(id) {
|
|
|
54
54
|
renderToStaticMarkup(newDemoNode);
|
|
55
55
|
console.error = oError;
|
|
56
56
|
|
|
57
|
-
// set new demo node with passing
|
|
57
|
+
// set new demo node with passing source
|
|
58
58
|
setDemoNode(newDemoNode);
|
|
59
59
|
setError(null);
|
|
60
60
|
} catch (err) {
|
|
@@ -65,6 +65,6 @@ export var useLiveDemo = function useLiveDemo(id) {
|
|
|
65
65
|
return {
|
|
66
66
|
node: demoNode,
|
|
67
67
|
error: error,
|
|
68
|
-
|
|
68
|
+
setSource: setSource
|
|
69
69
|
};
|
|
70
70
|
};
|
|
@@ -54,7 +54,9 @@ function getSchemas() {
|
|
|
54
54
|
extraRemarkPlugins: getUnifiedPluginSchema,
|
|
55
55
|
extraRehypePlugins: getUnifiedPluginSchema,
|
|
56
56
|
themeConfig: (Joi) => Joi.object().optional(),
|
|
57
|
-
logo: (Joi) => Joi.string()
|
|
57
|
+
logo: (Joi) => Joi.string(),
|
|
58
|
+
// FIXME: remove before 2.3.0
|
|
59
|
+
live: (Joi) => Joi.bool().optional()
|
|
58
60
|
};
|
|
59
61
|
}
|
|
60
62
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -158,6 +158,11 @@ var derivative_default = (api) => {
|
|
|
158
158
|
}
|
|
159
159
|
} catch {
|
|
160
160
|
}
|
|
161
|
+
if ("live" in api.config) {
|
|
162
|
+
import_plugin_utils.logger.warn(
|
|
163
|
+
"`live` config is deprecated and live demo is always enabled now, please remove it."
|
|
164
|
+
);
|
|
165
|
+
}
|
|
161
166
|
});
|
|
162
167
|
safeExcludeInMFSU(api, [
|
|
163
168
|
new RegExp("dumi/dist/client"),
|
package/dist/types.d.ts
CHANGED
|
@@ -78,9 +78,9 @@ export declare abstract class IDumiTechStack {
|
|
|
78
78
|
*/
|
|
79
79
|
abstract generatePreviewerProps?(props: IDumiDemoProps['previewerProps'], opts: Parameters<NonNullable<IDumiTechStack['generateMetadata']>>[1]): Promise<IDumiDemoProps['previewerProps']> | IDumiDemoProps['previewerProps'];
|
|
80
80
|
/**
|
|
81
|
-
* generator for return file path of demo
|
|
81
|
+
* generator for return file path of demo source
|
|
82
82
|
*/
|
|
83
|
-
abstract generateSources?(
|
|
83
|
+
abstract generateSources?(source: IParsedBlockAsset['resolveMap'], opts: Parameters<NonNullable<IDumiTechStack['generateMetadata']>>[1]): Promise<IParsedBlockAsset['resolveMap']> | IParsedBlockAsset['resolveMap'];
|
|
84
84
|
}
|
|
85
85
|
export type IApi = IUmiApi & {
|
|
86
86
|
config: IDumiConfig & {
|
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@ var Previewer = function Previewer(props) {
|
|
|
21
21
|
var _useLiveDemo = useLiveDemo(props.asset.id),
|
|
22
22
|
liveDemoNode = _useLiveDemo.node,
|
|
23
23
|
liveDemoError = _useLiveDemo.error,
|
|
24
|
-
|
|
24
|
+
setLiveDemoSource = _useLiveDemo.setSource;
|
|
25
25
|
var _useState = useState(null),
|
|
26
26
|
_useState2 = _slicedToArray(_useState, 2),
|
|
27
27
|
editorError = _useState2[0],
|
|
@@ -61,18 +61,18 @@ var Previewer = function Previewer(props) {
|
|
|
61
61
|
__html: props.description
|
|
62
62
|
}
|
|
63
63
|
})), /*#__PURE__*/React.createElement(PreviewerActions, _extends({}, props, {
|
|
64
|
-
|
|
64
|
+
onSourceTranspile: function onSourceTranspile(_ref) {
|
|
65
65
|
var err = _ref.err,
|
|
66
|
-
|
|
66
|
+
source = _ref.source;
|
|
67
67
|
if (err) {
|
|
68
68
|
setEditorError(err);
|
|
69
69
|
} else {
|
|
70
70
|
setEditorError(null);
|
|
71
|
-
|
|
71
|
+
setLiveDemoSource(source);
|
|
72
72
|
if (props.iframe) {
|
|
73
73
|
demoContainer.current.querySelector('iframe').contentWindow.postMessage({
|
|
74
|
-
type: 'dumi.liveDemo.
|
|
75
|
-
value:
|
|
74
|
+
type: 'dumi.liveDemo.setSource',
|
|
75
|
+
value: source
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -9,12 +9,12 @@ export interface IPreviewerActionsProps extends IPreviewerProps {
|
|
|
9
9
|
extra?: ReactNode;
|
|
10
10
|
forceShowCode?: boolean;
|
|
11
11
|
demoContainer: HTMLDivElement | HTMLIFrameElement;
|
|
12
|
-
|
|
12
|
+
onSourceTranspile?: (args: {
|
|
13
13
|
err: Error;
|
|
14
|
-
|
|
14
|
+
source?: null;
|
|
15
15
|
} | {
|
|
16
16
|
err?: null;
|
|
17
|
-
|
|
17
|
+
source: Record<string, string>;
|
|
18
18
|
}) => void;
|
|
19
19
|
}
|
|
20
20
|
declare const PreviewerActions: FC<IPreviewerActionsProps>;
|
|
@@ -182,14 +182,14 @@ var PreviewerActions = function PreviewerActions(props) {
|
|
|
182
182
|
var err = _ref5.err,
|
|
183
183
|
code = _ref5.code;
|
|
184
184
|
if (err) {
|
|
185
|
-
var _props$
|
|
186
|
-
(_props$
|
|
185
|
+
var _props$onSourceTransp;
|
|
186
|
+
(_props$onSourceTransp = props.onSourceTranspile) === null || _props$onSourceTransp === void 0 ? void 0 : _props$onSourceTransp.call(props, {
|
|
187
187
|
err: err
|
|
188
188
|
});
|
|
189
189
|
} else {
|
|
190
|
-
var _props$
|
|
191
|
-
(_props$
|
|
192
|
-
|
|
190
|
+
var _props$onSourceTransp2;
|
|
191
|
+
(_props$onSourceTransp2 = props.onSourceTranspile) === null || _props$onSourceTransp2 === void 0 ? void 0 : _props$onSourceTransp2.call(props, {
|
|
192
|
+
source: _defineProperty({}, files[i][0], code)
|
|
193
193
|
});
|
|
194
194
|
}
|
|
195
195
|
},
|