Skip to content

Commit cc89bff

Browse files
committed
feat: add jiti support
1 parent c09bf70 commit cc89bff

File tree

10 files changed

+122
-1
lines changed

10 files changed

+122
-1
lines changed

index.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,16 @@ var extensions = {
215215
hook(Object.assign({}, config, { extensions: '.jsx' }));
216216
},
217217
},
218+
{
219+
module: 'jiti/register',
220+
register: function (hook, config) {
221+
config = config || {
222+
jsx: true,
223+
};
224+
225+
hook(Object.assign({}, config, { extensions: ['.jsx'] }));
226+
},
227+
},
218228
'sucrase/register/jsx',
219229
],
220230
'.litcoffee': 'coffeescript/register',
@@ -366,6 +376,7 @@ var extensions = {
366376
'.ts': [
367377
'ts-node/register',
368378
'sucrase/register/ts',
379+
'jiti/register',
369380
{
370381
module: '@babel/register',
371382
register: function (hook, config) {
@@ -425,10 +436,20 @@ var extensions = {
425436
},
426437
},
427438
],
428-
'.cts': ['ts-node/register'],
439+
'.cts': ['ts-node/register', 'jiti/register'],
429440
'.tsx': [
430441
'ts-node/register',
431442
'sucrase/register/tsx',
443+
{
444+
module: 'jiti/register',
445+
register: function (hook, config) {
446+
config = config || {
447+
jsx: true,
448+
};
449+
450+
hook(Object.assign({}, config, { extensions: ['.tsx'] }));
451+
},
452+
},
432453
{
433454
module: '@babel/register',
434455
register: function (hook, config) {

test/fixtures/cts/1/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"dependencies": {
3+
"jiti": "^2.4.2"
4+
}
5+
}

test/fixtures/cts/1/test.cts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
var test: {
2+
data: {
3+
trueKey: boolean;
4+
falseKey: boolean;
5+
subKey: {
6+
subProp: number;
7+
};
8+
};
9+
} = {
10+
data: {
11+
trueKey: true,
12+
falseKey: false,
13+
subKey: {
14+
subProp: 1,
15+
},
16+
},
17+
};
18+
19+
export default test;

test/fixtures/cts/1/tsconfig.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"compilerOptions": {
3+
"target": "es5",
4+
"module": "commonjs",
5+
"declaration": false,
6+
"noImplicitAny": false,
7+
"removeComments": true,
8+
"sourceMap": true,
9+
"outDir": ".tmp"
10+
}
11+
}

test/fixtures/jsx/2/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"dependencies": {
3+
"jiti": "^2.4.2"
4+
}
5+
}

test/fixtures/jsx/2/test.jsx

Lines changed: 17 additions & 0 deletions
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 />;

test/fixtures/ts/5/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"dependencies": {
3+
"jiti": "^2.4.2"
4+
}
5+
}

test/fixtures/ts/5/test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
var test = {
2+
data: {
3+
trueKey: true,
4+
falseKey: false,
5+
subKey: {
6+
subProp: 1,
7+
},
8+
},
9+
};
10+
11+
var main = {
12+
default: test,
13+
};
14+
15+
export = main;

test/fixtures/tsx/5/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"dependencies": {
3+
"jiti": "^2.4.2"
4+
}
5+
}

test/fixtures/tsx/5/test.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const React = {
2+
createElement(Component: () => any) {
3+
return Component();
4+
},
5+
};
6+
7+
// Test harmony arrow functions.
8+
const Component = () => {
9+
var trueKey: boolean = true;
10+
var falseKey: boolean = false;
11+
var subKey = { subProp: 1 };
12+
13+
// Test harmony object short notation.
14+
return { data: { trueKey, falseKey, subKey } };
15+
};
16+
17+
// Test TSX syntax.
18+
export default <Component />;

0 commit comments

Comments
 (0)