const { environment } = require('@rails/webpacker') const { resolve, basename, extname } = require('path') const { safeLoad } = require('js-yaml') const { readFileSync } = require('fs')

const filePath = resolve('config', 'slickr.yml') const config = safeLoad(readFileSync(filePath), 'utf8’) const { include_webpacks } = config

const fs = require('fs')

const babelLoader = environment.loaders.get('babel') babelLoader.exclude = /node_modules/(?!(slickr)/).*/

environment.loaders.push({key: 'babelrc', value: { test: /.babelrc$/, loader: 'ignore-loader' }})

environment.toWebpackConfigForRailsEngine = function() {

const config = environment.toWebpackConfig()

Object.keys(include_webpacks).forEach(function(key) {
  const val = this[key]
  const enginePath = `${__dirname}/../../node_modules/${key}/`
  const filePath = `${enginePath}${val}`
  const files = fs.readdirSync(filePath)
  files.forEach(function(file){
    const fullPath = `${filePath}/${file}`
    config.entry[`${basename(fullPath, extname(fullPath))}`] = fullPath
  })
}, include_webpacks)

return config

}

module.exports = environment