vite-plugin-react-deck 1.0.3 → 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/codegen.d.ts +1 -1
- package/index.cjs +24 -18
- package/index.mjs +24 -18
- package/package.json +2 -1
package/codegen.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function extractMainCodeAsChildren(source: string): string
|
|
1
|
+
export declare function extractMainCodeAsChildren(source: string): Promise<string>;
|
package/index.cjs
CHANGED
|
@@ -29,29 +29,34 @@ var import_gray_matter = __toESM(require("gray-matter"), 1);
|
|
|
29
29
|
var import_mdx = require("@mdx-js/mdx");
|
|
30
30
|
|
|
31
31
|
// src/codegen.ts
|
|
32
|
-
|
|
32
|
+
var import_core = __toESM(require("@swc/core"), 1);
|
|
33
|
+
function findMainFunction(program) {
|
|
34
|
+
for (const statement of program.body) {
|
|
35
|
+
if (statement.type === "FunctionDeclaration") {
|
|
36
|
+
return statement;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async function extractMainCodeAsChildren(source) {
|
|
33
41
|
const start = source.indexOf("const _components = {");
|
|
34
42
|
const end = source.indexOf("\n}", start);
|
|
35
43
|
const components = source.slice(start, end);
|
|
44
|
+
const code = await import_core.default.parse(source);
|
|
45
|
+
const mainFunction = findMainFunction(code);
|
|
46
|
+
const extractedFunction = await import_core.default.print({ type: "Module", body: [mainFunction], span: { start: 0, end: 1e3, ctxt: 0 }, interpreter: null });
|
|
47
|
+
const body = extractedFunction.code.split("\n").slice(1, -2).join("\n");
|
|
36
48
|
if (!components) {
|
|
37
49
|
return "";
|
|
38
50
|
}
|
|
39
|
-
const withWrapper =
|
|
51
|
+
const withWrapper = body.replace(
|
|
40
52
|
/};\s*return/gm,
|
|
41
|
-
"};\n const {wrapper: MDXLayout} = _components;\
|
|
53
|
+
"};\n const {wrapper: MDXLayout} = _components;\nconst _content ="
|
|
42
54
|
);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
const result = withWrapper.replace(/\n\s*return\s*</gm, "\nreturn <MDXLayout {...props}><").replace(/>;\s*$/gm, "></MDXLayout>;\n").replace(
|
|
51
|
-
/return _jsxs?\(_components/gm,
|
|
52
|
-
" return _jsx(MDXLayout, {...props, children: _jsx(_components"
|
|
53
|
-
).replace(/}\);$/gm, "})});");
|
|
54
|
-
return result;
|
|
55
|
+
return `${withWrapper}
|
|
56
|
+
return MDXLayout ? _jsx(MDXLayout, {
|
|
57
|
+
...props,
|
|
58
|
+
children: content
|
|
59
|
+
}) : content;`;
|
|
55
60
|
}
|
|
56
61
|
|
|
57
62
|
// src/slides.ts
|
|
@@ -82,7 +87,7 @@ ${slide}
|
|
|
82
87
|
frontmatterForNextSlide = null;
|
|
83
88
|
}
|
|
84
89
|
const compiledSlides = await Promise.all(
|
|
85
|
-
enrichedSlides.map(async (slide) => {
|
|
90
|
+
enrichedSlides.map(async (slide, index) => {
|
|
86
91
|
const code = addInlineModules(slide.content, inlineModules);
|
|
87
92
|
const normalizedCode = code.replace("process.env", "process\u200B.env");
|
|
88
93
|
const result = await (0, import_mdx.compile)(normalizedCode, {
|
|
@@ -92,7 +97,7 @@ ${slide}
|
|
|
92
97
|
remarkPlugins: [import_remark_gfm.default],
|
|
93
98
|
...options
|
|
94
99
|
});
|
|
95
|
-
const mainCode = extractMainCodeAsChildren(result.value.toString());
|
|
100
|
+
const mainCode = await extractMainCodeAsChildren(result.value.toString());
|
|
96
101
|
return {
|
|
97
102
|
...slide,
|
|
98
103
|
mdxContent: mainCode
|
|
@@ -271,8 +276,9 @@ var src_default = (options) => {
|
|
|
271
276
|
});
|
|
272
277
|
return contentIndex;
|
|
273
278
|
}
|
|
274
|
-
if (!id.endsWith("deck.mdx"))
|
|
279
|
+
if (!id.endsWith("deck.mdx")) {
|
|
275
280
|
return;
|
|
281
|
+
}
|
|
276
282
|
const content = await fs.readFile(id, "utf-8");
|
|
277
283
|
const data = await transformSlidesMdxToReact(content, {
|
|
278
284
|
production: isProd,
|
package/index.mjs
CHANGED
|
@@ -6,29 +6,34 @@ import matter from "gray-matter";
|
|
|
6
6
|
import { compile } from "@mdx-js/mdx";
|
|
7
7
|
|
|
8
8
|
// src/codegen.ts
|
|
9
|
-
|
|
9
|
+
import swc from "@swc/core";
|
|
10
|
+
function findMainFunction(program) {
|
|
11
|
+
for (const statement of program.body) {
|
|
12
|
+
if (statement.type === "FunctionDeclaration") {
|
|
13
|
+
return statement;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
async function extractMainCodeAsChildren(source) {
|
|
10
18
|
const start = source.indexOf("const _components = {");
|
|
11
19
|
const end = source.indexOf("\n}", start);
|
|
12
20
|
const components = source.slice(start, end);
|
|
21
|
+
const code = await swc.parse(source);
|
|
22
|
+
const mainFunction = findMainFunction(code);
|
|
23
|
+
const extractedFunction = await swc.print({ type: "Module", body: [mainFunction], span: { start: 0, end: 1e3, ctxt: 0 }, interpreter: null });
|
|
24
|
+
const body = extractedFunction.code.split("\n").slice(1, -2).join("\n");
|
|
13
25
|
if (!components) {
|
|
14
26
|
return "";
|
|
15
27
|
}
|
|
16
|
-
const withWrapper =
|
|
28
|
+
const withWrapper = body.replace(
|
|
17
29
|
/};\s*return/gm,
|
|
18
|
-
"};\n const {wrapper: MDXLayout} = _components;\
|
|
30
|
+
"};\n const {wrapper: MDXLayout} = _components;\nconst _content ="
|
|
19
31
|
);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
const result = withWrapper.replace(/\n\s*return\s*</gm, "\nreturn <MDXLayout {...props}><").replace(/>;\s*$/gm, "></MDXLayout>;\n").replace(
|
|
28
|
-
/return _jsxs?\(_components/gm,
|
|
29
|
-
" return _jsx(MDXLayout, {...props, children: _jsx(_components"
|
|
30
|
-
).replace(/}\);$/gm, "})});");
|
|
31
|
-
return result;
|
|
32
|
+
return `${withWrapper}
|
|
33
|
+
return MDXLayout ? _jsx(MDXLayout, {
|
|
34
|
+
...props,
|
|
35
|
+
children: content
|
|
36
|
+
}) : content;`;
|
|
32
37
|
}
|
|
33
38
|
|
|
34
39
|
// src/slides.ts
|
|
@@ -59,7 +64,7 @@ ${slide}
|
|
|
59
64
|
frontmatterForNextSlide = null;
|
|
60
65
|
}
|
|
61
66
|
const compiledSlides = await Promise.all(
|
|
62
|
-
enrichedSlides.map(async (slide) => {
|
|
67
|
+
enrichedSlides.map(async (slide, index) => {
|
|
63
68
|
const code = addInlineModules(slide.content, inlineModules);
|
|
64
69
|
const normalizedCode = code.replace("process.env", "process\u200B.env");
|
|
65
70
|
const result = await compile(normalizedCode, {
|
|
@@ -69,7 +74,7 @@ ${slide}
|
|
|
69
74
|
remarkPlugins: [remarkGfm],
|
|
70
75
|
...options
|
|
71
76
|
});
|
|
72
|
-
const mainCode = extractMainCodeAsChildren(result.value.toString());
|
|
77
|
+
const mainCode = await extractMainCodeAsChildren(result.value.toString());
|
|
73
78
|
return {
|
|
74
79
|
...slide,
|
|
75
80
|
mdxContent: mainCode
|
|
@@ -248,8 +253,9 @@ var src_default = (options) => {
|
|
|
248
253
|
});
|
|
249
254
|
return contentIndex;
|
|
250
255
|
}
|
|
251
|
-
if (!id.endsWith("deck.mdx"))
|
|
256
|
+
if (!id.endsWith("deck.mdx")) {
|
|
252
257
|
return;
|
|
258
|
+
}
|
|
253
259
|
const content = await fs.readFile(id, "utf-8");
|
|
254
260
|
const data = await transformSlidesMdxToReact(content, {
|
|
255
261
|
production: isProd,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-plugin-react-deck",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.cjs",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@mdx-js/mdx": "^3.0.0",
|
|
26
26
|
"@mdx-js/react": "^3.0.0",
|
|
27
|
+
"@swc/core": "^1.4.1",
|
|
27
28
|
"glob": "^10.3.10",
|
|
28
29
|
"gray-matter": "^4.0.3",
|
|
29
30
|
"remark-gfm": "^4.0.0"
|