blob: cba2f1b973abcd3e0edc2d769944d49cab1cb8bb [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001const extensions = {
2 '.babel.js': [
3 {
4 module: '@babel/register',
5 register: function (module) {
6 module({
7 // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
8 // which only captures the final extension (.babel.js -> .js)
9 extensions: '.js'
10 });
11 }
12 },
13 {
14 module: 'babel-register',
15 register: function (module) {
16 module({
17 // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
18 // which only captures the final extension (.babel.js -> .js)
19 extensions: '.js'
20 });
21 }
22 },
23 {
24 module: 'babel-core/register',
25 register: function (module) {
26 module({
27 extensions: '.js'
28 });
29 }
30 },
31 {
32 module: 'babel/register',
33 register: function (module) {
34 module({
35 extensions: '.js'
36 });
37 }
38 }
39 ],
40 '.buble.js': 'buble/register',
41 '.cirru': 'cirru-script/lib/register',
42 '.cjsx': 'node-cjsx/register',
43 '.co': 'coco',
44 '.coffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
45 '.coffee.md': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
46 '.csv': 'require-csv',
47 '.eg': 'earlgrey/register',
48 '.iced': ['iced-coffee-script/register', 'iced-coffee-script'],
49 '.iced.md': 'iced-coffee-script/register',
50 '.ini': 'require-ini',
51 '.js': null,
52 '.json': null,
53 '.json5': 'json5/lib/require',
54 '.jsx': [
55 {
56 module: '@babel/register',
57 register: function (module) {
58 module({
59 extensions: '.jsx'
60 });
61 }
62 },
63 {
64 module: 'babel-register',
65 register: function (module) {
66 module({
67 extensions: '.jsx'
68 });
69 }
70 },
71 {
72 module: 'babel-core/register',
73 register: function (module) {
74 module({
75 extensions: '.jsx'
76 });
77 }
78 },
79 {
80 module: 'babel/register',
81 register: function (module) {
82 module({
83 extensions: '.jsx'
84 });
85 },
86 },
87 {
88 module: 'node-jsx',
89 register: function (module) {
90 module.install({
91 extension: '.jsx',
92 harmony: true
93 });
94 }
95 }
96 ],
97 '.litcoffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
98 '.liticed': 'iced-coffee-script/register',
99 '.ls': ['livescript', 'LiveScript'],
100 '.node': null,
101 '.toml': {
102 module: 'toml-require',
103 register: function (module) {
104 module.install();
105 }
106 },
107 '.ts': ['ts-node/register', 'typescript-node/register', 'typescript-register', 'typescript-require'],
108 '.tsx': ['ts-node/register', 'typescript-node/register'],
109 '.wisp': 'wisp/engine/node',
110 '.xml': 'require-xml',
111 '.yaml': 'require-yaml',
112 '.yml': 'require-yaml'
113};
114
115const jsVariantExtensions = [
116 '.js',
117 '.babel.js',
118 '.buble.js',
119 '.cirru',
120 '.cjsx',
121 '.co',
122 '.coffee',
123 '.coffee.md',
124 '.eg',
125 '.iced',
126 '.iced.md',
127 '.jsx',
128 '.litcoffee',
129 '.liticed',
130 '.ls',
131 '.ts',
132 '.wisp'
133];
134
135module.exports = {
136 extensions: extensions,
137 jsVariants: jsVariantExtensions.reduce(function (result, ext) {
138 result[ext] = extensions[ext];
139 return result;
140 }, {})
141};