Refactor: Add a wrapped normalizeCliOptions version for CLI usage (#12573)

This commit is contained in:
fisker Cheung authored and GitHub committed 2022-04-02 19:01:07 +08:00
1 parent 237e681936
commit 4d1b9e9716
4 files changed
+22 -16

No files matched your search

+3 -5
View File
@@ -1,14 +1,12 @@
"use strict";
const dashify = require("dashify");
const leven = require("leven");
// eslint-disable-next-line no-restricted-modules
const { default: chalk } = require("../../../vendors/chalk.js");
// eslint-disable-next-line no-restricted-modules
const prettier = require("../../index.js");
const { optionsNormalizer } = require("../prettier-internal.js");
const minimist = require("./minimist.js");
const createMinimistOptions = require("./create-minimist-options.js");
const normalizeCliOptions = require("./normalize-cli-options.js");
function getOptions(argv, detailedOptions) {
return Object.fromEntries(
@@ -45,14 +43,14 @@ function parseArgsToOptions(context, overrideDefaults) {
context.detailedOptions
);
return getOptions(
optionsNormalizer.normalizeCliOptions(
normalizeCliOptions(
minimist(context.rawArguments, {
string: minimistOptions.string,
boolean: minimistOptions.boolean,
default: cliifyOptions(overrideDefaults, apiDetailedOptionMap),
}),
context.detailedOptions,
{ logger: false, colorsModule: chalk, levenshteinDistance: leven }
{ logger: false }
),
context.detailedOptions
);
+16
View File
@@ -0,0 +1,16 @@
"use strict";
const leven = require("leven");
const { optionsNormalizer } = require("../prettier-internal.js");
// eslint-disable-next-line no-restricted-modules
const { default: chalk } = require("../../../vendors/chalk.js");
function normalizeCliOptions(options, optionInfos, opts) {
return optionsNormalizer.normalizeCliOptions(options, optionInfos, {
colorsModule: chalk,
levenshteinDistance: leven,
...opts,
});
}
module.exports = normalizeCliOptions;
+2 -11
View File
@@ -1,15 +1,10 @@
"use strict";
const pick = require("lodash/pick");
const camelCase = require("camelcase");
const leven = require("leven");
// eslint-disable-next-line no-restricted-modules
const { default: chalk } = require("../../../vendors/chalk.js");
const {
optionsNormalizer: { normalizeCliOptions },
} = require("../prettier-internal.js");
const getContextOptions = require("./get-context-options.js");
const minimist = require("./minimist.js");
const createMinimistOptions = require("./create-minimist-options.js");
const normalizeCliOptions = require("./normalize-cli-options.js");
function parseArgv(rawArguments, detailedOptions, logger, keys) {
const minimistOptions = createMinimistOptions(detailedOptions);
@@ -26,11 +21,7 @@ function parseArgv(rawArguments, detailedOptions, logger, keys) {
argv = pick(argv, keys);
}
const normalized = normalizeCliOptions(argv, detailedOptions, {
logger,
colorsModule: chalk,
levenshteinDistance: leven,
});
const normalized = normalizeCliOptions(argv, detailedOptions, { logger });
return {
...Object.fromEntries(
+1
View File
@@ -33,6 +33,7 @@
"src/cli/options/get-options-for-file.js",
"src/cli/options/option-map.js",
"src/cli/options/parse-cli-arguments.js",
"src/cli/options/normalize-cli-options.js",
"src/cli/usage.js",
"src/cli/constant.js",
"src/cli/prettier-internal.js",