description and source-codefunction babel( options ) {
options = assign( {}, options || {} );
var inlineHelpers = {};
var filter = rollupPluginutils.createFilter( options.include, options.exclude );
delete options.include;
delete options.exclude;
if ( options.sourceMap !== false ) { options.sourceMaps = true; }
if ( options.sourceMaps !== false ) { options.sourceMaps = true; }
delete options.sourceMap;
var runtimeHelpers = options.runtimeHelpers;
delete options.runtimeHelpers;
var externalHelpers;
if ( options.externalHelpers ) { externalHelpers = true; }
delete options.externalHelpers;
var externalHelpersWhitelist = null;
if ( options.externalHelpersWhitelist ) { externalHelpersWhitelist = options.externalHelpersWhitelist; }
delete options.externalHelpersWhitelist;
var warn = function (msg) { return console.warn(msg); }; // eslint-disable-line no-console
return {
name: 'babel',
options: function options$1 ( options ) {
warn = options.onwarn || warn;
},
resolveId: function resolveId ( id ) {
if ( id === HELPERS ) { return id; }
},
load: function load ( id ) {
if ( id === HELPERS ) {
var pattern = new RegExp( ("babelHelpers\\.(" + (keywordHelpers.join('|')) + ")"), 'g' );
var helpers = babelCore.buildExternalHelpers( externalHelpersWhitelist, 'var' )
.replace( pattern, 'var _$1' )
.replace( /^babelHelpers\./gm, 'export var ' ) +
"\n\nexport { " + (keywordHelpers.map( function (word) { return ("_" + word + " as " + word); }).join( ', ')) + " }";
return helpers;
}
},
transform: function transform$1 ( code, id ) {
if ( !filter( id ) ) { return null; }
if ( id === HELPERS ) { return null; }
var helpers = preflightCheck( options, path.dirname( id ) );
var localOpts = assign({ filename: id }, options );
var transformed = babelCore.transform( code, localOpts );
var ref = transformed.metadata;
var usedHelpers = ref.usedHelpers;
if ( usedHelpers.length ) {
if ( helpers === BUNDLED ) {
if ( !externalHelpers ) {
transformed.code += "\n\nimport * as babelHelpers from '" + HELPERS + "';";
}
} else if ( helpers === RUNTIME ) {
if ( !runtimeHelpers ) {
throw new Error( 'Runtime helpers are not enabled. Either exclude the transform-runtime Babel plugin or pass the `runtimeHelpers
: true` option. See https://github.com/rollup/rollup-plugin-babel#configuring-babel for more information' );
}
} else {
usedHelpers.forEach( function (helper) {
if ( inlineHelpers[ helper ] ) {
warnOnce( warn, ("The '" + helper + "' Babel helper is used more than once in your code. It's strongly recommended that you
use the\"external-helpers\" plugin or the \"es2015-rollup\" preset. See https://github.com/rollup/rollup-plugin-babel#configuring-babel for more information") );
}
inlineHelpers[ helper ] = true;
});
}
}
return {
code: transformed.code,
map: transformed.map
};
}
};
}