| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 | var path = require('path');var mjsStub = path.join(__dirname, 'mjs-stub');var extensions = {  '.babel.js': [    {      module: '@babel/register',      register: function(hook) {        // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353        // which only captures the final extension (.babel.js -> .js)        hook({ extensions: '.js' });      },    },    {      module: 'babel-register',      register: function(hook) {        hook({ extensions: '.js' });      },    },    {      module: 'babel-core/register',      register: function(hook) {        hook({ extensions: '.js' });      },    },    {      module: 'babel/register',      register: function(hook) {        hook({ extensions: '.js' });      },    },  ],  '.babel.ts': [    {      module: '@babel/register',      register: function(hook) {        hook({ extensions: '.ts' });      },    },  ],  '.buble.js': 'buble/register',  '.cirru': 'cirru-script/lib/register',  '.cjsx': 'node-cjsx/register',  '.co': 'coco',  '.coffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],  '.coffee.md': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],  '.csv': 'require-csv',  '.eg': 'earlgrey/register',  '.esm.js': {    module: 'esm',    register: function(hook) {      // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353      // which only captures the final extension (.babel.js -> .js)      var esmLoader = hook(module);      require.extensions['.js'] = esmLoader('module')._extensions['.js'];    },  },  '.iced': ['iced-coffee-script/register', 'iced-coffee-script'],  '.iced.md': 'iced-coffee-script/register',  '.ini': 'require-ini',  '.js': null,  '.json': null,  '.json5': 'json5/lib/require',  '.jsx': [    {      module: '@babel/register',      register: function(hook) {        hook({ extensions: '.jsx' });      },    },    {      module: 'babel-register',      register: function(hook) {        hook({ extensions: '.jsx' });      },    },    {      module: 'babel-core/register',      register: function(hook) {        hook({ extensions: '.jsx' });      },    },    {      module: 'babel/register',      register: function(hook) {        hook({ extensions: '.jsx' });      },    },    {      module: 'node-jsx',      register: function(hook) {        hook.install({ extension: '.jsx', harmony: true });      },    },  ],  '.litcoffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],  '.liticed': 'iced-coffee-script/register',  '.ls': ['livescript', 'LiveScript'],  '.mjs': mjsStub,  '.node': null,  '.toml': {    module: 'toml-require',    register: function(hook) {      hook.install();    },  },  '.ts': [    'ts-node/register',    'typescript-node/register',    'typescript-register',    'typescript-require',    'sucrase/register/ts',    {      module: '@babel/register',      register: function(hook) {        hook({ extensions: '.ts' });      },    },  ],  '.tsx': [    'ts-node/register',    'typescript-node/register',    'sucrase/register',    {      module: '@babel/register',      register: function(hook) {        hook({ extensions: '.tsx' });      },    },  ],  '.wisp': 'wisp/engine/node',  '.xml': 'require-xml',  '.yaml': 'require-yaml',  '.yml': 'require-yaml',};var jsVariantExtensions = [  '.js',  '.babel.js',  '.babel.ts',  '.buble.js',  '.cirru',  '.cjsx',  '.co',  '.coffee',  '.coffee.md',  '.eg',  '.esm.js',  '.iced',  '.iced.md',  '.jsx',  '.litcoffee',  '.liticed',  '.ls',  '.mjs',  '.ts',  '.tsx',  '.wisp',];module.exports = {  extensions: extensions,  jsVariants: jsVariantExtensions.reduce(function(result, ext) {    result[ext] = extensions[ext];    return result;  }, {}),};
 |