mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-21 15:36:50 -05:00
lint: move eslint-native rules to oxlint (#6449)
* Update linting configuration and fix related issues * Fix type coercion for comment ID in check-first-comment.js to ensure proper comparison with summary comment IDs
This commit is contained in:
committed by
GitHub
parent
80bb888bae
commit
07fbcebb6a
@@ -6,7 +6,7 @@ import fs from 'fs';
|
|||||||
const token = process.env.GITHUB_TOKEN;
|
const token = process.env.GITHUB_TOKEN;
|
||||||
const repo = process.env.GITHUB_REPOSITORY;
|
const repo = process.env.GITHUB_REPOSITORY;
|
||||||
const issueNumber = process.env.GITHUB_EVENT_ISSUE_NUMBER;
|
const issueNumber = process.env.GITHUB_EVENT_ISSUE_NUMBER;
|
||||||
const commentId = process.env.GITHUB_EVENT_COMMENT_ID;
|
const commentId = String(process.env.GITHUB_EVENT_COMMENT_ID);
|
||||||
|
|
||||||
if (!token || !repo || !issueNumber || !commentId) {
|
if (!token || !repo || !issueNumber || !commentId) {
|
||||||
console.log('Missing required environment variables');
|
console.log('Missing required environment variables');
|
||||||
@@ -51,7 +51,7 @@ async function checkFirstComment() {
|
|||||||
|
|
||||||
const isFirstSummaryComment =
|
const isFirstSummaryComment =
|
||||||
coderabbitSummaryComments.length === 1 &&
|
coderabbitSummaryComments.length === 1 &&
|
||||||
coderabbitSummaryComments[0].id == commentId;
|
String(coderabbitSummaryComments[0].id) === commentId;
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
`CodeRabbit summary comments found: ${coderabbitSummaryComments.length}`,
|
`CodeRabbit summary comments found: ${coderabbitSummaryComments.length}`,
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
"fixStyle": "inline-type-imports"
|
"fixStyle": "inline-type-imports"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"typescript/no-implied-eval": "warn",
|
||||||
"typescript/no-explicit-any": "warn",
|
"typescript/no-explicit-any": "warn",
|
||||||
"typescript/no-restricted-types": [
|
"typescript/no-restricted-types": [
|
||||||
"warn",
|
"warn",
|
||||||
@@ -114,15 +115,80 @@
|
|||||||
"react/style-prop-object": "warn",
|
"react/style-prop-object": "warn",
|
||||||
|
|
||||||
// ESLint rules
|
// ESLint rules
|
||||||
|
"eslint/array-callback-return": "warn",
|
||||||
|
// "eslint/curly": ["warn", "multi-line", "consistent"], // TODO: re-enable? this rule is really slow
|
||||||
"eslint/default-case": [
|
"eslint/default-case": [
|
||||||
"warn",
|
"warn",
|
||||||
{
|
{
|
||||||
"commentPattern": "^no default$"
|
"commentPattern": "^no default$"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"eslint/eqeqeq": ["warn", "smart"],
|
||||||
"eslint/no-array-constructor": "warn",
|
"eslint/no-array-constructor": "warn",
|
||||||
|
"eslint/no-caller": "warn",
|
||||||
|
"eslint/no-cond-assign": ["warn", "except-parens"],
|
||||||
|
"eslint/no-const-assign": "warn",
|
||||||
|
"eslint/no-control-regex": "warn",
|
||||||
|
"eslint/no-delete-var": "warn",
|
||||||
|
"eslint/no-dupe-class-members": "warn",
|
||||||
|
"eslint/no-dupe-keys": "warn",
|
||||||
|
"eslint/no-duplicate-case": "warn",
|
||||||
|
"eslint/no-empty-character-class": "warn",
|
||||||
// "eslint/no-empty-function": "warn", // TODO: enable this
|
// "eslint/no-empty-function": "warn", // TODO: enable this
|
||||||
|
"eslint/no-empty-pattern": "warn",
|
||||||
|
"eslint/no-eval": "warn",
|
||||||
|
"eslint/no-ex-assign": "warn",
|
||||||
|
"eslint/no-extend-native": "warn",
|
||||||
|
"eslint/no-extra-bind": "warn",
|
||||||
|
"eslint/no-extra-label": "warn",
|
||||||
|
"eslint/no-fallthrough": "warn",
|
||||||
|
"eslint/no-func-assign": "warn",
|
||||||
|
"eslint/no-invalid-regexp": "warn",
|
||||||
|
"eslint/no-iterator": "warn",
|
||||||
|
"eslint/no-label-var": "warn",
|
||||||
|
"eslint/no-labels": [
|
||||||
|
"warn",
|
||||||
|
{
|
||||||
|
"allowLoop": true,
|
||||||
|
"allowSwitch": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"eslint/no-new-func": "warn",
|
||||||
|
"eslint/no-script-url": "warn",
|
||||||
|
"eslint/no-self-assign": "warn",
|
||||||
|
"eslint/no-self-compare": "warn",
|
||||||
|
"eslint/no-sequences": "warn",
|
||||||
|
"eslint/no-shadow-restricted-names": "warn",
|
||||||
|
"eslint/no-sparse-arrays": "warn",
|
||||||
|
"eslint/no-template-curly-in-string": "warn",
|
||||||
|
"eslint/no-this-before-super": "warn",
|
||||||
|
"eslint/no-throw-literal": "warn",
|
||||||
|
"eslint/no-unreachable": "warn",
|
||||||
|
"eslint/no-obj-calls": "warn",
|
||||||
|
"eslint/no-new-wrappers": "warn",
|
||||||
|
"eslint/no-unsafe-negation": "warn",
|
||||||
|
"eslint/no-multi-str": "warn",
|
||||||
|
"eslint/no-global-assign": "warn",
|
||||||
|
"eslint/no-lone-blocks": "warn",
|
||||||
|
"eslint/no-unused-labels": "warn",
|
||||||
"eslint/no-redeclare": "warn",
|
"eslint/no-redeclare": "warn",
|
||||||
|
"eslint/no-useless-computed-key": "warn",
|
||||||
|
"eslint/no-useless-concat": "warn",
|
||||||
|
"eslint/no-useless-escape": "warn",
|
||||||
|
"eslint/require-yield": "warn",
|
||||||
|
"eslint/getter-return": "warn",
|
||||||
|
"eslint/unicode-bom": ["warn", "never"],
|
||||||
|
"eslint/no-use-isnan": "warn",
|
||||||
|
"eslint/valid-typeof": "warn",
|
||||||
|
"eslint/no-useless-rename": [
|
||||||
|
"warn",
|
||||||
|
{
|
||||||
|
"ignoreDestructuring": false,
|
||||||
|
"ignoreImport": false,
|
||||||
|
"ignoreExport": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"eslint/no-with": "warn",
|
||||||
"eslint/no-regex-spaces": "warn",
|
"eslint/no-regex-spaces": "warn",
|
||||||
"eslint/no-restricted-globals": [
|
"eslint/no-restricted-globals": [
|
||||||
"warn",
|
"warn",
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ export default defineConfig(
|
|||||||
'packages/api/app/stats.json',
|
'packages/api/app/stats.json',
|
||||||
'packages/api/@types',
|
'packages/api/@types',
|
||||||
'packages/api/migrations',
|
'packages/api/migrations',
|
||||||
|
'packages/crdt/src/proto/sync_pb.js',
|
||||||
'packages/component-library/src/icons/**/*',
|
'packages/component-library/src/icons/**/*',
|
||||||
'packages/desktop-client/bundle.browser.js',
|
'packages/desktop-client/bundle.browser.js',
|
||||||
'packages/desktop-client/dev-dist/',
|
'packages/desktop-client/dev-dist/',
|
||||||
@@ -38,19 +39,6 @@ export default defineConfig(
|
|||||||
'**/node_modules/',
|
'**/node_modules/',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
// Temporary until the sync-server is migrated to TypeScript
|
|
||||||
files: [
|
|
||||||
'packages/sync-server/**/*.spec.{js,jsx}',
|
|
||||||
'packages/sync-server/**/*.test.{js,jsx}',
|
|
||||||
],
|
|
||||||
languageOptions: {
|
|
||||||
globals: {
|
|
||||||
...globals.jest,
|
|
||||||
vi: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
linterOptions: {
|
linterOptions: {
|
||||||
reportUnusedDisableDirectives: true,
|
reportUnusedDisableDirectives: true,
|
||||||
@@ -83,12 +71,6 @@ export default defineConfig(
|
|||||||
react: {
|
react: {
|
||||||
version: 'detect',
|
version: 'detect',
|
||||||
},
|
},
|
||||||
|
|
||||||
'import/resolver': {
|
|
||||||
typescript: {
|
|
||||||
alwaysTryTypes: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
pluginTypescript.configs.base,
|
pluginTypescript.configs.base,
|
||||||
@@ -109,107 +91,12 @@ export default defineConfig(
|
|||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
// http://eslint.org/docs/rules/
|
// http://eslint.org/docs/rules/
|
||||||
'array-callback-return': 'warn',
|
|
||||||
|
|
||||||
curly: ['warn', 'multi-line', 'consistent'],
|
|
||||||
eqeqeq: ['warn', 'smart'],
|
|
||||||
'no-array-constructor': 'warn',
|
|
||||||
'no-caller': 'warn',
|
|
||||||
'no-cond-assign': ['warn', 'except-parens'],
|
|
||||||
'no-const-assign': 'warn',
|
|
||||||
'no-control-regex': 'warn',
|
|
||||||
'no-delete-var': 'warn',
|
|
||||||
'no-dupe-args': 'warn',
|
'no-dupe-args': 'warn',
|
||||||
'no-dupe-class-members': 'warn',
|
|
||||||
'no-dupe-keys': 'warn',
|
|
||||||
'no-duplicate-case': 'warn',
|
|
||||||
'no-empty-character-class': 'warn',
|
|
||||||
'no-empty-pattern': 'warn',
|
|
||||||
'no-eval': 'warn',
|
|
||||||
'no-ex-assign': 'warn',
|
|
||||||
'no-extend-native': 'warn',
|
|
||||||
'no-extra-bind': 'warn',
|
|
||||||
'no-extra-label': 'warn',
|
|
||||||
'no-fallthrough': 'warn',
|
|
||||||
'no-func-assign': 'warn',
|
|
||||||
'no-implied-eval': 'warn',
|
|
||||||
'no-invalid-regexp': 'warn',
|
|
||||||
'no-iterator': 'warn',
|
|
||||||
'no-label-var': 'warn',
|
|
||||||
|
|
||||||
'no-labels': [
|
|
||||||
'warn',
|
|
||||||
{
|
|
||||||
allowLoop: true,
|
|
||||||
allowSwitch: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
'no-lone-blocks': 'warn',
|
|
||||||
|
|
||||||
'no-multi-str': 'warn',
|
|
||||||
'no-global-assign': 'warn',
|
|
||||||
'no-unsafe-negation': 'warn',
|
|
||||||
'no-new-func': 'warn',
|
|
||||||
'no-new-object': 'warn',
|
'no-new-object': 'warn',
|
||||||
'no-new-symbol': 'warn',
|
'no-new-symbol': 'warn',
|
||||||
'no-new-wrappers': 'warn',
|
|
||||||
'no-obj-calls': 'warn',
|
|
||||||
'no-octal': 'warn',
|
'no-octal': 'warn',
|
||||||
'no-octal-escape': 'warn',
|
'no-octal-escape': 'warn',
|
||||||
'no-script-url': 'warn',
|
|
||||||
'no-self-assign': 'warn',
|
|
||||||
'no-self-compare': 'warn',
|
|
||||||
'no-sequences': 'warn',
|
|
||||||
'no-shadow-restricted-names': 'warn',
|
|
||||||
'no-sparse-arrays': 'warn',
|
|
||||||
'no-template-curly-in-string': 'warn',
|
|
||||||
'no-this-before-super': 'warn',
|
|
||||||
'no-throw-literal': 'warn',
|
|
||||||
'no-undef': 'error',
|
|
||||||
'no-unreachable': 'warn',
|
|
||||||
|
|
||||||
'no-unused-expressions': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
allowShortCircuit: true,
|
|
||||||
allowTernary: true,
|
|
||||||
allowTaggedTemplates: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
'no-unused-labels': 'warn',
|
|
||||||
|
|
||||||
'no-use-before-define': [
|
|
||||||
'warn',
|
|
||||||
{
|
|
||||||
functions: false,
|
|
||||||
classes: false,
|
|
||||||
variables: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
'no-useless-computed-key': 'warn',
|
|
||||||
'no-useless-concat': 'warn',
|
|
||||||
'no-useless-constructor': 'warn',
|
|
||||||
'no-useless-escape': 'warn',
|
|
||||||
|
|
||||||
'no-useless-rename': [
|
|
||||||
'warn',
|
|
||||||
{
|
|
||||||
ignoreDestructuring: false,
|
|
||||||
ignoreImport: false,
|
|
||||||
ignoreExport: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
'no-with': 'warn',
|
|
||||||
|
|
||||||
'require-yield': 'warn',
|
|
||||||
strict: ['warn', 'never'],
|
strict: ['warn', 'never'],
|
||||||
'unicode-bom': ['warn', 'never'],
|
|
||||||
'use-isnan': 'warn',
|
|
||||||
'valid-typeof': 'warn',
|
|
||||||
|
|
||||||
'no-restricted-properties': [
|
'no-restricted-properties': [
|
||||||
'error',
|
'error',
|
||||||
@@ -227,8 +114,6 @@ export default defineConfig(
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
'getter-return': 'warn',
|
|
||||||
|
|
||||||
'perfectionist/sort-imports': [
|
'perfectionist/sort-imports': [
|
||||||
'warn',
|
'warn',
|
||||||
{
|
{
|
||||||
@@ -293,10 +178,6 @@ export default defineConfig(
|
|||||||
'actual/prefer-if-statement': 'warn',
|
'actual/prefer-if-statement': 'warn',
|
||||||
'actual/prefer-logger-over-console': 'error',
|
'actual/prefer-logger-over-console': 'error',
|
||||||
|
|
||||||
// https://github.com/eslint/eslint/issues/16954
|
|
||||||
// https://github.com/eslint/eslint/issues/16953
|
|
||||||
'no-loop-func': 'off',
|
|
||||||
|
|
||||||
'object-shorthand': ['warn', 'properties'],
|
'object-shorthand': ['warn', 'properties'],
|
||||||
|
|
||||||
'no-restricted-syntax': [
|
'no-restricted-syntax': [
|
||||||
@@ -317,7 +198,6 @@ export default defineConfig(
|
|||||||
|
|
||||||
// Rules disabled during TS migration
|
// Rules disabled during TS migration
|
||||||
'prefer-const': 'warn',
|
'prefer-const': 'warn',
|
||||||
'prefer-spread': 'off',
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ export function diff(trie1: TrieNode, trie2: TrieNode): number | null {
|
|||||||
node2 = node2[diffkey] || emptyTrie();
|
node2 = node2[diffkey] || emptyTrie();
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line no-unreachable
|
// oxlint-disable-next-line no-unreachable
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ describe('unicode LIKE functionality', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should match special characters', () => {
|
it('should match special characters', () => {
|
||||||
|
// oxlint-disable-next-line no-template-curly-in-string
|
||||||
const result = unicodeLike('.*+^${}()|[]\\', '.*+^${}()|[]\\');
|
const result = unicodeLike('.*+^${}()|[]\\', '.*+^${}()|[]\\');
|
||||||
|
|
||||||
expect(result).toBe(1);
|
expect(result).toBe(1);
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ export async function checkKey(): Promise<{
|
|||||||
return {
|
return {
|
||||||
valid:
|
valid:
|
||||||
// This == comparison is important, they could be null or undefined
|
// This == comparison is important, they could be null or undefined
|
||||||
// eslint-disable-next-line eqeqeq
|
// oxlint-disable-next-line eslint/eqeqeq
|
||||||
res.id == encryptKeyId &&
|
res.id == encryptKeyId &&
|
||||||
(encryptKeyId == null || encryption.hasKey(encryptKeyId)),
|
(encryptKeyId == null || encryption.hasKey(encryptKeyId)),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -105,13 +105,12 @@ describe('sync migrations', () => {
|
|||||||
{ isChild: number; parent_id: string | null; id: string }
|
{ isChild: number; parent_id: string | null; id: string }
|
||||||
>;
|
>;
|
||||||
if (
|
if (
|
||||||
ts &&
|
!ts ||
|
||||||
[...ts.values()].find(
|
![...ts.values()].find(
|
||||||
t =>
|
t =>
|
||||||
t.isChild === 1 && t.parent_id == null && t.id.includes('/'),
|
t.isChild === 1 && t.parent_id == null && t.id.includes('/'),
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
} else {
|
|
||||||
tracer.event('applied');
|
tracer.event('applied');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
6
upcoming-release-notes/6449.md
Normal file
6
upcoming-release-notes/6449.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
category: Maintenance
|
||||||
|
authors: [MatissJanis]
|
||||||
|
---
|
||||||
|
|
||||||
|
lint: move more native eslint rules to oxlint
|
||||||
Reference in New Issue
Block a user