UNPKG

buba

Version:

Buble + little bit of babel for your esnext tests

39 lines (28 loc) 1.04 kB
'use strict' const transformFileSync = require('babel-core').transformFileSync const transform = require('buble').transform const babelPlugin = require('babel-plugin-transform-es2015-modules-commonjs') const merge = require('./merge') const contains = (a, b) => a.indexOf(b) > 0 const EXTENSIONS = ['.js', '.es', '.es6'] let options = { buble: { transforms: { dangerousForOf: true, generator: false } }, babel: { plugins: [babelPlugin] } } const shouldSkip = file => contains(file, 'node_modules') const original = require.extensions['.js'] const compile = function (module, filename) { module._compile(transform(transformFileSync(filename, options.babel).code, options.buble).code, filename) } const compileEachExtension = ext => require.extensions[ext] = (module, filename) => shouldSkip(filename) ? original(module, filename) : compile(module, filename) // eslint-disable-line no-return-assign EXTENSIONS.forEach(compileEachExtension) module.exports = opts => { options = merge(options, opts) }