This change modifies the build scripts to use --legacy-peer-deps flag when installing npm dependencies to resolve potential peer dependency conflicts during the build process. The change is applied to both bash (build.sh) and batch (build.bat) build scripts.
399 lines
14 KiB
JavaScript
399 lines
14 KiB
JavaScript
/**
|
|
* @fileoverview Options configuration for optionator.
|
|
* @author George Zahariev
|
|
*/
|
|
|
|
"use strict";
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Requirements
|
|
//------------------------------------------------------------------------------
|
|
|
|
const optionator = require("optionator");
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Typedefs
|
|
//------------------------------------------------------------------------------
|
|
|
|
/**
|
|
* The options object parsed by Optionator.
|
|
* @typedef {Object} ParsedCLIOptions
|
|
* @property {boolean} cache Only check changed files
|
|
* @property {string} cacheFile Path to the cache file. Deprecated: use --cache-location
|
|
* @property {string} [cacheLocation] Path to the cache file or directory
|
|
* @property {"metadata" | "content"} cacheStrategy Strategy to use for detecting changed files in the cache
|
|
* @property {boolean} [color] Force enabling/disabling of color
|
|
* @property {string} [config] Use this configuration, overriding .eslintrc.* config options if present
|
|
* @property {boolean} debug Output debugging information
|
|
* @property {string[]} [env] Specify environments
|
|
* @property {boolean} envInfo Output execution environment information
|
|
* @property {boolean} errorOnUnmatchedPattern Prevent errors when pattern is unmatched
|
|
* @property {boolean} eslintrc Disable use of configuration from .eslintrc.*
|
|
* @property {string[]} [ext] Specify JavaScript file extensions
|
|
* @property {boolean} fix Automatically fix problems
|
|
* @property {boolean} fixDryRun Automatically fix problems without saving the changes to the file system
|
|
* @property {("directive" | "problem" | "suggestion" | "layout")[]} [fixType] Specify the types of fixes to apply (directive, problem, suggestion, layout)
|
|
* @property {string} format Use a specific output format
|
|
* @property {string[]} [global] Define global variables
|
|
* @property {boolean} [help] Show help
|
|
* @property {boolean} ignore Disable use of ignore files and patterns
|
|
* @property {string} [ignorePath] Specify path of ignore file
|
|
* @property {string[]} [ignorePattern] Pattern of files to ignore (in addition to those in .eslintignore)
|
|
* @property {boolean} init Run config initialization wizard
|
|
* @property {boolean} inlineConfig Prevent comments from changing config or rules
|
|
* @property {number} maxWarnings Number of warnings to trigger nonzero exit code
|
|
* @property {string} [outputFile] Specify file to write report to
|
|
* @property {string} [parser] Specify the parser to be used
|
|
* @property {Object} [parserOptions] Specify parser options
|
|
* @property {string[]} [plugin] Specify plugins
|
|
* @property {string} [printConfig] Print the configuration for the given file
|
|
* @property {boolean | undefined} reportUnusedDisableDirectives Adds reported errors for unused eslint-disable and eslint-enable directives
|
|
* @property {string | undefined} reportUnusedDisableDirectivesSeverity A severity string indicating if and how unused disable and enable directives should be tracked and reported.
|
|
* @property {string} [resolvePluginsRelativeTo] A folder where plugins should be resolved from, CWD by default
|
|
* @property {Object} [rule] Specify rules
|
|
* @property {string[]} [rulesdir] Load additional rules from this directory. Deprecated: Use rules from plugins
|
|
* @property {boolean} stdin Lint code provided on <STDIN>
|
|
* @property {string} [stdinFilename] Specify filename to process STDIN as
|
|
* @property {boolean} quiet Report errors only
|
|
* @property {boolean} [version] Output the version number
|
|
* @property {boolean} warnIgnored Show warnings when the file list includes ignored files
|
|
* @property {string[]} _ Positional filenames or patterns
|
|
*/
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Initialization and Public Interface
|
|
//------------------------------------------------------------------------------
|
|
|
|
// exports "parse(args)", "generateHelp()", and "generateHelpForOption(optionName)"
|
|
|
|
/**
|
|
* Creates the CLI options for ESLint.
|
|
* @param {boolean} usingFlatConfig Indicates if flat config is being used.
|
|
* @returns {Object} The optionator instance.
|
|
*/
|
|
module.exports = function(usingFlatConfig) {
|
|
|
|
let lookupFlag;
|
|
|
|
if (usingFlatConfig) {
|
|
lookupFlag = {
|
|
option: "config-lookup",
|
|
type: "Boolean",
|
|
default: "true",
|
|
description: "Disable look up for eslint.config.js"
|
|
};
|
|
} else {
|
|
lookupFlag = {
|
|
option: "eslintrc",
|
|
type: "Boolean",
|
|
default: "true",
|
|
description: "Disable use of configuration from .eslintrc.*"
|
|
};
|
|
}
|
|
|
|
let envFlag;
|
|
|
|
if (!usingFlatConfig) {
|
|
envFlag = {
|
|
option: "env",
|
|
type: "[String]",
|
|
description: "Specify environments"
|
|
};
|
|
}
|
|
|
|
let extFlag;
|
|
|
|
if (!usingFlatConfig) {
|
|
extFlag = {
|
|
option: "ext",
|
|
type: "[String]",
|
|
description: "Specify JavaScript file extensions"
|
|
};
|
|
}
|
|
|
|
let resolvePluginsFlag;
|
|
|
|
if (!usingFlatConfig) {
|
|
resolvePluginsFlag = {
|
|
option: "resolve-plugins-relative-to",
|
|
type: "path::String",
|
|
description: "A folder where plugins should be resolved from, CWD by default"
|
|
};
|
|
}
|
|
|
|
let rulesDirFlag;
|
|
|
|
if (!usingFlatConfig) {
|
|
rulesDirFlag = {
|
|
option: "rulesdir",
|
|
type: "[path::String]",
|
|
description: "Load additional rules from this directory. Deprecated: Use rules from plugins"
|
|
};
|
|
}
|
|
|
|
let ignorePathFlag;
|
|
|
|
if (!usingFlatConfig) {
|
|
ignorePathFlag = {
|
|
option: "ignore-path",
|
|
type: "path::String",
|
|
description: "Specify path of ignore file"
|
|
};
|
|
}
|
|
|
|
let warnIgnoredFlag;
|
|
|
|
if (usingFlatConfig) {
|
|
warnIgnoredFlag = {
|
|
option: "warn-ignored",
|
|
type: "Boolean",
|
|
default: "true",
|
|
description: "Suppress warnings when the file list includes ignored files"
|
|
};
|
|
}
|
|
|
|
return optionator({
|
|
prepend: "eslint [options] file.js [file.js] [dir]",
|
|
defaults: {
|
|
concatRepeatedArrays: true,
|
|
mergeRepeatedObjects: true
|
|
},
|
|
options: [
|
|
{
|
|
heading: "Basic configuration"
|
|
},
|
|
lookupFlag,
|
|
{
|
|
option: "config",
|
|
alias: "c",
|
|
type: "path::String",
|
|
description: usingFlatConfig
|
|
? "Use this configuration instead of eslint.config.js, eslint.config.mjs, or eslint.config.cjs"
|
|
: "Use this configuration, overriding .eslintrc.* config options if present"
|
|
},
|
|
envFlag,
|
|
extFlag,
|
|
{
|
|
option: "global",
|
|
type: "[String]",
|
|
description: "Define global variables"
|
|
},
|
|
{
|
|
option: "parser",
|
|
type: "String",
|
|
description: "Specify the parser to be used"
|
|
},
|
|
{
|
|
option: "parser-options",
|
|
type: "Object",
|
|
description: "Specify parser options"
|
|
},
|
|
resolvePluginsFlag,
|
|
{
|
|
heading: "Specify Rules and Plugins"
|
|
},
|
|
{
|
|
option: "plugin",
|
|
type: "[String]",
|
|
description: "Specify plugins"
|
|
},
|
|
{
|
|
option: "rule",
|
|
type: "Object",
|
|
description: "Specify rules"
|
|
},
|
|
rulesDirFlag,
|
|
{
|
|
heading: "Fix Problems"
|
|
},
|
|
{
|
|
option: "fix",
|
|
type: "Boolean",
|
|
default: false,
|
|
description: "Automatically fix problems"
|
|
},
|
|
{
|
|
option: "fix-dry-run",
|
|
type: "Boolean",
|
|
default: false,
|
|
description: "Automatically fix problems without saving the changes to the file system"
|
|
},
|
|
{
|
|
option: "fix-type",
|
|
type: "Array",
|
|
description: "Specify the types of fixes to apply (directive, problem, suggestion, layout)"
|
|
},
|
|
{
|
|
heading: "Ignore Files"
|
|
},
|
|
ignorePathFlag,
|
|
{
|
|
option: "ignore",
|
|
type: "Boolean",
|
|
default: "true",
|
|
description: "Disable use of ignore files and patterns"
|
|
},
|
|
{
|
|
option: "ignore-pattern",
|
|
type: "[String]",
|
|
description: "Pattern of files to ignore (in addition to those in .eslintignore)",
|
|
concatRepeatedArrays: [true, {
|
|
oneValuePerFlag: true
|
|
}]
|
|
},
|
|
{
|
|
heading: "Use stdin"
|
|
},
|
|
{
|
|
option: "stdin",
|
|
type: "Boolean",
|
|
default: "false",
|
|
description: "Lint code provided on <STDIN>"
|
|
},
|
|
{
|
|
option: "stdin-filename",
|
|
type: "String",
|
|
description: "Specify filename to process STDIN as"
|
|
},
|
|
{
|
|
heading: "Handle Warnings"
|
|
},
|
|
{
|
|
option: "quiet",
|
|
type: "Boolean",
|
|
default: "false",
|
|
description: "Report errors only"
|
|
},
|
|
{
|
|
option: "max-warnings",
|
|
type: "Int",
|
|
default: "-1",
|
|
description: "Number of warnings to trigger nonzero exit code"
|
|
},
|
|
{
|
|
heading: "Output"
|
|
},
|
|
{
|
|
option: "output-file",
|
|
alias: "o",
|
|
type: "path::String",
|
|
description: "Specify file to write report to"
|
|
},
|
|
{
|
|
option: "format",
|
|
alias: "f",
|
|
type: "String",
|
|
default: "stylish",
|
|
description: "Use a specific output format"
|
|
},
|
|
{
|
|
option: "color",
|
|
type: "Boolean",
|
|
alias: "no-color",
|
|
description: "Force enabling/disabling of color"
|
|
},
|
|
{
|
|
heading: "Inline configuration comments"
|
|
},
|
|
{
|
|
option: "inline-config",
|
|
type: "Boolean",
|
|
default: "true",
|
|
description: "Prevent comments from changing config or rules"
|
|
},
|
|
{
|
|
option: "report-unused-disable-directives",
|
|
type: "Boolean",
|
|
default: void 0,
|
|
description: "Adds reported errors for unused eslint-disable and eslint-enable directives"
|
|
},
|
|
{
|
|
option: "report-unused-disable-directives-severity",
|
|
type: "String",
|
|
default: void 0,
|
|
description: "Chooses severity level for reporting unused eslint-disable and eslint-enable directives",
|
|
enum: ["off", "warn", "error", "0", "1", "2"]
|
|
},
|
|
{
|
|
heading: "Caching"
|
|
},
|
|
{
|
|
option: "cache",
|
|
type: "Boolean",
|
|
default: "false",
|
|
description: "Only check changed files"
|
|
},
|
|
{
|
|
option: "cache-file",
|
|
type: "path::String",
|
|
default: ".eslintcache",
|
|
description: "Path to the cache file. Deprecated: use --cache-location"
|
|
},
|
|
{
|
|
option: "cache-location",
|
|
type: "path::String",
|
|
description: "Path to the cache file or directory"
|
|
},
|
|
{
|
|
option: "cache-strategy",
|
|
dependsOn: ["cache"],
|
|
type: "String",
|
|
default: "metadata",
|
|
enum: ["metadata", "content"],
|
|
description: "Strategy to use for detecting changed files in the cache"
|
|
},
|
|
{
|
|
heading: "Miscellaneous"
|
|
},
|
|
{
|
|
option: "init",
|
|
type: "Boolean",
|
|
default: "false",
|
|
description: "Run config initialization wizard"
|
|
},
|
|
{
|
|
option: "env-info",
|
|
type: "Boolean",
|
|
default: "false",
|
|
description: "Output execution environment information"
|
|
},
|
|
{
|
|
option: "error-on-unmatched-pattern",
|
|
type: "Boolean",
|
|
default: "true",
|
|
description: "Prevent errors when pattern is unmatched"
|
|
},
|
|
{
|
|
option: "exit-on-fatal-error",
|
|
type: "Boolean",
|
|
default: "false",
|
|
description: "Exit with exit code 2 in case of fatal error"
|
|
},
|
|
warnIgnoredFlag,
|
|
{
|
|
option: "debug",
|
|
type: "Boolean",
|
|
default: false,
|
|
description: "Output debugging information"
|
|
},
|
|
{
|
|
option: "help",
|
|
alias: "h",
|
|
type: "Boolean",
|
|
description: "Show help"
|
|
},
|
|
{
|
|
option: "version",
|
|
alias: "v",
|
|
type: "Boolean",
|
|
description: "Output the version number"
|
|
},
|
|
{
|
|
option: "print-config",
|
|
type: "path::String",
|
|
description: "Print the configuration for the given file"
|
|
}
|
|
].filter(value => !!value)
|
|
});
|
|
};
|