const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const postcssConfig = require('./postcss.config.js');

const cssLoader = (env, type) => {
    let loaders = [{
        loader: 'css-loader',
        options: {
            url: false,
            sourceMap: env === 'dev'
        }
    }];

    if (type === 'css') {
        loaders.push({
            loader: 'postcss-loader',
            options: {
                plugins: postcssConfig.postcssPlugin(env),
                parser: 'postcss-scss'
            }
        });
    }

    // if (env === 'dev') {
    //     loaders.unshift({
    //         loader: 'style-loader'
    //     });
    //     return loaders;
    // }

    return ExtractTextPlugin.extract({
        fallback: type === 'css' ? 'style-loader' : 'vue-style-loader',
        use: loaders
    });
};

const hbsLoader = {
    loader: 'handlebars-loader',
    options: {
        helperDirs: [
            path.join(__dirname, '../js/common/helpers')
        ],
        partialDirs: [
            path.join(__dirname, '../../doraemon/views/partial')
        ]
    }
};

module.exports = {
    cssLoader,
    hbsLoader
};