const encore = require('@symfony/webpack-encore');
const webpack = require('webpack');
const { readdirSync, statSync } = require('fs');
const { join } = require('path');
const getDirectories = path => readdirSync(path).filter(
folder => statSync(join(path, folder)).isDirectory()
);
const themes = getDirectories('./assets/themes/');
const viewers = getDirectories('./assets/viewers/');
encore
.setOutputPath('public/assets/')
.setPublicPath('/assets')
.cleanupOutputBeforeBuild()
.disableSingleRuntimeChunk()
.enableSourceMaps(!encore.isProduction())
.enableSassLoader()
.enablePostCssLoader()
;
for (const theme of themes) {
encore.addStyleEntry(theme + '/css/main', './assets/themes/' + theme + '/assets/scss/main.scss');
encore.addEntry(theme + '/js/main', './assets/themes/' + theme + '/assets/js/main.js');
}
for (const viewer of viewers) {
encore.addStyleEntry(viewer + '/css/main', './assets/viewers/' + viewer + '/main.scss');
encore.addEntry(viewer + '/js/main', './assets/viewers/' + viewer + '/main.js');
}
module.exports = encore.getWebpackConfig();