233 lines
7.5 KiB
JavaScript
233 lines
7.5 KiB
JavaScript
import meow from "meow";
|
|
import { parseArgsStringToArgv } from "./argv.js";
|
|
const EXIT_CODE_ERROR = 2;
|
|
const translateOptions = async (command) => {
|
|
const result = meow({
|
|
autoHelp: false,
|
|
autoVersion: false,
|
|
importMeta: import.meta,
|
|
help: `
|
|
Usage: stylelint [input] [options]
|
|
Input: Files(s), glob(s), or nothing to use stdin.
|
|
If an input argument is wrapped in quotation marks, it will be passed to
|
|
globby for cross-platform glob support. node_modules are always ignored.
|
|
You can also pass no input and use stdin, instead.
|
|
Options:
|
|
--config
|
|
Path to a specific configuration file (JSON, YAML, or CommonJS), or the
|
|
name of a module in node_modules that points to one. If no --config
|
|
argument is provided, stylelint will search for configuration files in
|
|
the following places, in this order:
|
|
- a stylelint property in package.json
|
|
- a .stylelintrc file (with or without filename extension:
|
|
.json, .yaml, .yml, and .js are available)
|
|
- a stylelint.config.js file exporting a JS object
|
|
The search will begin in the working directory and move up the directory
|
|
tree until a configuration file is found.
|
|
--config-basedir
|
|
An absolute path to the directory that relative paths defining "extends"
|
|
and "plugins" are *relative to*. Only necessary if these values are
|
|
relative paths.
|
|
--print-config
|
|
Print the configuration for the given path.
|
|
--ignore-path, -i
|
|
Path to a file containing patterns that describe files to ignore. The
|
|
path can be absolute or relative to process.cwd(). By default, stylelint
|
|
looks for .stylelintignore in process.cwd().
|
|
--ignore-pattern, --ip
|
|
Pattern of files to ignore (in addition to those in .stylelintignore)
|
|
--fix
|
|
Automatically fix problems of certain rules.
|
|
--custom-syntax
|
|
Module name or path to a JS file exporting a PostCSS-compatible syntax.
|
|
--stdin
|
|
Accept stdin input even if it is empty.
|
|
--stdin-filename
|
|
A filename to assign stdin input.
|
|
--ignore-disables, --id
|
|
Ignore stylelint-disable comments.
|
|
--disable-default-ignores, --di
|
|
Allow linting of node_modules.
|
|
--cache [default: false]
|
|
Store the info about processed files in order to only operate on the
|
|
changed ones the next time you run stylelint. By default, the cache
|
|
is stored in "./.stylelintcache". To adjust this, use --cache-location.
|
|
--cache-location [default: '.stylelintcache']
|
|
Path to a file or directory to be used for the cache location.
|
|
Default is "./.stylelintcache". If a directory is specified, a cache
|
|
file will be created inside the specified folder, with a name derived
|
|
from a hash of the current working directory.
|
|
If the directory for the cache does not exist, make sure you add a trailing "/"
|
|
on *nix systems or "\\" on Windows. Otherwise the path will be assumed to be a file.
|
|
--formatter, -f [default: "string"]
|
|
The output formatter: "compact", "json", "tap", "unix" or "verbose"
|
|
--custom-formatter
|
|
Path to a JS file exporting a custom formatting function.
|
|
--quiet, -q
|
|
Only register problems for rules with an "error"-level severity (ignore
|
|
"warning"-level).
|
|
--color
|
|
--no-color
|
|
Force enabling/disabling of color.
|
|
--report-needless-disables, --rd
|
|
Also report errors for stylelint-disable comments that are not blocking a lint warning.
|
|
The process will exit with code ${EXIT_CODE_ERROR} if needless disables are found.
|
|
--report-invalid-scope-disables, --risd
|
|
Report stylelint-disable comments that used for rules that don't exist within the configuration object.
|
|
The process will exit with code ${EXIT_CODE_ERROR} if invalid scope disables are found.
|
|
--report-descriptionless-disables, --rdd
|
|
Report stylelint-disable comments without a description.
|
|
The process will exit with code ${EXIT_CODE_ERROR} if descriptionless disables are found.
|
|
--max-warnings, --mw
|
|
Number of warnings above which the process will exit with code ${EXIT_CODE_ERROR}.
|
|
Useful when setting "defaultSeverity" to "warning" and expecting the
|
|
process to fail on warnings (e.g. CI build).
|
|
--output-file, -o
|
|
Path of file to write report.
|
|
--version, -v
|
|
Show the currently installed version of stylelint.
|
|
--allow-empty-input, --aei
|
|
When glob pattern matches no files, the process will exit without throwing an error.
|
|
`,
|
|
flags: {
|
|
allowEmptyInput: {
|
|
shortFlag: "aei",
|
|
type: "boolean"
|
|
},
|
|
cache: {
|
|
type: "boolean"
|
|
},
|
|
cacheLocation: {
|
|
type: "string"
|
|
},
|
|
cacheStrategy: {
|
|
type: "string"
|
|
},
|
|
color: {
|
|
type: "boolean"
|
|
},
|
|
config: {
|
|
type: "string"
|
|
},
|
|
configBasedir: {
|
|
type: "string"
|
|
},
|
|
customFormatter: {
|
|
type: "string"
|
|
},
|
|
customSyntax: {
|
|
type: "string"
|
|
},
|
|
disableDefaultIgnores: {
|
|
shortFlag: "di",
|
|
type: "boolean"
|
|
},
|
|
fix: {
|
|
type: "boolean"
|
|
},
|
|
formatter: {
|
|
shortFlag: "f",
|
|
default: "string",
|
|
type: "string"
|
|
},
|
|
help: {
|
|
shortFlag: "h",
|
|
type: "boolean"
|
|
},
|
|
ignoreDisables: {
|
|
shortFlag: "id",
|
|
type: "boolean"
|
|
},
|
|
ignorePath: {
|
|
shortFlag: "i",
|
|
type: "string",
|
|
isMultiple: true
|
|
},
|
|
ignorePattern: {
|
|
shortFlag: "ip",
|
|
type: "string",
|
|
isMultiple: true
|
|
},
|
|
maxWarnings: {
|
|
shortFlag: "mw",
|
|
type: "number"
|
|
},
|
|
outputFile: {
|
|
shortFlag: "o",
|
|
type: "string"
|
|
},
|
|
printConfig: {
|
|
type: "boolean"
|
|
},
|
|
quiet: {
|
|
shortFlag: "q",
|
|
type: "boolean"
|
|
},
|
|
reportDescriptionlessDisables: {
|
|
shortFlag: "rdd",
|
|
type: "boolean"
|
|
},
|
|
reportInvalidScopeDisables: {
|
|
shortFlag: "risd",
|
|
type: "boolean"
|
|
},
|
|
reportNeedlessDisables: {
|
|
shortFlag: "rd",
|
|
type: "boolean"
|
|
},
|
|
stdin: {
|
|
type: "boolean"
|
|
},
|
|
stdinFilename: {
|
|
type: "string"
|
|
},
|
|
version: {
|
|
shortFlag: "v",
|
|
type: "boolean"
|
|
},
|
|
globbyOptions: {
|
|
shortFlag: "go",
|
|
type: "string"
|
|
}
|
|
},
|
|
argv: parseArgsStringToArgv(command)
|
|
});
|
|
const optionsBase = {
|
|
...Object.fromEntries(
|
|
Object.entries(result.flags).filter(
|
|
([key]) => [
|
|
"files",
|
|
"globbyOptions",
|
|
"cache",
|
|
"cacheLocation",
|
|
"code",
|
|
"codeFilename",
|
|
"config",
|
|
"configFile",
|
|
"configBasedir",
|
|
"cwd",
|
|
"ignoreDisables",
|
|
"ignorePath",
|
|
"ignorePattern",
|
|
"reportDescriptionlessDisables",
|
|
"reportNeedlessDisables",
|
|
"reportInvalidScopeDisables",
|
|
"maxWarnings",
|
|
"customSyntax",
|
|
"formatter",
|
|
"disableDefaultIgnores",
|
|
"fix",
|
|
"allowEmptyInput",
|
|
"quiet"
|
|
].includes(key)
|
|
)
|
|
),
|
|
formatter: result.flags.formatter === "string" ? "json" : result.flags.formatter,
|
|
files: result.input[1]
|
|
};
|
|
return optionsBase;
|
|
};
|
|
export {
|
|
translateOptions
|
|
};
|
|
//# sourceMappingURL=options.js.map
|