diff --git a/index.js b/index.js
index b951fd9..3010a47 100644
--- a/index.js
+++ b/index.js
@@ -215,6 +215,12 @@ var extensions = {
hook(Object.assign({}, config, { extensions: '.jsx' }));
},
},
+ {
+ module: 'jiti/lib/jiti-register.mjs',
+ register: function () {
+ process.env.JITI_JSX = true
+ },
+ },
'sucrase/register/jsx',
],
'.litcoffee': 'coffeescript/register',
@@ -366,6 +372,7 @@ var extensions = {
'.ts': [
'ts-node/register',
'sucrase/register/ts',
+ 'jiti/lib/jiti-register.mjs',
{
module: '@babel/register',
register: function (hook, config) {
@@ -425,10 +432,16 @@ var extensions = {
},
},
],
- '.cts': ['ts-node/register'],
+ '.cts': ['ts-node/register', 'jiti/lib/jiti-register.mjs'],
'.tsx': [
'ts-node/register',
'sucrase/register/tsx',
+ {
+ module: 'jiti/lib/jiti-register.mjs',
+ register: function () {
+ process.env.JITI_JSX = true
+ },
+ },
{
module: '@babel/register',
register: function (hook, config) {
diff --git a/test/fixtures/cts/1/package.json b/test/fixtures/cts/1/package.json
new file mode 100644
index 0000000..15f2ac2
--- /dev/null
+++ b/test/fixtures/cts/1/package.json
@@ -0,0 +1,5 @@
+{
+ "dependencies": {
+ "jiti": "^2.4.2"
+ }
+}
diff --git a/test/fixtures/cts/1/test.cts b/test/fixtures/cts/1/test.cts
new file mode 100644
index 0000000..3fa0969
--- /dev/null
+++ b/test/fixtures/cts/1/test.cts
@@ -0,0 +1,19 @@
+var test: {
+ data: {
+ trueKey: boolean;
+ falseKey: boolean;
+ subKey: {
+ subProp: number;
+ };
+ };
+} = {
+ data: {
+ trueKey: true,
+ falseKey: false,
+ subKey: {
+ subProp: 1,
+ },
+ },
+};
+
+export default test;
diff --git a/test/fixtures/cts/1/tsconfig.json b/test/fixtures/cts/1/tsconfig.json
new file mode 100644
index 0000000..ca687b6
--- /dev/null
+++ b/test/fixtures/cts/1/tsconfig.json
@@ -0,0 +1,11 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "module": "commonjs",
+ "declaration": false,
+ "noImplicitAny": false,
+ "removeComments": true,
+ "sourceMap": true,
+ "outDir": ".tmp"
+ }
+}
diff --git a/test/fixtures/jsx/2/package.json b/test/fixtures/jsx/2/package.json
new file mode 100644
index 0000000..15f2ac2
--- /dev/null
+++ b/test/fixtures/jsx/2/package.json
@@ -0,0 +1,5 @@
+{
+ "dependencies": {
+ "jiti": "^2.4.2"
+ }
+}
diff --git a/test/fixtures/jsx/2/test.jsx b/test/fixtures/jsx/2/test.jsx
new file mode 100644
index 0000000..1e2bee9
--- /dev/null
+++ b/test/fixtures/jsx/2/test.jsx
@@ -0,0 +1,17 @@
+const React = {
+ createElement: function (Component) {
+ return Component();
+ },
+};
+
+// Test harmony arrow functions
+const Component = () => {
+ var trueKey = true;
+ var falseKey = false;
+ var subKey = { subProp: 1 };
+ // Test harmony object short notation
+ return { data: { trueKey, falseKey, subKey } };
+};
+
+// Test JSX syntax
+module.exports = ;
diff --git a/test/fixtures/ts/5/package.json b/test/fixtures/ts/5/package.json
new file mode 100644
index 0000000..15f2ac2
--- /dev/null
+++ b/test/fixtures/ts/5/package.json
@@ -0,0 +1,5 @@
+{
+ "dependencies": {
+ "jiti": "^2.4.2"
+ }
+}
diff --git a/test/fixtures/ts/5/test.ts b/test/fixtures/ts/5/test.ts
new file mode 100644
index 0000000..5044977
--- /dev/null
+++ b/test/fixtures/ts/5/test.ts
@@ -0,0 +1,15 @@
+var test = {
+ data: {
+ trueKey: true,
+ falseKey: false,
+ subKey: {
+ subProp: 1,
+ },
+ },
+};
+
+var main = {
+ default: test,
+};
+
+export = main;
diff --git a/test/fixtures/tsx/5/package.json b/test/fixtures/tsx/5/package.json
new file mode 100644
index 0000000..15f2ac2
--- /dev/null
+++ b/test/fixtures/tsx/5/package.json
@@ -0,0 +1,5 @@
+{
+ "dependencies": {
+ "jiti": "^2.4.2"
+ }
+}
diff --git a/test/fixtures/tsx/5/test.tsx b/test/fixtures/tsx/5/test.tsx
new file mode 100644
index 0000000..d26bcf1
--- /dev/null
+++ b/test/fixtures/tsx/5/test.tsx
@@ -0,0 +1,18 @@
+const React = {
+ createElement(Component: () => any) {
+ return Component();
+ },
+};
+
+// Test harmony arrow functions.
+const Component = () => {
+ var trueKey: boolean = true;
+ var falseKey: boolean = false;
+ var subKey = { subProp: 1 };
+
+ // Test harmony object short notation.
+ return { data: { trueKey, falseKey, subKey } };
+};
+
+// Test TSX syntax.
+export default ;