Skip to content

Commit

Permalink
[eslint-plugin] enable no-only-tests, import and tsdoc plugins for fl…
Browse files Browse the repository at this point in the history
…at config (Azure#29791)

with the help of  @eslint/compat
  • Loading branch information
jeremymeng committed May 23, 2024
1 parent 1b84172 commit d32460c
Show file tree
Hide file tree
Showing 8 changed files with 75 additions and 24 deletions.
27 changes: 14 additions & 13 deletions common/config/rush/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions common/tools/eslint-plugin-azure-sdk-helper/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
},
"dependencies": {
"@azure/eslint-plugin-azure-sdk": "^3.1.0",
"@eslint/compat": "^1.0.1",
"@eslint/js": "~9.2.0",
"@typescript-eslint/typescript-estree": "~7.10.0",
"@types/eslint": "~8.56.10",
Expand Down
1 change: 1 addition & 0 deletions common/tools/eslint-plugin-azure-sdk/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
"eslint-plugin-markdown": "^5.0.0"
},
"dependencies": {
"@eslint/compat": "^1.0.1",
"@eslint/js": "~9.2.0",
"@typescript-eslint/typescript-estree": "~7.10.0",
"@types/eslint": "~8.56.10",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,14 @@ export default {
curly: ["error", "multi-line"],
"eol-last": ["error", "always"],
eqeqeq: ["error", "always", { null: "ignore" }],
// https://github.com/import-js/eslint-plugin-import/issues/2948
// "import/no-extraneous-dependencies": [
// "error",
// {
// devDependencies: ["test/**/*.ts", "samples/**", "**/karma.conf.js", "**/.eslintrc.js"],
// optionalDependencies: false,
// peerDependencies: false,
// },
// ],
"import/no-extraneous-dependencies": [
"error",
{
devDependencies: ["test/**/*.ts", "samples/**", "**/karma.conf.js", "**/.eslintrc.js"],
optionalDependencies: false,
peerDependencies: false,
},
],
"no-console": "off",
"no-dupe-class-members": "off",
"no-invalid-this": "off",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
// Licensed under the MIT license.

import type { FlatConfig, SharedConfig } from "@typescript-eslint/utils/ts-eslint";
import { fixupPluginRules } from "@eslint/compat";
import noOnlyTests from "eslint-plugin-no-only-tests";
import tsdoc from "eslint-plugin-tsdoc";
import { rules as importRules } from "eslint-plugin-import";

const tsEslintCustomization: Record<string, SharedConfig.RuleEntry> = {
"@typescript-eslint/no-invalid-this": "off",
Expand Down Expand Up @@ -101,6 +105,37 @@ const azsdkDefault: Record<string, SharedConfig.RuleEntry> = {
"@azure/azure-sdk/ts-doc-internal": "off",
};

const noOnlyTestsCustomization = {
name: "no-only-tests-azsdk-customized",
plugins: {
"no-only-tests": fixupPluginRules(noOnlyTests),
},
files: ["**/test/**/*.ts"],
rules: {
"no-only-tests/no-only-tests": "error",
},
};

const tsdocCustomization = {
name: "tsdoc-azsdk-customized",
plugins: {
tsdoc: fixupPluginRules(tsdoc),
},
rules: {
"tsdoc/syntax": "error",
},
};

const importCustomization = {
name: "import-azsdk-customized",
plugins: {
import: fixupPluginRules({ rules: importRules }),
},
rules: {
"import/no-extraneous-dependencies": "error",
},
};

const rules: Record<string, SharedConfig.RuleEntry> = {
...tsEslintCustomization,
...azsdkDefault,
Expand Down Expand Up @@ -141,4 +176,7 @@ export default (parser: FlatConfig.Parser): FlatConfig.ConfigArray => [
main: "src/index.ts",
},
},
noOnlyTestsCustomization as FlatConfig.Config,
tsdocCustomization as FlatConfig.Config,
importCustomization as FlatConfig.Config,
];
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
declare module 'eslint-plugin-import' {
import type { FixupPluginDefinition } from '@eslint/compat';

declare const exprt: FixupPluginDefinition;
export = exprt;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
declare module 'eslint-plugin-no-only-tests' {
import type { FixupPluginDefinition } from '@eslint/compat';

declare const exprt: FixupPluginDefinition;
export = exprt;
}
3 changes: 1 addition & 2 deletions sdk/cosmosdb/cosmos/eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,8 @@ export default [
"@azure/azure-sdk/ts-package-json-module": "warn",
"@azure/azure-sdk/ts-doc-internal": "warn",

// not supporting flag config yet https://github.com/import-js/eslint-plugin-import/issues/2948
// https://github.com/benmosher/eslint-plugin-import/issues/1816
// "import/no-extraneous-dependencies": "off",
"import/no-extraneous-dependencies": "off",
},
},
];

0 comments on commit d32460c

Please sign in to comment.