import merge = require ( 'deepmerge' ) ; import { resolve } from 'path' ; interface ResourceFolder { from : string ; to : string ; } interface Config { buildDir : string ; bundler : string ; mode : string ; noclear : boolean ; sourceDir : string ; resources : ResourceFolder [ ] ; devServer : { port : number ; host : string ; open : boolean ; stats : string ; noInfo : boolean ; contentBase : string ; } ; lwcCompilerOutput : { development ? : { compat ? : boolean ; env ? : { NODE_ENV : string ; } ; format ? : string ; } ; production ? : { compat ? : boolean ; env ? : { NODE_ENV : string ; } ; format ? : string ; } ; } ; lwcCompilerStylesheetConfig : any ; lwcExperimentalDynamicComponent : any ; } export const defaultLwcConfig = { buildDir : './dist' , bundler : 'webpack' , mode : 'development' , noclear : false , sourceDir : './src' , resources : [ ] , devServer : { port : 3001 , host : 'localhost' , open : false , stats : 'errors-only' , noInfo : true , contentBase : './src' } , lwcCompilerOutput : { development : { compat : false , env : { NODE_ENV : 'production' } , format : 'amd' } , production : { compat : false , env : { NODE_ENV : 'production' } , format : 'amd' } } , lwcCompilerStylesheetConfig : { } , lwcExperimentalDynamicComponent : { } } ; function buildConfig ( ) { let combinedConfig = defaultLwcConfig ; try { const fileName = resolve ( process . cwd ( ) , 'lwc-services.config.js' ) ; const config = require ( fileName ) ; combinedConfig = merge ( defaultLwcConfig , config ) ; return combinedConfig ; } catch ( error ) { console . error ( 'Using default configuration! Error loading custom config' ) ; console . error ( error ) ; } return combinedConfig ; } export const lwcConfig = buildConfig ( ) ;