{"version":3,"sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AACnC,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAC,GAAG,EAAC,MAAM,aAAa,CAAC;AAChC,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAUtD,qBAAa,MAAM;IAClB,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,QAAQ,EAAE,OAAO,CAAC;IAClC,SAAgB,GAAG,EAAE,GAAG,CAAC;IACzB,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,KAAK,EAAE,WAAW,CAAC;IACnC,SAAgB,cAAc,EAAE,OAAO,CAAC;IACxC,SAAgB,MAAM,EAAE,YAAY,CAAC;gBAEzB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG;IAuBzE,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM;CAezD","file":"config.d.ts","sourcesContent":["import type {BuildMode} from './build/mode';\nimport type {BuildOptions} from './build/options';\nimport {CliArgs} from './cli/args';\nimport {ConfigLinter} from './config/linter';\nimport {ConfigMocks} from './config/mocks';\nimport {Defaults} from './defaults';\nimport {Log} from '@toreda/log';\nimport type {WebpackOptions} from './webpack/options';\nimport {configBoolean} from './config/boolean';\nimport {configValue} from './config/value';\n\n/**\n * Configuration created from initial build options. All properties are guaranteed to\n * exist and be the expected types.\n *\n * @category Config\n */\nexport class Config {\n\tpublic readonly entry: string;\n\tpublic readonly buildMode: BuildMode;\n\tpublic readonly profiler: boolean;\n\tpublic readonly log: Log;\n\tpublic readonly debugMode: boolean;\n\tpublic readonly mocks: ConfigMocks;\n\tpublic readonly autoMockInJest: boolean;\n\tpublic readonly linter: ConfigLinter;\n\n\tconstructor(args: Partial<CliArgs>, options: Partial<BuildOptions>, baseLog: Log) {\n\t\tthis.log = baseLog.makeLog('Config');\n\t\tthis.buildMode = configValue<BuildMode>('buildMode', 'prod', args, options);\n\t\tthis.profiler = configBoolean('profiler', false, args, options);\n\n\t\tthis.mocks = {\n\t\t\tall: configBoolean('mockAll', false, args, options),\n\t\t\tfileReads: configBoolean('mockFileReads', false, args, options),\n\t\t\tfileWrites: configBoolean('mockFileWrites', false, args, options)\n\t\t};\n\t\tthis.debugMode = configBoolean('debugMode', false, args, options);\n\t\tthis.autoMockInJest = configBoolean('autoMockInJest', true, args, options);\n\n\t\tthis.linter = new ConfigLinter(options?.linter);\n\t}\n\n\t/**\n\t * Get path to webpack config file based on current build env. Uses paths\n\t * from provided options, but falls back to global Defaults when path option\n\t * is provided for current env.\n\t * @param options\n\t * @returns\n\t */\n\tpublic getWebpackCfgPath(options: WebpackOptions): string {\n\t\tif (this.buildMode === 'dev') {\n\t\t\tif (typeof options.cfgPathDev === 'string') {\n\t\t\t\treturn options.cfgPathDev;\n\t\t\t} else {\n\t\t\t\treturn Defaults.Webpack.CfgPathDev;\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof options.cfgPathProd === 'string') {\n\t\t\t\treturn options.cfgPathProd;\n\t\t\t} else {\n\t\t\t\treturn Defaults.Webpack.CfgPathProd;\n\t\t\t}\n\t\t}\n\t}\n}\n"]}