diff --git a/src/cli/constant.js b/src/cli/constant.js index 902bff79..523f1292 100644 --- a/src/cli/constant.js +++ b/src/cli/constant.js @@ -443,10 +443,19 @@ const detailedOptionMap = detailedOptions.reduce( {} ); +const apiDetailedOptionMap = detailedOptions.reduce( + (current, option) => + option.forwardToApi && option.forwardToApi !== option.name + ? Object.assign(current, { [option.forwardToApi]: option }) + : current, + {} +); + module.exports = { categoryOrder, minimistOptions, detailedOptions, detailedOptionMap, + apiDetailedOptionMap, usageSummary }; diff --git a/src/cli/util.js b/src/cli/util.js index ec7df22c..eb1db585 100644 --- a/src/cli/util.js +++ b/src/cli/util.js @@ -37,9 +37,12 @@ function getOptions(argv) { ); } -function dashifyObject(object) { +function cliifyOptions(object) { return Object.keys(object || {}).reduce((output, key) => { - output[dashify(key)] = object[key]; + const apiOption = constant.apiDetailedOptionMap[key]; + const cliKey = apiOption ? apiOption.name : key; + + output[dashify(cliKey)] = object[key]; return output; }, {}); } @@ -202,8 +205,8 @@ function parseArgsToOptions(argv, overrideDefaults) { boolean: constant.minimistOptions.boolean, default: Object.assign( {}, - dashifyObject(apiDefaultOptions), - dashifyObject(overrideDefaults) + cliifyOptions(apiDefaultOptions), + cliifyOptions(overrideDefaults) ) }) ), @@ -619,7 +622,10 @@ function normalizeConfig(type, rawConfig, options) { return; } - const option = constant.detailedOptionMap[key]; + let option = constant.detailedOptionMap[key]; + if (type === "api" && option === undefined) { + option = constant.apiDetailedOptionMap[key]; + } // unknown option if (option === undefined) { diff --git a/src/main/options.js b/src/main/options.js index 73932f27..c52ceea5 100644 --- a/src/main/options.js +++ b/src/main/options.js @@ -44,6 +44,8 @@ function normalize(options) { const normalized = Object.assign({}, options || {}); const filepath = normalized.filepath; + normalized.plugins = loadPlugins(normalized); + if ( filepath && !normalized.parentParser && @@ -52,7 +54,7 @@ function normalize(options) { const extension = path.extname(filepath); const filename = path.basename(filepath).toLowerCase(); - const language = getSupportInfo().languages.find( + const language = getSupportInfo(null, normalized).languages.find( language => typeof language.since === "string" && (language.extensions.indexOf(extension) > -1 || @@ -122,7 +124,6 @@ function normalize(options) { delete normalized.useFlowParser; } - normalized.plugins = loadPlugins(normalized); normalized.astFormat = resolveParser(normalized).astFormat; normalized.printer = getPrinter(normalized);