import { p as createAllConfigs } from './utils.js'; import arrayBracketNewline from './rules/array-bracket-newline.js'; import arrayBracketSpacing from './rules/array-bracket-spacing.js'; import arrayElementNewline from './rules/array-element-newline.js'; import arrowParens from './rules/arrow-parens.js'; import arrowSpacing from './rules/arrow-spacing.js'; import blockSpacing from './rules/block-spacing.js'; import braceStyle from './rules/brace-style.js'; import commaDangle from './rules/comma-dangle.js'; import commaSpacing from './rules/comma-spacing.js'; import commaStyle from './rules/comma-style.js'; import computedPropertySpacing from './rules/computed-property-spacing.js'; import curlyNewline from './rules/curly-newline.js'; import dotLocation from './rules/dot-location.js'; import eolLast from './rules/eol-last.js'; import functionCallArgumentNewline from './rules/function-call-argument-newline.js'; import functionCallSpacing from './rules/function-call-spacing.js'; import functionParenNewline from './rules/function-paren-newline.js'; import generatorStarSpacing from './rules/generator-star-spacing.js'; import implicitArrowLinebreak from './rules/implicit-arrow-linebreak.js'; import indentBinaryOps from './rules/indent-binary-ops.js'; import indent from './rules/indent.js'; import jsxChildElementSpacing from './rules/jsx-child-element-spacing.js'; import jsxClosingBracketLocation from './rules/jsx-closing-bracket-location.js'; import jsxClosingTagLocation from './rules/jsx-closing-tag-location.js'; import jsxCurlyBracePresence from './rules/jsx-curly-brace-presence.js'; import jsxCurlyNewline from './rules/jsx-curly-newline.js'; import jsxCurlySpacing from './rules/jsx-curly-spacing.js'; import jsxEqualsSpacing from './rules/jsx-equals-spacing.js'; import jsxFirstPropNewLine from './rules/jsx-first-prop-new-line.js'; import jsxFunctionCallNewline from './rules/jsx-function-call-newline.js'; import jsxIndentProps from './rules/jsx-indent-props.js'; import jsxIndent from './rules/jsx-indent.js'; import jsxMaxPropsPerLine from './rules/jsx-max-props-per-line.js'; import jsxNewline from './rules/jsx-newline.js'; import jsxOneExpressionPerLine from './rules/jsx-one-expression-per-line.js'; import jsxPascalCase from './rules/jsx-pascal-case.js'; import jsxPropsNoMultiSpaces from './rules/jsx-props-no-multi-spaces.js'; import jsxQuotes from './rules/jsx-quotes.js'; import jsxSelfClosingComp from './rules/jsx-self-closing-comp.js'; import jsxSortProps from './rules/jsx-sort-props.js'; import jsxTagSpacing from './rules/jsx-tag-spacing.js'; import jsxWrapMultilines from './rules/jsx-wrap-multilines.js'; import keySpacing from './rules/key-spacing.js'; import keywordSpacing from './rules/keyword-spacing.js'; import lineCommentPosition from './rules/line-comment-position.js'; import linebreakStyle from './rules/linebreak-style.js'; import linesAroundComment from './rules/lines-around-comment.js'; import linesBetweenClassMembers from './rules/lines-between-class-members.js'; import maxLen from './rules/max-len.js'; import maxStatementsPerLine from './rules/max-statements-per-line.js'; import memberDelimiterStyle from './rules/member-delimiter-style.js'; import multilineCommentStyle from './rules/multiline-comment-style.js'; import multilineTernary from './rules/multiline-ternary.js'; import newParens from './rules/new-parens.js'; import newlinePerChainedCall from './rules/newline-per-chained-call.js'; import noConfusingArrow from './rules/no-confusing-arrow.js'; import noExtraParens from './rules/no-extra-parens.js'; import noExtraSemi from './rules/no-extra-semi.js'; import noFloatingDecimal from './rules/no-floating-decimal.js'; import noMixedOperators from './rules/no-mixed-operators.js'; import noMixedSpacesAndTabs from './rules/no-mixed-spaces-and-tabs.js'; import noMultiSpaces from './rules/no-multi-spaces.js'; import noMultipleEmptyLines from './rules/no-multiple-empty-lines.js'; import noTabs from './rules/no-tabs.js'; import noTrailingSpaces from './rules/no-trailing-spaces.js'; import noWhitespaceBeforeProperty from './rules/no-whitespace-before-property.js'; import nonblockStatementBodyPosition from './rules/nonblock-statement-body-position.js'; import objectCurlyNewline from './rules/object-curly-newline.js'; import objectCurlySpacing from './rules/object-curly-spacing.js'; import objectPropertyNewline from './rules/object-property-newline.js'; import oneVarDeclarationPerLine from './rules/one-var-declaration-per-line.js'; import operatorLinebreak from './rules/operator-linebreak.js'; import paddedBlocks from './rules/padded-blocks.js'; import paddingLineBetweenStatements from './rules/padding-line-between-statements.js'; import quoteProps from './rules/quote-props.js'; import quotes from './rules/quotes.js'; import restSpreadSpacing from './rules/rest-spread-spacing.js'; import semiSpacing from './rules/semi-spacing.js'; import semiStyle from './rules/semi-style.js'; import semi from './rules/semi.js'; import spaceBeforeBlocks from './rules/space-before-blocks.js'; import spaceBeforeFunctionParen from './rules/space-before-function-paren.js'; import spaceInParens from './rules/space-in-parens.js'; import spaceInfixOps from './rules/space-infix-ops.js'; import spaceUnaryOps from './rules/space-unary-ops.js'; import spacedComment from './rules/spaced-comment.js'; import switchColonSpacing from './rules/switch-colon-spacing.js'; import templateCurlySpacing from './rules/template-curly-spacing.js'; import templateTagSpacing from './rules/template-tag-spacing.js'; import typeAnnotationSpacing from './rules/type-annotation-spacing.js'; import typeGenericSpacing from './rules/type-generic-spacing.js'; import typeNamedTupleSpacing from './rules/type-named-tuple-spacing.js'; import wrapIife from './rules/wrap-iife.js'; import wrapRegex from './rules/wrap-regex.js'; import yieldStarSpacing from './rules/yield-star-spacing.js'; var rules = { "array-bracket-newline": arrayBracketNewline, "array-bracket-spacing": arrayBracketSpacing, "array-element-newline": arrayElementNewline, "arrow-parens": arrowParens, "arrow-spacing": arrowSpacing, "block-spacing": blockSpacing, "brace-style": braceStyle, "comma-dangle": commaDangle, "comma-spacing": commaSpacing, "comma-style": commaStyle, "computed-property-spacing": computedPropertySpacing, "curly-newline": curlyNewline, "dot-location": dotLocation, "eol-last": eolLast, "func-call-spacing": functionCallSpacing, "function-call-argument-newline": functionCallArgumentNewline, "function-call-spacing": functionCallSpacing, "function-paren-newline": functionParenNewline, "generator-star-spacing": generatorStarSpacing, "implicit-arrow-linebreak": implicitArrowLinebreak, "indent": indent, "indent-binary-ops": indentBinaryOps, "jsx-child-element-spacing": jsxChildElementSpacing, "jsx-closing-bracket-location": jsxClosingBracketLocation, "jsx-closing-tag-location": jsxClosingTagLocation, "jsx-curly-brace-presence": jsxCurlyBracePresence, "jsx-curly-newline": jsxCurlyNewline, "jsx-curly-spacing": jsxCurlySpacing, "jsx-equals-spacing": jsxEqualsSpacing, "jsx-first-prop-new-line": jsxFirstPropNewLine, "jsx-function-call-newline": jsxFunctionCallNewline, "jsx-indent": jsxIndent, "jsx-indent-props": jsxIndentProps, "jsx-max-props-per-line": jsxMaxPropsPerLine, "jsx-newline": jsxNewline, "jsx-one-expression-per-line": jsxOneExpressionPerLine, "jsx-pascal-case": jsxPascalCase, "jsx-props-no-multi-spaces": jsxPropsNoMultiSpaces, "jsx-quotes": jsxQuotes, "jsx-self-closing-comp": jsxSelfClosingComp, "jsx-sort-props": jsxSortProps, "jsx-tag-spacing": jsxTagSpacing, "jsx-wrap-multilines": jsxWrapMultilines, "key-spacing": keySpacing, "keyword-spacing": keywordSpacing, "line-comment-position": lineCommentPosition, "linebreak-style": linebreakStyle, "lines-around-comment": linesAroundComment, "lines-between-class-members": linesBetweenClassMembers, "max-len": maxLen, "max-statements-per-line": maxStatementsPerLine, "member-delimiter-style": memberDelimiterStyle, "multiline-comment-style": multilineCommentStyle, "multiline-ternary": multilineTernary, "new-parens": newParens, "newline-per-chained-call": newlinePerChainedCall, "no-confusing-arrow": noConfusingArrow, "no-extra-parens": noExtraParens, "no-extra-semi": noExtraSemi, "no-floating-decimal": noFloatingDecimal, "no-mixed-operators": noMixedOperators, "no-mixed-spaces-and-tabs": noMixedSpacesAndTabs, "no-multi-spaces": noMultiSpaces, "no-multiple-empty-lines": noMultipleEmptyLines, "no-tabs": noTabs, "no-trailing-spaces": noTrailingSpaces, "no-whitespace-before-property": noWhitespaceBeforeProperty, "nonblock-statement-body-position": nonblockStatementBodyPosition, "object-curly-newline": objectCurlyNewline, "object-curly-spacing": objectCurlySpacing, "object-property-newline": objectPropertyNewline, "one-var-declaration-per-line": oneVarDeclarationPerLine, "operator-linebreak": operatorLinebreak, "padded-blocks": paddedBlocks, "padding-line-between-statements": paddingLineBetweenStatements, "quote-props": quoteProps, "quotes": quotes, "rest-spread-spacing": restSpreadSpacing, "semi": semi, "semi-spacing": semiSpacing, "semi-style": semiStyle, "space-before-blocks": spaceBeforeBlocks, "space-before-function-paren": spaceBeforeFunctionParen, "space-in-parens": spaceInParens, "space-infix-ops": spaceInfixOps, "space-unary-ops": spaceUnaryOps, "spaced-comment": spacedComment, "switch-colon-spacing": switchColonSpacing, "template-curly-spacing": templateCurlySpacing, "template-tag-spacing": templateTagSpacing, "type-annotation-spacing": typeAnnotationSpacing, "type-generic-spacing": typeGenericSpacing, "type-named-tuple-spacing": typeNamedTupleSpacing, "wrap-iife": wrapIife, "wrap-regex": wrapRegex, "yield-star-spacing": yieldStarSpacing }; const plugin = { rules }; function customize(options = {}) { const { arrowParens = false, blockSpacing = true, braceStyle = "stroustrup", commaDangle = "always-multiline", indent = 2, jsx = true, pluginName = "@stylistic", quoteProps = "consistent-as-needed", quotes = "single", semi = false } = options; let rules = { "@stylistic/array-bracket-spacing": ["error", "never"], "@stylistic/arrow-parens": ["error", arrowParens ? "always" : "as-needed", { requireForBlockBody: true }], "@stylistic/arrow-spacing": ["error", { after: true, before: true }], "@stylistic/block-spacing": ["error", blockSpacing ? "always" : "never"], "@stylistic/brace-style": ["error", braceStyle, { allowSingleLine: true }], "@stylistic/comma-dangle": ["error", commaDangle], "@stylistic/comma-spacing": ["error", { after: true, before: false }], "@stylistic/comma-style": ["error", "last"], "@stylistic/computed-property-spacing": ["error", "never", { enforceForClassMembers: true }], "@stylistic/dot-location": ["error", "property"], "@stylistic/eol-last": "error", "@stylistic/indent": ["error", indent, { ArrayExpression: 1, CallExpression: { arguments: 1 }, flatTernaryExpressions: false, FunctionDeclaration: { body: 1, parameters: 1 }, FunctionExpression: { body: 1, parameters: 1 }, ignoreComments: false, ignoredNodes: [ "TSUnionType", "TSIntersectionType", "TSTypeParameterInstantiation", "FunctionExpression > .params[decorators.length > 0]", "FunctionExpression > .params > :matches(Decorator, :not(:first-child))" ], ImportDeclaration: 1, MemberExpression: 1, ObjectExpression: 1, offsetTernaryExpressions: true, outerIIFEBody: 1, SwitchCase: 1, tabLength: indent === "tab" ? 4 : indent, VariableDeclarator: 1 }], "@stylistic/indent-binary-ops": ["error", indent], "@stylistic/key-spacing": ["error", { afterColon: true, beforeColon: false }], "@stylistic/keyword-spacing": ["error", { after: true, before: true }], "@stylistic/lines-between-class-members": ["error", "always", { exceptAfterSingleLine: true }], "@stylistic/max-statements-per-line": ["error", { max: 1 }], "@stylistic/member-delimiter-style": ["error", { multiline: { delimiter: semi ? "semi" : "none", requireLast: semi }, multilineDetection: "brackets", overrides: { interface: { multiline: { delimiter: semi ? "semi" : "none", requireLast: semi } } }, singleline: { delimiter: semi ? "semi" : "comma" } }], "@stylistic/multiline-ternary": ["error", "always-multiline"], "@stylistic/new-parens": "error", "@stylistic/no-extra-parens": ["error", "functions"], "@stylistic/no-floating-decimal": "error", "@stylistic/no-mixed-operators": ["error", { allowSamePrecedence: true, groups: [ ["==", "!=", "===", "!==", ">", ">=", "<", "<="], ["&&", "||"], ["in", "instanceof"] ] }], "@stylistic/no-mixed-spaces-and-tabs": "error", "@stylistic/no-multi-spaces": "error", "@stylistic/no-multiple-empty-lines": ["error", { max: 1, maxBOF: 0, maxEOF: 0 }], "@stylistic/no-tabs": indent === "tab" ? "off" : "error", "@stylistic/no-trailing-spaces": "error", "@stylistic/no-whitespace-before-property": "error", "@stylistic/object-curly-spacing": ["error", "always"], "@stylistic/operator-linebreak": ["error", "before"], "@stylistic/padded-blocks": ["error", { blocks: "never", classes: "never", switches: "never" }], "@stylistic/quote-props": ["error", quoteProps], "@stylistic/quotes": ["error", quotes, { allowTemplateLiterals: true, avoidEscape: false }], "@stylistic/rest-spread-spacing": ["error", "never"], "@stylistic/semi": ["error", semi ? "always" : "never"], "@stylistic/semi-spacing": ["error", { after: true, before: false }], "@stylistic/space-before-blocks": ["error", "always"], "@stylistic/space-before-function-paren": ["error", { anonymous: "always", asyncArrow: "always", named: "never" }], "@stylistic/space-in-parens": ["error", "never"], "@stylistic/space-infix-ops": "error", "@stylistic/space-unary-ops": ["error", { nonwords: false, words: true }], "@stylistic/spaced-comment": ["error", "always", { block: { balanced: true, exceptions: ["*"], markers: ["!"] }, line: { exceptions: ["/", "#"], markers: ["/"] } }], "@stylistic/template-curly-spacing": "error", "@stylistic/template-tag-spacing": ["error", "never"], "@stylistic/type-annotation-spacing": ["error", {}], "@stylistic/type-generic-spacing": "error", "@stylistic/type-named-tuple-spacing": "error", "@stylistic/wrap-iife": ["error", "any", { functionPrototypeMethods: true }], "@stylistic/yield-star-spacing": ["error", "both"], ...jsx ? { "@stylistic/jsx-closing-bracket-location": "error", "@stylistic/jsx-closing-tag-location": "error", "@stylistic/jsx-curly-brace-presence": ["error", { propElementValues: "always" }], "@stylistic/jsx-curly-newline": "error", "@stylistic/jsx-curly-spacing": ["error", "never"], "@stylistic/jsx-equals-spacing": "error", "@stylistic/jsx-first-prop-new-line": "error", "@stylistic/jsx-function-call-newline": ["error", "multiline"], "@stylistic/jsx-indent-props": ["error", indent], "@stylistic/jsx-max-props-per-line": ["error", { maximum: 1, when: "multiline" }], "@stylistic/jsx-one-expression-per-line": ["error", { allow: "single-child" }], "@stylistic/jsx-quotes": "error", "@stylistic/jsx-tag-spacing": [ "error", { afterOpening: "never", beforeClosing: "never", beforeSelfClosing: "always", closingSlash: "never" } ], "@stylistic/jsx-wrap-multilines": [ "error", { arrow: "parens-new-line", assignment: "parens-new-line", condition: "parens-new-line", declaration: "parens-new-line", logical: "parens-new-line", prop: "parens-new-line", propertyValue: "parens-new-line", return: "parens-new-line" } ] } : {} }; if (pluginName !== "@stylistic") { const regex = /^@stylistic\//; rules = Object.fromEntries( Object.entries(rules).map(([ruleName, ruleConfig]) => [ ruleName.replace(regex, `${pluginName}/`), ruleConfig ]) ); } return { plugins: { [pluginName]: plugin }, rules }; } const config = { rules: { "array-bracket-newline": 0, "array-bracket-spacing": 0, "array-element-newline": 0, "arrow-parens": 0, "arrow-spacing": 0, "block-spacing": 0, "brace-style": 0, "comma-dangle": 0, "comma-spacing": 0, "comma-style": 0, "computed-property-spacing": 0, "dot-location": 0, "eol-last": 0, "func-call-spacing": 0, "function-call-argument-newline": 0, "function-paren-newline": 0, "generator-star-spacing": 0, "implicit-arrow-linebreak": 0, "indent": 0, "jsx-quotes": 0, "key-spacing": 0, "keyword-spacing": 0, "linebreak-style": 0, "lines-around-comment": 0, "lines-between-class-members": 0, "max-len": 0, "max-statements-per-line": 0, "multiline-ternary": 0, "new-parens": 0, "newline-per-chained-call": 0, "no-confusing-arrow": 0, "no-extra-parens": 0, "no-extra-semi": 0, "no-floating-decimal": 0, "no-mixed-operators": 0, "no-mixed-spaces-and-tabs": 0, "no-multi-spaces": 0, "no-multiple-empty-lines": 0, "no-tabs": 0, "no-trailing-spaces": 0, "no-whitespace-before-property": 0, "nonblock-statement-body-position": 0, "object-curly-newline": 0, "object-curly-spacing": 0, "object-property-newline": 0, "one-var-declaration-per-line": 0, "operator-linebreak": 0, "padded-blocks": 0, "padding-line-between-statements": 0, "quote-props": 0, "quotes": 0, "rest-spread-spacing": 0, "semi": 0, "semi-spacing": 0, "semi-style": 0, "space-before-blocks": 0, "space-before-function-paren": 0, "space-in-parens": 0, "space-infix-ops": 0, "space-unary-ops": 0, "spaced-comment": 0, "switch-colon-spacing": 0, "template-curly-spacing": 0, "template-tag-spacing": 0, "wrap-iife": 0, "wrap-regex": 0, "yield-star-spacing": 0, "@typescript-eslint/block-spacing": 0, "@typescript-eslint/brace-style": 0, "@typescript-eslint/comma-dangle": 0, "@typescript-eslint/comma-spacing": 0, "@typescript-eslint/func-call-spacing": 0, "@typescript-eslint/indent": 0, "@typescript-eslint/key-spacing": 0, "@typescript-eslint/keyword-spacing": 0, "@typescript-eslint/lines-around-comment": 0, "@typescript-eslint/lines-between-class-members": 0, "@typescript-eslint/member-delimiter-style": 0, "@typescript-eslint/no-extra-parens": 0, "@typescript-eslint/no-extra-semi": 0, "@typescript-eslint/object-curly-spacing": 0, "@typescript-eslint/padding-line-between-statements": 0, "@typescript-eslint/quotes": 0, "@typescript-eslint/semi": 0, "@typescript-eslint/space-before-blocks": 0, "@typescript-eslint/space-before-function-paren": 0, "@typescript-eslint/space-infix-ops": 0, "@typescript-eslint/type-annotation-spacing": 0, "react/jsx-child-element-spacing": 0, "react/jsx-closing-bracket-location": 0, "react/jsx-closing-tag-location": 0, "react/jsx-curly-brace-presence": 0, "react/jsx-curly-newline": 0, "react/jsx-curly-spacing": 0, "react/jsx-equals-spacing": 0, "react/jsx-first-prop-new-line": 0, "react/jsx-indent": 0, "react/jsx-indent-props": 0, "react/jsx-max-props-per-line": 0, "react/jsx-newline": 0, "react/jsx-one-expression-per-line": 0, "react/jsx-props-no-multi-spaces": 0, "react/jsx-self-closing-comp": 0, "react/jsx-sort-props": 0, "react/jsx-tag-spacing": 0, "react/jsx-wrap-multilines": 0 } }; const allConfigsIgnore = [ // Exclude all JSX rules /^jsx-/, // https://github.com/eslint-stylistic/eslint-stylistic/pull/548 /^curly-newline$/ ]; const all = /* @__PURE__ */ createAllConfigs(plugin, "@stylistic", (name) => !allConfigsIgnore.some((re) => re.test(name))); const recommended = /* @__PURE__ */ customize(); const configs = { "disable-legacy": config, "customize": customize, "recommended": recommended, "recommended-flat": recommended, "all": all, "all-flat": all }; export { configs as c, plugin as p };