mirror of
https://git.proxmox.com/git/pve-eslint
synced 2025-10-04 00:18:35 +00:00

includes a (minimal) working wrapper Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
191 lines
5.4 KiB
JavaScript
191 lines
5.4 KiB
JavaScript
"use strict";
|
|
|
|
const internalFiles = [
|
|
"**/cli-engine/**/*",
|
|
"**/init/**/*",
|
|
"**/linter/**/*",
|
|
"**/rule-tester/**/*",
|
|
"**/rules/**/*",
|
|
"**/source-code/**/*"
|
|
];
|
|
|
|
module.exports = {
|
|
root: true,
|
|
plugins: [
|
|
"eslint-plugin",
|
|
"internal-rules"
|
|
],
|
|
extends: [
|
|
"eslint",
|
|
"plugin:eslint-plugin/recommended"
|
|
],
|
|
parserOptions: {
|
|
ecmaVersion: 2020
|
|
},
|
|
rules: {
|
|
"eslint-plugin/consistent-output": "error",
|
|
"eslint-plugin/no-deprecated-context-methods": "error",
|
|
"eslint-plugin/prefer-output-null": "error",
|
|
"eslint-plugin/prefer-placeholders": "error",
|
|
"eslint-plugin/report-message-format": ["error", "[^a-z].*\\.$"],
|
|
"eslint-plugin/require-meta-docs-description": "error",
|
|
"eslint-plugin/require-meta-type": "error",
|
|
"eslint-plugin/test-case-property-ordering": [
|
|
"error",
|
|
|
|
// https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/79
|
|
[
|
|
"filename",
|
|
"code",
|
|
"output",
|
|
"options",
|
|
"parser",
|
|
"parserOptions",
|
|
"globals",
|
|
"env",
|
|
"errors"
|
|
]
|
|
],
|
|
"eslint-plugin/test-case-shorthand-strings": "error",
|
|
"internal-rules/multiline-comment-style": "error"
|
|
},
|
|
overrides: [
|
|
{
|
|
files: ["lib/rules/*", "tools/internal-rules/*"],
|
|
excludedFiles: ["index.js"],
|
|
rules: {
|
|
"internal-rules/no-invalid-meta": "error"
|
|
|
|
/*
|
|
* TODO: enable it when all the rules using meta.messages
|
|
* "internal-rules/consistent-meta-messages": "error"
|
|
*/
|
|
}
|
|
},
|
|
{
|
|
files: ["lib/rules/*"],
|
|
excludedFiles: ["index.js"],
|
|
rules: {
|
|
"internal-rules/consistent-docs-url": "error"
|
|
}
|
|
},
|
|
{
|
|
files: ["tests/**/*"],
|
|
env: { mocha: true },
|
|
rules: {
|
|
"no-restricted-syntax": ["error", {
|
|
selector: "CallExpression[callee.object.name='assert'][callee.property.name='doesNotThrow']",
|
|
message: "`assert.doesNotThrow()` should be replaced with a comment next to the code."
|
|
}]
|
|
}
|
|
},
|
|
|
|
// Restrict relative path imports
|
|
{
|
|
files: ["lib/*"],
|
|
rules: {
|
|
"no-restricted-modules": ["error", {
|
|
patterns: [
|
|
...internalFiles
|
|
]
|
|
}]
|
|
}
|
|
},
|
|
{
|
|
files: ["lib/cli-engine/**/*"],
|
|
rules: {
|
|
"no-restricted-modules": ["error", {
|
|
patterns: [
|
|
...internalFiles,
|
|
"**/init"
|
|
]
|
|
}]
|
|
}
|
|
},
|
|
{
|
|
files: ["lib/init/**/*"],
|
|
rules: {
|
|
"no-restricted-modules": ["error", {
|
|
patterns: [
|
|
...internalFiles,
|
|
"**/rule-tester"
|
|
]
|
|
}]
|
|
}
|
|
},
|
|
{
|
|
files: ["lib/linter/**/*"],
|
|
rules: {
|
|
"no-restricted-modules": ["error", {
|
|
patterns: [
|
|
...internalFiles,
|
|
"fs",
|
|
"**/cli-engine",
|
|
"**/init",
|
|
"**/rule-tester"
|
|
]
|
|
}]
|
|
}
|
|
},
|
|
{
|
|
files: ["lib/rules/**/*"],
|
|
rules: {
|
|
"no-restricted-modules": ["error", {
|
|
patterns: [
|
|
...internalFiles,
|
|
"fs",
|
|
"**/cli-engine",
|
|
"**/init",
|
|
"**/linter",
|
|
"**/rule-tester",
|
|
"**/source-code"
|
|
]
|
|
}]
|
|
}
|
|
},
|
|
{
|
|
files: ["lib/shared/**/*"],
|
|
rules: {
|
|
"no-restricted-modules": ["error", {
|
|
patterns: [
|
|
...internalFiles,
|
|
"**/cli-engine",
|
|
"**/init",
|
|
"**/linter",
|
|
"**/rule-tester",
|
|
"**/source-code"
|
|
]
|
|
}]
|
|
}
|
|
},
|
|
{
|
|
files: ["lib/source-code/**/*"],
|
|
rules: {
|
|
"no-restricted-modules": ["error", {
|
|
patterns: [
|
|
...internalFiles,
|
|
"fs",
|
|
"**/cli-engine",
|
|
"**/init",
|
|
"**/linter",
|
|
"**/rule-tester",
|
|
"**/rules"
|
|
]
|
|
}]
|
|
}
|
|
},
|
|
{
|
|
files: ["lib/rule-tester/**/*"],
|
|
rules: {
|
|
"no-restricted-modules": ["error", {
|
|
patterns: [
|
|
...internalFiles,
|
|
"**/cli-engine",
|
|
"**/init"
|
|
]
|
|
}]
|
|
}
|
|
}
|
|
]
|
|
};
|