eslint-config-interfaced
Version:
ESLint config for the approaches adopted by Interfaced company
78 lines (73 loc) • 2.57 kB
YAML
# JSDoc
interfaced/jsdoc-tags-order: ["error", {
tagsOrder: [
"deprecated",
"template",
"abstract",
"virtual",
"extends",
"implements",
"override",
"suppress",
"type",
"this",
"param",
"return",
"throws",
"public",
"protected",
"private"
]
}]
interfaced/jsdoc-type-application-dot: ["error", "never"]
interfaced/jsdoc-type-indent: ["error", 4]
interfaced/jsdoc-type-spacing: ["error", {
topBraces: "never",
parens: "never",
unaryOperator: "never",
unionPipe: { before: "never", after: "never" },
typeApplicationBrackets: "never",
typeApplicationComma: { before: "never", after: "always" },
recordBraces: "never",
recordFieldComma: { before: "never", after: "always" },
recordFieldColon: { before: "never", after: "always" },
functionKeyword: "never",
functionParens: "never",
functionParamComma: { before: "never", after: "always" },
functionParamColon: { before: "never", after: "always" },
functionResultColon: { before: "never", after: "always" }
}]
interfaced/no-jsdoc-type-multi-spaces: "error"
interfaced/no-jsdoc-type-tabs: "error"
interfaced/no-restricted-jsdoc-tags: ["error", {
tags: ["inheritdoc", "public", {
tag: "extends",
allowWithTags: ["interface", "constructor", "record"],
allowWithTypes: ["TypeApplication"] # Lets use @extends for generics
}]
}]
interfaced/prefer-shorthand-jsdoc-types: ["error", { optionalParam: "always", nullableType: "always" }]
interfaced/prevent-unused-jsdoc-types: "error"
# Naming convention
interfaced/abstract-class-name-prefix: "error"
interfaced/capitalized-enum: "error"
interfaced/capitalized-typedef: "error"
interfaced/caps-const: "error"
interfaced/event-const-desc: "error"
interfaced/event-const-value: "error"
interfaced/interface-name-prefix: "error"
interfaced/singular-enum: "error"
# Stylistic issues
interfaced/lines-around-class: ["error", { before: 2, after: 2, collisionPriority: "before" }]
interfaced/lines-between-methods: ["error", { amount: 1 }]
interfaced/lines-between-props: ["error", { amount: 1 }]
interfaced/methods-order: ["error", { scopesOrder: ["public", "protected", "private"], staticInTheEnd: true }]
interfaced/props-order: ["error", { scopesOrder: ["public", "protected", "private"], constInTheEnd: true }]
interfaced/typecast-spacing: "error"
# Other
interfaced/no-empty-method: "error"
interfaced/no-public-underscore: "error"
interfaced/prevent-unused-meta-params: "error"
# Redefined
interfaced/no-param-reassign: "error"
interfaced/no-unused-expressions: "error"