const webpack = require('webpack');
const fs = require('fs');
const path = require('path');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
const pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, 'package.json')));

const banner =
`${pkg.title} ${pkg.version} <${pkg.homepage}>
Copyright (c) ${(new Date()).getFullYear()} ${pkg.author.name} <${pkg.author.url}>
Released under ${pkg.license} License`;

const plugins = [
    new webpack.DefinePlugin({
        '__DEV__': true,
        '__VERSION__': JSON.stringify(pkg.version)
    }),
    new webpack.BannerPlugin(banner)
];

const modules = {
    loaders: [{
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader'
    }]
};

module.exports = [
    {
        entry: './src/index.js',
        output: {
            filename: './dist/html2canvas.js',
            library: 'html2canvas',
            libraryTarget: 'umd'
        },
        module: modules,
        plugins
    },
    {
        entry: './src/index.js',
        output: {
            filename: './dist/html2canvas.min.js',
            library: 'html2canvas',
            libraryTarget: 'umd'
        },
        module: modules,
        plugins: plugins.concat([new UglifyJSPlugin(), new webpack.BannerPlugin(banner)])
    },
    {
        entry: './src/renderer/RefTestRenderer.js',
        output: {
            filename: './dist/RefTestRenderer.js',
            library: 'RefTestRenderer',
            libraryTarget: 'umd'
        },
        module: modules,
        plugins
    },
    {
        entry: './tests/testrunner.js',
        output: {
            filename: './build/testrunner.js',
            library: 'testrunner',
            libraryTarget: 'umd'
        },
        module: modules,
        plugins
    }
];