index.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. const 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-core/register',
  15. register: function (module) {
  16. module({
  17. extensions: '.js'
  18. });
  19. }
  20. },
  21. {
  22. module: 'babel/register',
  23. register: function (module) {
  24. module({
  25. extensions: '.js'
  26. });
  27. }
  28. }
  29. ],
  30. '.buble.js': 'buble/register',
  31. '.cirru': 'cirru-script/lib/register',
  32. '.cjsx': 'node-cjsx/register',
  33. '.co': 'coco',
  34. '.coffee': ['coffee-script/register', 'coffee-script', 'coffeescript/register', 'coffeescript'],
  35. '.coffee.md': ['coffee-script/register', 'coffee-script', 'coffeescript/register', 'coffeescript'],
  36. '.csv': 'require-csv',
  37. '.eg': 'earlgrey/register',
  38. '.iced': ['iced-coffee-script/register', 'iced-coffee-script'],
  39. '.iced.md': 'iced-coffee-script/register',
  40. '.ini': 'require-ini',
  41. '.js': null,
  42. '.json': null,
  43. '.json5': 'json5/lib/require',
  44. '.jsx': [
  45. {
  46. module: 'babel-register',
  47. register: function (module) {
  48. module({
  49. extensions: '.jsx'
  50. });
  51. }
  52. },
  53. {
  54. module: 'babel-core/register',
  55. register: function (module) {
  56. module({
  57. extensions: '.jsx'
  58. });
  59. }
  60. },
  61. {
  62. module: 'babel/register',
  63. register: function (module) {
  64. module({
  65. extensions: '.jsx'
  66. });
  67. },
  68. },
  69. {
  70. module: 'node-jsx',
  71. register: function (module) {
  72. module.install({
  73. extension: '.jsx',
  74. harmony: true
  75. });
  76. }
  77. }
  78. ],
  79. '.litcoffee': ['coffee-script/register', 'coffee-script', 'coffeescript/register', 'coffeescript'],
  80. '.liticed': 'iced-coffee-script/register',
  81. '.ls': ['livescript', 'LiveScript'],
  82. '.node': null,
  83. '.toml': {
  84. module: 'toml-require',
  85. register: function (module) {
  86. module.install();
  87. }
  88. },
  89. '.ts': ['ts-node/register', 'typescript-node/register', 'typescript-register', 'typescript-require'],
  90. '.tsx': ['ts-node/register', 'typescript-node/register'],
  91. '.wisp': 'wisp/engine/node',
  92. '.xml': 'require-xml',
  93. '.yaml': 'require-yaml',
  94. '.yml': 'require-yaml'
  95. };
  96. const jsVariantExtensions = [
  97. '.js',
  98. '.babel.js',
  99. '.buble.js',
  100. '.cirru',
  101. '.cjsx',
  102. '.co',
  103. '.coffee',
  104. '.coffee.md',
  105. '.eg',
  106. '.iced',
  107. '.iced.md',
  108. '.jsx',
  109. '.litcoffee',
  110. '.liticed',
  111. '.ls',
  112. '.ts',
  113. '.wisp'
  114. ];
  115. module.exports = {
  116. extensions: extensions,
  117. jsVariants: jsVariantExtensions.reduce(function (result, ext) {
  118. result[ext] = extensions[ext];
  119. return result;
  120. }, {})
  121. };