Skip to content

Commit

Permalink
feat: Add support for .sucrase.(js|jsx|ts|tsx) extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
phated committed Apr 7, 2022
1 parent e9376a1 commit 216ad12
Show file tree
Hide file tree
Showing 10 changed files with 152 additions and 0 deletions.
44 changes: 44 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,18 @@ function endsInEsbuildTs(filename) {
function endsInEsbuildTsx(filename) {
return filename.endsWith('.esbuild.tsx');
}
function endsInSucraseJs(filename) {
return filename.endsWith('.sucrase.js');
}
function endsInSucraseJsx(filename) {
return filename.endsWith('.sucrase.jsx');
}
function endsInSucraseTs(filename) {
return filename.endsWith('.sucrase.ts');
}
function endsInSucraseTsx(filename) {
return filename.endsWith('.sucrase.tsx');
}

var mjsStub = path.join(__dirname, 'mjs-stub');

Expand Down Expand Up @@ -152,6 +164,38 @@ var extensions = {
'.litcoffee': 'coffeescript/register',
'.mjs': mjsStub,
'.node': null,
'.sucrase.js': {
module: 'sucrase/dist/register',
register: function (hook) {
hook.registerJS({
matcher: endsInSucraseJs
});
}
},
'.sucrase.jsx': {
module: 'sucrase/dist/register',
register: function (hook) {
hook.registerJSX({
matcher: endsInSucraseJsx
});
}
},
'.sucrase.ts': {
module: 'sucrase/dist/register',
register: function (hook) {
hook.registerTS({
matcher: endsInSucraseTs
});
}
},
'.sucrase.tsx': {
module: 'sucrase/dist/register',
register: function (hook) {
hook.registerTSX({
matcher: endsInSucraseTsx
});
}
},
'.toml': {
module: 'toml-require',
register: function (hook) {
Expand Down
5 changes: 5 additions & 0 deletions test/fixtures/sucrase.js/0/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"dependencies": {
"sucrase": "^3.12.1"
}
}
14 changes: 14 additions & 0 deletions test/fixtures/sucrase.js/0/test.sucrase.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
class Foo {
#x = 1;
#y = 2;
}

export default {
data: {
trueKey: true,
falseKey: false,
subKey: {
subProp: 1,
},
},
};
5 changes: 5 additions & 0 deletions test/fixtures/sucrase.jsx/0/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"dependencies": {
"sucrase": "^3.12.1"
}
}
28 changes: 28 additions & 0 deletions test/fixtures/sucrase.jsx/0/test.sucrase.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
const React = {
createElement(Component) {
return Component();
},
};

class Foo {
#x = 1;
#y = 2;
}

function Bar() {
const foo = new Foo();

return foo;
}

const a = <Bar />;

export default {
data: {
trueKey: true,
falseKey: false,
subKey: {
subProp: 1,
},
},
};
5 changes: 5 additions & 0 deletions test/fixtures/sucrase.ts/0/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"dependencies": {
"sucrase": "^3.12.1"
}
}
14 changes: 14 additions & 0 deletions test/fixtures/sucrase.ts/0/test.sucrase.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
class Foo {
#x: number = 1;
#y: number = 2;
}

export default {
data: {
trueKey: true as boolean,
falseKey: false as boolean,
subKey: {
subProp: 1,
},
},
} as const;
5 changes: 5 additions & 0 deletions test/fixtures/sucrase.tsx/0/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"dependencies": {
"sucrase": "^3.12.1"
}
}
28 changes: 28 additions & 0 deletions test/fixtures/sucrase.tsx/0/test.sucrase.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
const React = {
createElement(Component) {
return Component();
},
};

class Foo {
#x: number = 1;
#y: number = 2;
}

function Bar() {
const foo = new Foo();

return foo;
}

const a = <Bar />;

export default {
data: {
trueKey: true as boolean,
falseKey: false as boolean,
subKey: {
subProp: 1,
},
},
} as const;
4 changes: 4 additions & 0 deletions test/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,10 @@ describe('interpret.extensions', function () {
case '.esbuild.jsx':
case '.esbuild.ts':
case '.esbuild.tsx':
case '.sucrase.js':
case '.sucrase.jsx':
case '.sucrase.ts':
case '.sucrase.tsx':
expected = {
default: {
data: {
Expand Down

0 comments on commit 216ad12

Please sign in to comment.