Jofthomas's picture
Upload 4781 files
5c2ed06 verified
raw
history blame
20.9 kB
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 };