Skip to content

Commit 3e9a3cd

Browse files
committed
fixed support for JSX fragments
turns out 5467bc6 was insufficient
1 parent b76dbfe commit 3e9a3cd

File tree

6 files changed

+21
-11
lines changed

6 files changed

+21
-11
lines changed

lib/bundle/babel.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ module.exports = function generateTranspiler({ esnext, jsx, exclude }, { browser
3131

3232
if(jsx) {
3333
extensions.push(".jsx");
34-
let { pragma } = jsx;
35-
let options = pragma ? { pragma } : {};
36-
plugins.push(["@babel/plugin-transform-react-jsx", options]);
34+
let { pragma, pragmaFrag } = jsx;
35+
plugins.push(["@babel/plugin-transform-react-jsx",
36+
{ pragma, pragmaFrag }]);
3737
}
3838

3939
if(plugins.length) {

test/cli/test_jsx/expected.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ var MyComponent = function MyComponent() {
1313

1414
var el = createElement(MyComponent, {
1515
type: "dummy"
16-
}, createElement("my-element", null, "lorem ipsum", createElement("mark", null, "666"), "dolor sit amet"));
16+
}, createElement("my-element", null, "lorem ipsum", createElement(Fragment, null, createElement("mark", null, "666"), "dolor sit amet")));
1717

1818
}());

test/cli/test_jsx/faucet.config.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ module.exports = {
77
source: "./src/index.jsx",
88
target: "./dist/bundle.js",
99
esnext: true,
10-
jsx: { pragma: "createElement" }
10+
jsx: {
11+
pragma: "createElement",
12+
fragment: "Fragment"
13+
}
1114
}],
1215
plugins: {
1316
js: {

test/cli/test_jsx/src/index.jsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ import MyComponent from "./component"
33
let el = <MyComponent type="dummy">
44
<my-element>
55
lorem ipsum
6-
<mark>666</mark>
7-
dolor sit amet
6+
<>
7+
<mark>666</mark>
8+
dolor sit amet
9+
</>
810
</my-element>
911
</MyComponent>

test/unit/expected/virtual_bundle_jsx.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function List(_, ...children) {
2222

2323
console.log(createElement(List, null, createElement(Button, {
2424
label: UTIL
25-
}), createElement(Button, {
25+
}), createElement(Fragment, null, createElement(Button, {
2626
type: "reset",
2727
label: MYLIB
28-
})));
28+
}))));

test/unit/test_virtual.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@ console.log(UTIL + MYLIB);
3838
it("should support JSX", async () => {
3939
let bundle = new VirtualBundle(FIXTURES_DIR, {
4040
format: "CommonJS",
41-
jsx: { pragma: "createElement" }
41+
jsx: {
42+
pragma: "createElement",
43+
fragment: "Fragment"
44+
}
4245
}, DEFAULT_OPTIONS);
4346

4447
let { code, error } = await bundle.compile(`
@@ -49,7 +52,9 @@ import createElement from "my-lib/elements";
4952
5053
console.log(<List>
5154
<Button label={UTIL} />
52-
<Button type="reset" label={MYLIB} />
55+
<>
56+
<Button type="reset" label={MYLIB} />
57+
</>
5358
</List>);
5459
`);
5560
assertSame(error, undefined);

0 commit comments

Comments
 (0)