laravel-elixir-bundler
Version:
Creates separate, customizable, and versioned js and css asset bundles using laravel-elixir
52 lines (44 loc) • 1.02 kB
JavaScript
var defaultsDeep = require('lodash').defaultsDeep;
var defaults = require('lodash').defaults;
var recipes = [
'sass',
'less',
'css',
'coffee',
'browserify',
'babel',
'js',
];
var baseKeys = {
assets: {},
elixConfig: {},
config: {},
white: [],
black: [],
sass: [],
less: [],
css: [],
coffee: [],
browserify: [],
babel: [],
js: []
};
var merger = {};
merger.init = function (bundle, elixConfig, config) {
defaults(bundle, baseKeys);
defaultsDeep(bundle.elixConfig, elixConfig);
defaultsDeep(bundle.config, config);
};
merger.merge = function (bundle, base) {
merger.init(bundle, base.elixConfig, base.config);
recipes.forEach(function (recipe) {
var mergeFiles = base[recipe].slice(0);
if (bundle[recipe]) {
bundle[recipe].forEach(function (file) {
mergeFiles.push(file);
});
}
bundle[recipe] = mergeFiles;
});
};
module.exports = merger;