bahlint 28.58.6934
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +19 -0
- package/README.md +370 -0
- package/bin/eslint.js +195 -0
- package/conf/ecma-version.js +16 -0
- package/conf/globals.js +169 -0
- package/conf/replacements.json +26 -0
- package/conf/rule-type-list.json +91 -0
- package/lib/api.js +39 -0
- package/lib/cli-engine/formatters/formatters-meta.json +22 -0
- package/lib/cli-engine/formatters/gasoline.js +168 -0
- package/lib/cli-engine/formatters/html.js +359 -0
- package/lib/cli-engine/formatters/json-with-metadata.js +16 -0
- package/lib/cli-engine/formatters/json.js +13 -0
- package/lib/cli-engine/formatters/stylish.js +153 -0
- package/lib/cli-engine/hash.js +35 -0
- package/lib/cli-engine/lint-result-cache.js +220 -0
- package/lib/cli.js +607 -0
- package/lib/config/config-loader.js +683 -0
- package/lib/config/config.js +674 -0
- package/lib/config/default-config.js +78 -0
- package/lib/config/flat-config-array.js +217 -0
- package/lib/config/flat-config-schema.js +598 -0
- package/lib/config-api.js +12 -0
- package/lib/eslint/eslint-helpers.js +1462 -0
- package/lib/eslint/eslint.js +1364 -0
- package/lib/eslint/index.js +7 -0
- package/lib/eslint/worker.js +173 -0
- package/lib/languages/js/index.js +336 -0
- package/lib/languages/js/source-code/index.js +7 -0
- package/lib/languages/js/source-code/source-code.js +1178 -0
- package/lib/languages/js/source-code/token-store/backward-token-comment-cursor.js +61 -0
- package/lib/languages/js/source-code/token-store/backward-token-cursor.js +57 -0
- package/lib/languages/js/source-code/token-store/cursor.js +76 -0
- package/lib/languages/js/source-code/token-store/cursors.js +120 -0
- package/lib/languages/js/source-code/token-store/decorative-cursor.js +38 -0
- package/lib/languages/js/source-code/token-store/filter-cursor.js +42 -0
- package/lib/languages/js/source-code/token-store/forward-token-comment-cursor.js +65 -0
- package/lib/languages/js/source-code/token-store/forward-token-cursor.js +62 -0
- package/lib/languages/js/source-code/token-store/index.js +695 -0
- package/lib/languages/js/source-code/token-store/limit-cursor.js +39 -0
- package/lib/languages/js/source-code/token-store/padded-token-cursor.js +45 -0
- package/lib/languages/js/source-code/token-store/skip-cursor.js +41 -0
- package/lib/languages/js/source-code/token-store/utils.js +131 -0
- package/lib/languages/js/validate-language-options.js +196 -0
- package/lib/linter/apply-disable-directives.js +583 -0
- package/lib/linter/code-path-analysis/code-path-analyzer.js +828 -0
- package/lib/linter/code-path-analysis/code-path-segment.js +262 -0
- package/lib/linter/code-path-analysis/code-path-state.js +2370 -0
- package/lib/linter/code-path-analysis/code-path.js +332 -0
- package/lib/linter/code-path-analysis/debug-helpers.js +223 -0
- package/lib/linter/code-path-analysis/fork-context.js +374 -0
- package/lib/linter/code-path-analysis/id-generator.js +44 -0
- package/lib/linter/esquery.js +332 -0
- package/lib/linter/file-context.js +88 -0
- package/lib/linter/file-report.js +604 -0
- package/lib/linter/index.js +11 -0
- package/lib/linter/interpolate.js +50 -0
- package/lib/linter/linter.js +1614 -0
- package/lib/linter/rule-fixer.js +199 -0
- package/lib/linter/source-code-fixer.js +154 -0
- package/lib/linter/source-code-traverser.js +333 -0
- package/lib/linter/source-code-visitor.js +81 -0
- package/lib/linter/timing.js +209 -0
- package/lib/linter/vfile.js +115 -0
- package/lib/options.js +416 -0
- package/lib/rule-tester/index.js +7 -0
- package/lib/rule-tester/rule-tester.js +1817 -0
- package/lib/rules/accessor-pairs.js +420 -0
- package/lib/rules/array-bracket-newline.js +291 -0
- package/lib/rules/array-bracket-spacing.js +301 -0
- package/lib/rules/array-callback-return.js +493 -0
- package/lib/rules/array-element-newline.js +374 -0
- package/lib/rules/arrow-body-style.js +418 -0
- package/lib/rules/arrow-parens.js +237 -0
- package/lib/rules/arrow-spacing.js +188 -0
- package/lib/rules/block-scoped-var.js +137 -0
- package/lib/rules/block-spacing.js +202 -0
- package/lib/rules/brace-style.js +278 -0
- package/lib/rules/callback-return.js +216 -0
- package/lib/rules/camelcase.js +422 -0
- package/lib/rules/capitalized-comments.js +325 -0
- package/lib/rules/class-methods-use-this.js +250 -0
- package/lib/rules/comma-dangle.js +424 -0
- package/lib/rules/comma-spacing.js +205 -0
- package/lib/rules/comma-style.js +391 -0
- package/lib/rules/complexity.js +201 -0
- package/lib/rules/computed-property-spacing.js +251 -0
- package/lib/rules/consistent-return.js +221 -0
- package/lib/rules/consistent-this.js +179 -0
- package/lib/rules/constructor-super.js +453 -0
- package/lib/rules/curly.js +425 -0
- package/lib/rules/default-case-last.js +51 -0
- package/lib/rules/default-case.js +103 -0
- package/lib/rules/default-param-last.js +78 -0
- package/lib/rules/dot-location.js +138 -0
- package/lib/rules/dot-notation.js +216 -0
- package/lib/rules/eol-last.js +135 -0
- package/lib/rules/eqeqeq.js +210 -0
- package/lib/rules/for-direction.js +168 -0
- package/lib/rules/func-call-spacing.js +281 -0
- package/lib/rules/func-name-matching.js +338 -0
- package/lib/rules/func-names.js +194 -0
- package/lib/rules/func-style.js +221 -0
- package/lib/rules/function-call-argument-newline.js +166 -0
- package/lib/rules/function-paren-newline.js +368 -0
- package/lib/rules/generator-star-spacing.js +246 -0
- package/lib/rules/getter-return.js +242 -0
- package/lib/rules/global-require.js +117 -0
- package/lib/rules/grouped-accessor-pairs.js +268 -0
- package/lib/rules/guard-for-in.js +85 -0
- package/lib/rules/handle-callback-err.js +122 -0
- package/lib/rules/id-blacklist.js +241 -0
- package/lib/rules/id-denylist.js +223 -0
- package/lib/rules/id-length.js +217 -0
- package/lib/rules/id-match.js +363 -0
- package/lib/rules/implicit-arrow-linebreak.js +125 -0
- package/lib/rules/indent-legacy.js +1369 -0
- package/lib/rules/indent.js +2334 -0
- package/lib/rules/index.js +332 -0
- package/lib/rules/init-declarations.js +172 -0
- package/lib/rules/jsx-quotes.js +128 -0
- package/lib/rules/key-spacing.js +822 -0
- package/lib/rules/keyword-spacing.js +701 -0
- package/lib/rules/line-comment-position.js +157 -0
- package/lib/rules/linebreak-style.js +135 -0
- package/lib/rules/lines-around-comment.js +581 -0
- package/lib/rules/lines-around-directive.js +249 -0
- package/lib/rules/lines-between-class-members.js +358 -0
- package/lib/rules/logical-assignment-operators.js +688 -0
- package/lib/rules/max-classes-per-file.js +90 -0
- package/lib/rules/max-depth.js +159 -0
- package/lib/rules/max-len.js +497 -0
- package/lib/rules/max-lines-per-function.js +238 -0
- package/lib/rules/max-lines.js +189 -0
- package/lib/rules/max-nested-callbacks.js +115 -0
- package/lib/rules/max-params.js +148 -0
- package/lib/rules/max-statements-per-line.js +224 -0
- package/lib/rules/max-statements.js +188 -0
- package/lib/rules/multiline-comment-style.js +652 -0
- package/lib/rules/multiline-ternary.js +257 -0
- package/lib/rules/new-cap.js +277 -0
- package/lib/rules/new-parens.js +120 -0
- package/lib/rules/newline-after-var.js +307 -0
- package/lib/rules/newline-before-return.js +242 -0
- package/lib/rules/newline-per-chained-call.js +159 -0
- package/lib/rules/no-alert.js +149 -0
- package/lib/rules/no-array-constructor.js +195 -0
- package/lib/rules/no-async-promise-executor.js +45 -0
- package/lib/rules/no-await-in-loop.js +115 -0
- package/lib/rules/no-bitwise.js +145 -0
- package/lib/rules/no-buffer-constructor.js +74 -0
- package/lib/rules/no-caller.js +52 -0
- package/lib/rules/no-case-declarations.js +80 -0
- package/lib/rules/no-catch-shadow.js +96 -0
- package/lib/rules/no-class-assign.js +66 -0
- package/lib/rules/no-compare-neg-zero.js +74 -0
- package/lib/rules/no-cond-assign.js +175 -0
- package/lib/rules/no-confusing-arrow.js +127 -0
- package/lib/rules/no-console.js +221 -0
- package/lib/rules/no-const-assign.js +73 -0
- package/lib/rules/no-constant-binary-expression.js +603 -0
- package/lib/rules/no-constant-condition.js +177 -0
- package/lib/rules/no-constructor-return.js +62 -0
- package/lib/rules/no-continue.js +38 -0
- package/lib/rules/no-control-regex.js +142 -0
- package/lib/rules/no-debugger.js +41 -0
- package/lib/rules/no-delete-var.js +42 -0
- package/lib/rules/no-div-regex.js +60 -0
- package/lib/rules/no-dupe-args.js +92 -0
- package/lib/rules/no-dupe-class-members.js +117 -0
- package/lib/rules/no-dupe-else-if.js +145 -0
- package/lib/rules/no-dupe-keys.js +165 -0
- package/lib/rules/no-duplicate-case.js +78 -0
- package/lib/rules/no-duplicate-imports.js +368 -0
- package/lib/rules/no-else-return.js +450 -0
- package/lib/rules/no-empty-character-class.js +83 -0
- package/lib/rules/no-empty-function.js +236 -0
- package/lib/rules/no-empty-pattern.js +85 -0
- package/lib/rules/no-empty-static-block.js +73 -0
- package/lib/rules/no-empty.js +153 -0
- package/lib/rules/no-eq-null.js +51 -0
- package/lib/rules/no-eval.js +295 -0
- package/lib/rules/no-ex-assign.js +57 -0
- package/lib/rules/no-extend-native.js +180 -0
- package/lib/rules/no-extra-bind.js +224 -0
- package/lib/rules/no-extra-boolean-cast.js +420 -0
- package/lib/rules/no-extra-label.js +169 -0
- package/lib/rules/no-extra-parens.js +1669 -0
- package/lib/rules/no-extra-semi.js +167 -0
- package/lib/rules/no-fallthrough.js +260 -0
- package/lib/rules/no-floating-decimal.js +99 -0
- package/lib/rules/no-func-assign.js +77 -0
- package/lib/rules/no-global-assign.js +101 -0
- package/lib/rules/no-implicit-coercion.js +468 -0
- package/lib/rules/no-implicit-globals.js +187 -0
- package/lib/rules/no-implied-eval.js +170 -0
- package/lib/rules/no-import-assign.js +227 -0
- package/lib/rules/no-inline-comments.js +115 -0
- package/lib/rules/no-inner-declarations.js +147 -0
- package/lib/rules/no-invalid-regexp.js +244 -0
- package/lib/rules/no-invalid-this.js +178 -0
- package/lib/rules/no-irregular-whitespace.js +292 -0
- package/lib/rules/no-iterator.js +48 -0
- package/lib/rules/no-label-var.js +78 -0
- package/lib/rules/no-labels.js +156 -0
- package/lib/rules/no-lone-blocks.js +140 -0
- package/lib/rules/no-lonely-if.js +126 -0
- package/lib/rules/no-loop-func.js +267 -0
- package/lib/rules/no-loss-of-precision.js +249 -0
- package/lib/rules/no-magic-numbers.js +365 -0
- package/lib/rules/no-misleading-character-class.js +595 -0
- package/lib/rules/no-mixed-operators.js +253 -0
- package/lib/rules/no-mixed-requires.js +267 -0
- package/lib/rules/no-mixed-spaces-and-tabs.js +148 -0
- package/lib/rules/no-multi-assign.js +66 -0
- package/lib/rules/no-multi-spaces.js +179 -0
- package/lib/rules/no-multi-str.js +67 -0
- package/lib/rules/no-multiple-empty-lines.js +210 -0
- package/lib/rules/no-native-reassign.js +114 -0
- package/lib/rules/no-negated-condition.js +100 -0
- package/lib/rules/no-negated-in-lhs.js +59 -0
- package/lib/rules/no-nested-ternary.js +46 -0
- package/lib/rules/no-new-func.js +96 -0
- package/lib/rules/no-new-native-nonconstructor.js +70 -0
- package/lib/rules/no-new-object.js +76 -0
- package/lib/rules/no-new-require.js +67 -0
- package/lib/rules/no-new-symbol.js +74 -0
- package/lib/rules/no-new-wrappers.js +62 -0
- package/lib/rules/no-new.js +42 -0
- package/lib/rules/no-nonoctal-decimal-escape.js +176 -0
- package/lib/rules/no-obj-calls.js +99 -0
- package/lib/rules/no-object-constructor.js +124 -0
- package/lib/rules/no-octal-escape.js +53 -0
- package/lib/rules/no-octal.js +42 -0
- package/lib/rules/no-param-reassign.js +248 -0
- package/lib/rules/no-path-concat.js +79 -0
- package/lib/rules/no-plusplus.js +102 -0
- package/lib/rules/no-process-env.js +68 -0
- package/lib/rules/no-process-exit.js +67 -0
- package/lib/rules/no-promise-executor-return.js +264 -0
- package/lib/rules/no-proto.js +45 -0
- package/lib/rules/no-prototype-builtins.js +181 -0
- package/lib/rules/no-redeclare.js +173 -0
- package/lib/rules/no-regex-spaces.js +219 -0
- package/lib/rules/no-restricted-exports.js +227 -0
- package/lib/rules/no-restricted-globals.js +266 -0
- package/lib/rules/no-restricted-imports.js +892 -0
- package/lib/rules/no-restricted-modules.js +249 -0
- package/lib/rules/no-restricted-properties.js +233 -0
- package/lib/rules/no-restricted-syntax.js +74 -0
- package/lib/rules/no-return-assign.js +87 -0
- package/lib/rules/no-return-await.js +162 -0
- package/lib/rules/no-script-url.js +68 -0
- package/lib/rules/no-self-assign.js +186 -0
- package/lib/rules/no-self-compare.js +77 -0
- package/lib/rules/no-sequences.js +158 -0
- package/lib/rules/no-setter-return.js +224 -0
- package/lib/rules/no-shadow-restricted-names.js +113 -0
- package/lib/rules/no-shadow.js +624 -0
- package/lib/rules/no-spaced-func.js +105 -0
- package/lib/rules/no-sparse-arrays.js +68 -0
- package/lib/rules/no-sync.js +81 -0
- package/lib/rules/no-tabs.js +110 -0
- package/lib/rules/no-template-curly-in-string.js +45 -0
- package/lib/rules/no-ternary.js +38 -0
- package/lib/rules/no-this-before-super.js +365 -0
- package/lib/rules/no-throw-literal.js +46 -0
- package/lib/rules/no-trailing-spaces.js +227 -0
- package/lib/rules/no-unassigned-vars.js +80 -0
- package/lib/rules/no-undef-init.js +101 -0
- package/lib/rules/no-undef.js +84 -0
- package/lib/rules/no-undefined.js +85 -0
- package/lib/rules/no-underscore-dangle.js +383 -0
- package/lib/rules/no-unexpected-multiline.js +130 -0
- package/lib/rules/no-unmodified-loop-condition.js +360 -0
- package/lib/rules/no-unneeded-ternary.js +232 -0
- package/lib/rules/no-unreachable-loop.js +190 -0
- package/lib/rules/no-unreachable.js +300 -0
- package/lib/rules/no-unsafe-finally.js +119 -0
- package/lib/rules/no-unsafe-negation.js +152 -0
- package/lib/rules/no-unsafe-optional-chaining.js +221 -0
- package/lib/rules/no-unused-expressions.js +227 -0
- package/lib/rules/no-unused-labels.js +158 -0
- package/lib/rules/no-unused-private-class-members.js +219 -0
- package/lib/rules/no-unused-vars.js +1739 -0
- package/lib/rules/no-use-before-define.js +446 -0
- package/lib/rules/no-useless-assignment.js +657 -0
- package/lib/rules/no-useless-backreference.js +263 -0
- package/lib/rules/no-useless-call.js +95 -0
- package/lib/rules/no-useless-catch.js +57 -0
- package/lib/rules/no-useless-computed-key.js +204 -0
- package/lib/rules/no-useless-concat.js +121 -0
- package/lib/rules/no-useless-constructor.js +262 -0
- package/lib/rules/no-useless-escape.js +406 -0
- package/lib/rules/no-useless-rename.js +202 -0
- package/lib/rules/no-useless-return.js +401 -0
- package/lib/rules/no-var.js +367 -0
- package/lib/rules/no-void.js +69 -0
- package/lib/rules/no-warning-comments.js +209 -0
- package/lib/rules/no-whitespace-before-property.js +150 -0
- package/lib/rules/no-with.js +37 -0
- package/lib/rules/nonblock-statement-body-position.js +164 -0
- package/lib/rules/object-curly-newline.js +383 -0
- package/lib/rules/object-curly-spacing.js +369 -0
- package/lib/rules/object-property-newline.js +151 -0
- package/lib/rules/object-shorthand.js +652 -0
- package/lib/rules/one-var-declaration-per-line.js +117 -0
- package/lib/rules/one-var.js +717 -0
- package/lib/rules/operator-assignment.js +270 -0
- package/lib/rules/operator-linebreak.js +315 -0
- package/lib/rules/padded-blocks.js +366 -0
- package/lib/rules/padding-line-between-statements.js +612 -0
- package/lib/rules/prefer-arrow-callback.js +437 -0
- package/lib/rules/prefer-const.js +546 -0
- package/lib/rules/prefer-destructuring.js +332 -0
- package/lib/rules/prefer-exponentiation-operator.js +235 -0
- package/lib/rules/prefer-named-capture-group.js +197 -0
- package/lib/rules/prefer-numeric-literals.js +157 -0
- package/lib/rules/prefer-object-has-own.js +148 -0
- package/lib/rules/prefer-object-spread.js +319 -0
- package/lib/rules/prefer-promise-reject-errors.js +154 -0
- package/lib/rules/prefer-reflect.js +150 -0
- package/lib/rules/prefer-regex-literals.js +605 -0
- package/lib/rules/prefer-rest-params.js +117 -0
- package/lib/rules/prefer-spread.js +91 -0
- package/lib/rules/prefer-template.js +347 -0
- package/lib/rules/preserve-caught-error.js +535 -0
- package/lib/rules/quote-props.js +394 -0
- package/lib/rules/quotes.js +416 -0
- package/lib/rules/radix.js +193 -0
- package/lib/rules/require-atomic-updates.js +365 -0
- package/lib/rules/require-await.js +184 -0
- package/lib/rules/require-unicode-regexp.js +317 -0
- package/lib/rules/require-yield.js +86 -0
- package/lib/rules/rest-spread-spacing.js +150 -0
- package/lib/rules/semi-spacing.js +297 -0
- package/lib/rules/semi-style.js +218 -0
- package/lib/rules/semi.js +476 -0
- package/lib/rules/sort-imports.js +319 -0
- package/lib/rules/sort-keys.js +268 -0
- package/lib/rules/sort-vars.js +140 -0
- package/lib/rules/space-before-blocks.js +232 -0
- package/lib/rules/space-before-function-paren.js +202 -0
- package/lib/rules/space-in-parens.js +374 -0
- package/lib/rules/space-infix-ops.js +249 -0
- package/lib/rules/space-unary-ops.js +400 -0
- package/lib/rules/spaced-comment.js +447 -0
- package/lib/rules/strict.js +314 -0
- package/lib/rules/switch-colon-spacing.js +158 -0
- package/lib/rules/symbol-description.js +70 -0
- package/lib/rules/template-curly-spacing.js +168 -0
- package/lib/rules/template-tag-spacing.js +121 -0
- package/lib/rules/unicode-bom.js +73 -0
- package/lib/rules/use-isnan.js +268 -0
- package/lib/rules/utils/ast-utils.js +2828 -0
- package/lib/rules/utils/char-source.js +247 -0
- package/lib/rules/utils/fix-tracker.js +125 -0
- package/lib/rules/utils/keywords.js +67 -0
- package/lib/rules/utils/lazy-loading-rule-map.js +118 -0
- package/lib/rules/utils/regular-expressions.js +58 -0
- package/lib/rules/utils/unicode/index.js +16 -0
- package/lib/rules/utils/unicode/is-combining-character.js +13 -0
- package/lib/rules/utils/unicode/is-emoji-modifier.js +13 -0
- package/lib/rules/utils/unicode/is-regional-indicator-symbol.js +13 -0
- package/lib/rules/utils/unicode/is-surrogate-pair.js +14 -0
- package/lib/rules/valid-typeof.js +171 -0
- package/lib/rules/vars-on-top.js +165 -0
- package/lib/rules/wrap-iife.js +238 -0
- package/lib/rules/wrap-regex.js +91 -0
- package/lib/rules/yield-star-spacing.js +158 -0
- package/lib/rules/yoda.js +362 -0
- package/lib/services/parser-service.js +64 -0
- package/lib/services/processor-service.js +100 -0
- package/lib/services/suppressions-service.js +302 -0
- package/lib/services/warning-service.js +87 -0
- package/lib/shared/ajv.js +34 -0
- package/lib/shared/assert.js +21 -0
- package/lib/shared/ast-utils.js +30 -0
- package/lib/shared/deep-merge-arrays.js +62 -0
- package/lib/shared/directives.js +16 -0
- package/lib/shared/flags.js +89 -0
- package/lib/shared/logging.js +38 -0
- package/lib/shared/naming.js +109 -0
- package/lib/shared/option-utils.js +63 -0
- package/lib/shared/relative-module-resolver.js +28 -0
- package/lib/shared/runtime-info.js +177 -0
- package/lib/shared/serialization.js +78 -0
- package/lib/shared/severity.js +49 -0
- package/lib/shared/stats.js +30 -0
- package/lib/shared/string-utils.js +58 -0
- package/lib/shared/text-table.js +68 -0
- package/lib/shared/translate-cli-options.js +223 -0
- package/lib/shared/traverser.js +202 -0
- package/lib/types/config-api.d.ts +12 -0
- package/lib/types/index.d.ts +1482 -0
- package/lib/types/rules.d.ts +5603 -0
- package/lib/types/universal.d.ts +6 -0
- package/lib/types/use-at-your-own-risk.d.ts +34 -0
- package/lib/universal.js +10 -0
- package/lib/unsupported-api.js +26 -0
- package/messages/all-files-ignored.js +16 -0
- package/messages/all-matched-files-ignored.js +21 -0
- package/messages/config-file-missing.js +16 -0
- package/messages/config-plugin-missing.js +14 -0
- package/messages/config-serialize-function.js +30 -0
- package/messages/eslintrc-incompat.js +117 -0
- package/messages/eslintrc-plugins.js +27 -0
- package/messages/extend-config-missing.js +13 -0
- package/messages/failed-to-read-json.js +11 -0
- package/messages/file-not-found.js +10 -0
- package/messages/invalid-rule-options.js +17 -0
- package/messages/invalid-rule-severity.js +13 -0
- package/messages/no-config-found.js +15 -0
- package/messages/plugin-conflict.js +22 -0
- package/messages/plugin-invalid.js +16 -0
- package/messages/plugin-missing.js +19 -0
- package/messages/print-config-with-directory-path.js +8 -0
- package/messages/shared.js +23 -0
- package/messages/whitespace-found.js +11 -0
- package/package.json +220 -0
package/lib/options.js
ADDED
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Options configuration for optionator.
|
|
3
|
+
* @author George Zahariev
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
//------------------------------------------------------------------------------
|
|
9
|
+
// Requirements
|
|
10
|
+
//------------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
const optionator = require("optionator");
|
|
13
|
+
|
|
14
|
+
//------------------------------------------------------------------------------
|
|
15
|
+
// Typedefs
|
|
16
|
+
//------------------------------------------------------------------------------
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The options object parsed by Optionator.
|
|
20
|
+
* @typedef {Object} ParsedCLIOptions
|
|
21
|
+
* @property {boolean} cache Only check changed files
|
|
22
|
+
* @property {string} cacheFile Path to the cache file. Deprecated: use --cache-location
|
|
23
|
+
* @property {string} [cacheLocation] Path to the cache file or directory
|
|
24
|
+
* @property {"metadata" | "content"} cacheStrategy Strategy to use for detecting changed files in the cache
|
|
25
|
+
* @property {boolean} [color] Force enabling/disabling of color
|
|
26
|
+
* @property {number | "auto" | "off"} [concurrency] Number of linting threads, "auto" to choose automatically, "off" for no multithreading
|
|
27
|
+
* @property {string} [config] Use this configuration, overriding eslint.config.* config options if present
|
|
28
|
+
* @property {boolean} debug Output debugging information
|
|
29
|
+
* @property {boolean} envInfo Output execution environment information
|
|
30
|
+
* @property {boolean} errorOnUnmatchedPattern Prevent errors when pattern is unmatched
|
|
31
|
+
* @property {string[]} [ext] Specify JavaScript file extensions
|
|
32
|
+
* @property {string[]} [flag] Feature flags
|
|
33
|
+
* @property {boolean} fix Automatically fix problems
|
|
34
|
+
* @property {boolean} fixDryRun Automatically fix problems without saving the changes to the file system
|
|
35
|
+
* @property {("directive" | "problem" | "suggestion" | "layout")[]} [fixType] Specify the types of fixes to apply (directive, problem, suggestion, layout)
|
|
36
|
+
* @property {string} format Use a specific output format
|
|
37
|
+
* @property {string[]} [global] Define global variables
|
|
38
|
+
* @property {boolean} [help] Show help
|
|
39
|
+
* @property {boolean} ignore Disable use of ignore files and patterns
|
|
40
|
+
* @property {string[]} [ignorePattern] Patterns of files to ignore
|
|
41
|
+
* @property {boolean} init Run config initialization wizard
|
|
42
|
+
* @property {boolean} inlineConfig Prevent comments from changing config or rules
|
|
43
|
+
* @property {number} maxWarnings Number of warnings to trigger nonzero exit code
|
|
44
|
+
* @property {string} [outputFile] Specify file to write report to
|
|
45
|
+
* @property {string} [parser] Specify the parser to be used
|
|
46
|
+
* @property {Object} [parserOptions] Specify parser options
|
|
47
|
+
* @property {boolean} [passOnNoPatterns=false] When set to true, missing patterns cause
|
|
48
|
+
* the linting operation to short circuit and not report any failures.
|
|
49
|
+
* @property {boolean} [passOnUnprunedSuppressions] Ignore unused suppressions
|
|
50
|
+
* @property {string[]} [plugin] Specify plugins
|
|
51
|
+
* @property {string} [printConfig] Print the configuration for the given file
|
|
52
|
+
* @property {boolean} [pruneSuppressions] Prune unused suppressions
|
|
53
|
+
* @property {boolean} quiet Report errors only
|
|
54
|
+
* @property {boolean | undefined} reportUnusedDisableDirectives Adds reported errors for unused eslint-disable and eslint-enable directives
|
|
55
|
+
* @property {string | undefined} reportUnusedDisableDirectivesSeverity A severity string indicating if and how unused disable and enable directives should be tracked and reported.
|
|
56
|
+
* @property {Object} [rule] Specify rules
|
|
57
|
+
* @property {boolean} [stats] Report additional statistics
|
|
58
|
+
* @property {boolean} stdin Lint code provided on <STDIN>
|
|
59
|
+
* @property {string} [stdinFilename] Specify filename to process STDIN as
|
|
60
|
+
* @property {boolean} [suppressAll] Suppress all error violations
|
|
61
|
+
* @property {string} [suppressionsLocation] Path to the suppressions file or directory
|
|
62
|
+
* @property {string[]} [suppressRule] Suppress specific rules
|
|
63
|
+
* @property {boolean} [version] Output the version number
|
|
64
|
+
* @property {boolean} warnIgnored Show warnings when the file list includes ignored files
|
|
65
|
+
* @property {string[]} _ Positional filenames or patterns
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
//------------------------------------------------------------------------------
|
|
69
|
+
// Initialization and Public Interface
|
|
70
|
+
//------------------------------------------------------------------------------
|
|
71
|
+
|
|
72
|
+
// exports "parse(args)", "generateHelp()", and "generateHelpForOption(optionName)"
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Creates the CLI options for ESLint.
|
|
76
|
+
* @returns {Object} The optionator instance.
|
|
77
|
+
*/
|
|
78
|
+
module.exports = function () {
|
|
79
|
+
return optionator({
|
|
80
|
+
prepend: "eslint [options] file.js [file.js] [dir]",
|
|
81
|
+
defaults: {
|
|
82
|
+
concatRepeatedArrays: true,
|
|
83
|
+
mergeRepeatedObjects: true,
|
|
84
|
+
},
|
|
85
|
+
options: [
|
|
86
|
+
{
|
|
87
|
+
heading: "Basic configuration",
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
option: "config-lookup",
|
|
91
|
+
type: "Boolean",
|
|
92
|
+
default: "true",
|
|
93
|
+
description: "Disable look up for eslint.config.js",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
option: "config",
|
|
97
|
+
alias: "c",
|
|
98
|
+
type: "path::String",
|
|
99
|
+
description:
|
|
100
|
+
"Use this configuration instead of eslint.config.js, eslint.config.mjs, or eslint.config.cjs",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
option: "inspect-config",
|
|
104
|
+
type: "Boolean",
|
|
105
|
+
description:
|
|
106
|
+
"Open the config inspector with the current configuration",
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
option: "ext",
|
|
110
|
+
type: "[String]",
|
|
111
|
+
description: "Specify additional file extensions to lint",
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
option: "global",
|
|
115
|
+
type: "[String]",
|
|
116
|
+
description: "Define global variables",
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
option: "parser",
|
|
120
|
+
type: "String",
|
|
121
|
+
description: "Specify the parser to be used",
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
option: "parser-options",
|
|
125
|
+
type: "Object",
|
|
126
|
+
description: "Specify parser options",
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
heading: "Specify Rules and Plugins",
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
option: "plugin",
|
|
133
|
+
type: "[String]",
|
|
134
|
+
description: "Specify plugins",
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
option: "rule",
|
|
138
|
+
type: "Object",
|
|
139
|
+
description: "Specify rules",
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
heading: "Fix Problems",
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
option: "fix",
|
|
146
|
+
type: "Boolean",
|
|
147
|
+
default: false,
|
|
148
|
+
description: "Automatically fix problems",
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
option: "fix-dry-run",
|
|
152
|
+
type: "Boolean",
|
|
153
|
+
default: false,
|
|
154
|
+
description:
|
|
155
|
+
"Automatically fix problems without saving the changes to the file system",
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
option: "fix-type",
|
|
159
|
+
type: "Array",
|
|
160
|
+
description:
|
|
161
|
+
"Specify the types of fixes to apply (directive, problem, suggestion, layout)",
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
heading: "Ignore Files",
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
option: "ignore",
|
|
168
|
+
type: "Boolean",
|
|
169
|
+
default: "true",
|
|
170
|
+
description: "Disable use of ignore files and patterns",
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
option: "ignore-pattern",
|
|
174
|
+
type: "[String]",
|
|
175
|
+
description: "Patterns of files to ignore",
|
|
176
|
+
concatRepeatedArrays: [
|
|
177
|
+
true,
|
|
178
|
+
{
|
|
179
|
+
oneValuePerFlag: true,
|
|
180
|
+
},
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
heading: "Use stdin",
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
option: "stdin",
|
|
188
|
+
type: "Boolean",
|
|
189
|
+
default: "false",
|
|
190
|
+
description: "Lint code provided on <STDIN>",
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
option: "stdin-filename",
|
|
194
|
+
type: "String",
|
|
195
|
+
description: "Specify filename to process STDIN as",
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
heading: "Handle Warnings",
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
option: "quiet",
|
|
202
|
+
type: "Boolean",
|
|
203
|
+
default: "false",
|
|
204
|
+
description: "Report errors only",
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
option: "max-warnings",
|
|
208
|
+
type: "Int",
|
|
209
|
+
default: "-1",
|
|
210
|
+
description: "Number of warnings to trigger nonzero exit code",
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
heading: "Output",
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
option: "output-file",
|
|
217
|
+
alias: "o",
|
|
218
|
+
type: "path::String",
|
|
219
|
+
description: "Specify file to write report to",
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
option: "format",
|
|
223
|
+
alias: "f",
|
|
224
|
+
type: "String",
|
|
225
|
+
default: "gasoline",
|
|
226
|
+
description: "Use a specific output format",
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
option: "color",
|
|
230
|
+
type: "Boolean",
|
|
231
|
+
alias: "no-color",
|
|
232
|
+
description: "Force enabling/disabling of color",
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
heading: "Inline configuration comments",
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
option: "inline-config",
|
|
239
|
+
type: "Boolean",
|
|
240
|
+
default: "true",
|
|
241
|
+
description: "Prevent comments from changing config or rules",
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
option: "report-unused-disable-directives",
|
|
245
|
+
type: "Boolean",
|
|
246
|
+
default: void 0,
|
|
247
|
+
description:
|
|
248
|
+
"Adds reported errors for unused eslint-disable and eslint-enable directives",
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
option: "report-unused-disable-directives-severity",
|
|
252
|
+
type: "String",
|
|
253
|
+
default: void 0,
|
|
254
|
+
description:
|
|
255
|
+
"Chooses severity level for reporting unused eslint-disable and eslint-enable directives",
|
|
256
|
+
enum: ["off", "warn", "error", "0", "1", "2"],
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
option: "report-unused-inline-configs",
|
|
260
|
+
type: "String",
|
|
261
|
+
default: void 0,
|
|
262
|
+
description:
|
|
263
|
+
"Adds reported errors for unused eslint inline config comments",
|
|
264
|
+
enum: ["off", "warn", "error", "0", "1", "2"],
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
heading: "Caching",
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
option: "cache",
|
|
271
|
+
type: "Boolean",
|
|
272
|
+
default: "false",
|
|
273
|
+
description: "Only check changed files",
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
option: "cache-file",
|
|
277
|
+
type: "path::String",
|
|
278
|
+
default: ".eslintcache",
|
|
279
|
+
description:
|
|
280
|
+
"Path to the cache file. Deprecated: use --cache-location",
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
option: "cache-location",
|
|
284
|
+
type: "path::String",
|
|
285
|
+
description: "Path to the cache file or directory",
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
option: "cache-strategy",
|
|
289
|
+
dependsOn: ["cache"],
|
|
290
|
+
type: "String",
|
|
291
|
+
default: "metadata",
|
|
292
|
+
enum: ["metadata", "content"],
|
|
293
|
+
description:
|
|
294
|
+
"Strategy to use for detecting changed files in the cache",
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
heading: "Suppressing Violations",
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
option: "suppress-all",
|
|
301
|
+
type: "Boolean",
|
|
302
|
+
default: "false",
|
|
303
|
+
description: "Suppress all violations",
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
option: "suppress-rule",
|
|
307
|
+
type: "[String]",
|
|
308
|
+
description: "Suppress specific rules",
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
option: "suppressions-location",
|
|
312
|
+
type: "path::String",
|
|
313
|
+
description: "Specify the location of the suppressions file",
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
option: "prune-suppressions",
|
|
317
|
+
type: "Boolean",
|
|
318
|
+
default: "false",
|
|
319
|
+
description: "Prune unused suppressions",
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
option: "pass-on-unpruned-suppressions",
|
|
323
|
+
type: "Boolean",
|
|
324
|
+
default: "false",
|
|
325
|
+
description: "Ignore unused suppressions",
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
heading: "Miscellaneous",
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
option: "init",
|
|
332
|
+
type: "Boolean",
|
|
333
|
+
default: "false",
|
|
334
|
+
description: "Run config initialization wizard",
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
option: "env-info",
|
|
338
|
+
type: "Boolean",
|
|
339
|
+
default: "false",
|
|
340
|
+
description: "Output execution environment information",
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
option: "error-on-unmatched-pattern",
|
|
344
|
+
type: "Boolean",
|
|
345
|
+
default: "true",
|
|
346
|
+
description: "Prevent errors when pattern is unmatched",
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
option: "exit-on-fatal-error",
|
|
350
|
+
type: "Boolean",
|
|
351
|
+
default: "false",
|
|
352
|
+
description: "Exit with exit code 2 in case of fatal error",
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
option: "warn-ignored",
|
|
356
|
+
type: "Boolean",
|
|
357
|
+
default: "true",
|
|
358
|
+
description:
|
|
359
|
+
"Suppress warnings when the file list includes ignored files",
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
option: "pass-on-no-patterns",
|
|
363
|
+
type: "Boolean",
|
|
364
|
+
default: false,
|
|
365
|
+
description:
|
|
366
|
+
"Exit with exit code 0 in case no file patterns are passed",
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
option: "debug",
|
|
370
|
+
type: "Boolean",
|
|
371
|
+
default: false,
|
|
372
|
+
description: "Output debugging information",
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
option: "help",
|
|
376
|
+
alias: "h",
|
|
377
|
+
type: "Boolean",
|
|
378
|
+
description: "Show help",
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
option: "version",
|
|
382
|
+
alias: "v",
|
|
383
|
+
type: "Boolean",
|
|
384
|
+
description: "Output the version number",
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
option: "print-config",
|
|
388
|
+
type: "path::String",
|
|
389
|
+
description: "Print the configuration for the given file",
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
option: "stats",
|
|
393
|
+
type: "Boolean",
|
|
394
|
+
default: "false",
|
|
395
|
+
description: "Add statistics to the lint report",
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
option: "flag",
|
|
399
|
+
type: "[String]",
|
|
400
|
+
description: "Enable a feature flag",
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
option: "mcp",
|
|
404
|
+
type: "Boolean",
|
|
405
|
+
description: "Start the ESLint MCP server",
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
option: "concurrency",
|
|
409
|
+
type: "Int|String",
|
|
410
|
+
default: "off",
|
|
411
|
+
description:
|
|
412
|
+
"Number of linting threads, auto to choose automatically, off for no multithreading",
|
|
413
|
+
},
|
|
414
|
+
],
|
|
415
|
+
});
|
|
416
|
+
};
|