Skip to content

Commit

Permalink
Fix perfectionist, upgrade to tseslint8
Browse files Browse the repository at this point in the history
  • Loading branch information
Sparticuz committed Jul 31, 2024
1 parent 24bd42c commit 9631322
Show file tree
Hide file tree
Showing 10 changed files with 691 additions and 161 deletions.
788 changes: 663 additions & 125 deletions package-lock.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"eslint-plugin-unicorn": "^55.0.0",
"eslint-plugin-vitest": "^0.5.4",
"globals": "^15.8.0",
"typescript-eslint": "^7.18.0"
"typescript-eslint": "^8.0.0"
},
"devDependencies": {
"@tsconfig/node20": "^20.1.4",
Expand Down
2 changes: 1 addition & 1 deletion src/configs/n.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import tseslint, { ConfigWithExtends } from "typescript-eslint";
import nodePlugin from "eslint-plugin-n";
import tseslint, { ConfigWithExtends } from "typescript-eslint";

export default tseslint.config(
nodePlugin.configs["flat/recommended"] as ConfigWithExtends,
Expand Down
9 changes: 1 addition & 8 deletions src/configs/perfectionist.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,7 @@ export default tseslint.config(
/**
* Reset sorting by a new line
*/
"perfectionist/sort-objects": [
"error",
{ "partition-by-new-line": true },
],
/**
* Make sure nulls are last in types
*/
"perfectionist/sort-union-types": ["error", { "nullable-last": true }],
"perfectionist/sort-objects": ["error", { partitionByNewLine: true }],
},
},
);
6 changes: 4 additions & 2 deletions src/configs/sonarjs.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import sonarJSPlugin from "eslint-plugin-sonarjs";
import tseslint from "typescript-eslint";
import tseslint, { type ConfigWithExtends } from "typescript-eslint";

export default tseslint.config(sonarJSPlugin.configs.recommended);
export default tseslint.config(
sonarJSPlugin.configs.recommended as ConfigWithExtends,
);
15 changes: 5 additions & 10 deletions src/configs/tseslint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,12 @@ export default tseslint.config(
...tseslint.configs.strictTypeChecked,
...tseslint.configs.stylisticTypeChecked,
{
rules: {
/**
* Set `@typescript-eslint/no-unused-vars` to just warn
*/
"@typescript-eslint/no-unused-vars": "warn",
/**
* Disable because of perfectionist
*/
"@typescript-eslint/sort-type-constituents": "off",
"@typescript-eslint/member-ordering": "off",
languageOptions: {
parserOptions: {
projectService: true,
},
},
rules: {},
settings: {
node: {
// Make sure we are looking for Typescript files as well
Expand Down
10 changes: 5 additions & 5 deletions src/configs/vitest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ export default tseslint.config({
...vitest.environments.env.globals,
},
},
settings: {
vitest: {
typecheck: true,
},
},
rules: {
/**
* Don't require items to be published for tests
*/
"n/no-unpublished-import": "off",
},
settings: {
vitest: {
typecheck: true,
},
},
});
15 changes: 9 additions & 6 deletions src/eslint.config.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
import tseslint from "typescript-eslint"; // Pending v8+
import tseslint from "typescript-eslint";

import arrayFunctionConfig from "./configs/array-function.js";
import eslintJSConfig from "./configs/eslint.js";
import nodeConfig from "./configs/n.js";
import tseslintConfig from "./configs/tseslint.js";
import perfectionistConfig from "./configs/perfectionist.js";
import prettierConfig from "./configs/prettier.js";
import promiseConfig from "./configs/promise.js";
import unicornConfig from "./configs/unicorn.js";
import arrayFunctionConfig from "./configs/array-function.js";
import regexpConfig from "./configs/regexp.js";
import sonarJsConfig from "./configs/sonarjs.js";
import securityConfig from "./configs/security.js";
import prettierConfig from "./configs/prettier.js";
import sonarJsConfig from "./configs/sonarjs.js";
import tseslintConfig from "./configs/tseslint.js";
import unicornConfig from "./configs/unicorn.js";
import vitestConfig from "./configs/vitest.js";

/**
Expand All @@ -29,6 +31,7 @@ export default tseslint.config(
...regexpConfig,
...sonarJsConfig,
...securityConfig,
...perfectionistConfig,
...prettierConfig,
...vitestConfig,
);
1 change: 0 additions & 1 deletion src/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ declare module "eslint-plugin-no-unsanitized" {
recommended: FlatConfig.Config;
};
}
declare module "eslint-plugin-perfectionist/configs/recommended-natural";
declare module "eslint-plugin-promise" {
const configs: {
"flat/recommended": FlatConfig.Config;
Expand Down
4 changes: 2 additions & 2 deletions tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"display": "Base Default TSConfig",
"extends": ["@tsconfig/node20/tsconfig", "@tsconfig/strictest/tsconfig"],
"compilerOptions": {
"declaration": true,
"declarationMap": true,
"declaration": false,
"declarationMap": false,
"exactOptionalPropertyTypes": false,
"module": "NodeNext",
"moduleResolution": "nodenext",
Expand Down

0 comments on commit 9631322

Please sign in to comment.