Skip to content

Commit 58f678e

Browse files
committed
feat: Add sucrase hook as alternative for .jsx
1 parent 6dbe2a7 commit 58f678e

File tree

3 files changed

+34
-9
lines changed

3 files changed

+34
-9
lines changed

Diff for: index.js

+12-9
Original file line numberDiff line numberDiff line change
@@ -151,16 +151,19 @@ var extensions = {
151151
'.js': null,
152152
'.json': null,
153153
'.json5': 'json5/lib/register',
154-
'.jsx': {
155-
module: '@babel/register',
156-
register: function (hook) {
157-
hook({
158-
extensions: '.jsx',
159-
rootMode: 'upward-optional',
160-
overrides: [{ only: [endsInJsx] }],
161-
});
154+
'.jsx': [
155+
{
156+
module: '@babel/register',
157+
register: function (hook) {
158+
hook({
159+
extensions: '.jsx',
160+
rootMode: 'upward-optional',
161+
overrides: [{ only: [endsInJsx] }],
162+
});
163+
},
162164
},
163-
},
165+
'sucrase/register/jsx'
166+
],
164167
'.litcoffee': 'coffeescript/register',
165168
'.mjs': mjsStub,
166169
'.node': null,

Diff for: test/fixtures/jsx/1/package.json

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"dependencies": {
3+
"sucrase": "^3.12.1"
4+
}
5+
}

Diff for: test/fixtures/jsx/1/test.jsx

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const React = {
2+
createElement: function (Component) {
3+
return Component();
4+
},
5+
};
6+
7+
// Test harmony arrow functions
8+
const Component = () => {
9+
var trueKey = true;
10+
var falseKey = false;
11+
var subKey = { subProp: 1 };
12+
// Test harmony object short notation
13+
return { data: { trueKey, falseKey, subKey } };
14+
};
15+
16+
// Test JSX syntax
17+
module.exports = <Component />;

0 commit comments

Comments
 (0)