const path = require('path');
const babel = require('./babel');

module.exports = () => ({
  ...babel({
    es: false,
    esnext: false,
    node: false
  }),
  ...{
    'config/babel.umd.js': () => {
      return {
        presets: [['env', { modules: false }], 'flow', 'react', 'stage-0']
      };
    },
    '.gitignore': ['/umd'],
    'package.json': {
      browser: 'umd/index.js',
      devDependencies: {
        rollup: '^0.49.3',
        'rollup-plugin-babel': '^3.0.2',
        'rollup-plugin-uglify': '^2.0.1'
      },
      files: ['umd/'],
      scripts: {
        'build:umd': 'rollup -c && rollup -c --min'
      }
    },
    'rollup.config.js': () => {
      const babel = require('rollup-plugin-babel');
      const babelConfig = require(path.join(process.cwd(), 'config/babel.umd'));
      const uglify = require('rollup-plugin-uglify');
      const yargs = require('yargs');
      const { min } = yargs.argv;
      return {
        input: 'src/index.js',
        output: {
          file: `umd/index${min ? '.min' : ''}.js`,
          format: 'umd'
        },
        plugins: [babel(babelConfig)].concat(min ? uglify() : []),
        sourcemap: true
      };
    }
  }
});

@@ -1,12 +1,49 @@
+const %7B merge %7D = require('lodash');%0A
 const path =
@@ -121,25 +121,30 @@
 ) =%3E
- (%7B%0A  ...
+%0A  merge(%0A    
 babel(%7B%0A
     
@@ -139,16 +139,18 @@
 babel(%7B%0A
+  
     es: 
@@ -160,16 +160,18 @@
 se,%0A    
+ 
+ 
 esnext: 
@@ -181,16 +181,18 @@
 se,%0A    
+  
 node: fa
@@ -199,16 +199,18 @@
 lse%0A
+  
   %7D),%0A  
 ...%7B
@@ -209,17 +209,18 @@
 ,%0A  
-...
+  
 %7B%0A    
+  
 'con
@@ -248,24 +248,26 @@
  =%3E %7B%0A      
+  
 return %7B%0A   
@@ -255,32 +255,34 @@
        return %7B%0A
+  
         presets:
@@ -350,22 +350,28 @@
     
+  
 %7D;%0A    
+ 
+ 
 %7D,%0A    
+ 
+ 
 '.gi
@@ -394,16 +394,18 @@
 '%5D,%0A    
+  
 'package
@@ -410,24 +410,26 @@
 ge.json': %7B%0A
+  
       browse
@@ -453,16 +453,18 @@
 ,%0A      
+  
 devDepen
@@ -470,24 +470,26 @@
 ndencies: %7B%0A
+  
         roll
@@ -503,32 +503,34 @@
 .49.3',%0A        
+ 
+ 
 'rollup-plugin-b
@@ -546,16 +546,18 @@
 3.0.2',%0A
+  
         
@@ -591,24 +591,26 @@
 .0.1'%0A      
+  
 %7D,%0A      fil
@@ -602,24 +602,26 @@
    %7D,%0A      
+ 
+ 
 files: %5B'umd
@@ -631,16 +631,18 @@
 ,%0A      
+  
 scripts:
@@ -640,24 +640,26 @@
  scripts: %7B%0A
+  
         'bui
@@ -708,17 +708,23 @@
     
+  
 %7D%0A    
+ 
+ 
 %7D,%0A
+  
     
@@ -747,24 +747,26 @@
 s': () =%3E %7B%0A
+  
       const 
@@ -801,24 +801,26 @@
 in-babel');%0A
+  
       const 
@@ -851,16 +851,27 @@
 th.join(
+%0A          
 process.
@@ -876,16 +876,26 @@
 s.cwd(),
+%0A         
  'config
@@ -909,12 +909,23 @@
 umd'
+%0A        
 ));%0A
+  
     
@@ -976,24 +976,26 @@
 fy');%0A      
+  
 const yargs 
@@ -1016,24 +1016,26 @@
 gs');%0A      
+  
 const %7B min 
@@ -1052,24 +1052,26 @@
 argv;%0A      
+ 
+ 
 return %7B%0A   
@@ -1059,32 +1059,34 @@
        return %7B%0A
+  
         input: '
@@ -1092,32 +1092,34 @@
 'src/index.js',%0A
+  
         output: 
@@ -1126,24 +1126,26 @@
 %7B%0A          
+  
 file: %60umd/i
@@ -1184,16 +1184,18 @@
         
+  
 format: 
@@ -1200,35 +1200,39 @@
 : 'umd'%0A        
+ 
+ 
 %7D,%0A
+  
         plugins:
@@ -1282,16 +1282,18 @@
  : %5B%5D),%0A
+  
         
@@ -1310,26 +1310,36 @@
  true%0A      
+  %7D;%0A      
 %7D
-;
 %0A    %7D%0A  %7D%0A%7D
@@ -1339,10 +1339,7 @@
 %7D%0A  
-%7D%0A%7D
 );%0A

Fix for rollup config.