Skip to content

Commit c85cfc4

Browse files
authored
Merge pull request Expensify#73421 from QichenZhu/eslint-9-c
[No QA] ESLint 9 upgrade cleanup
2 parents baae6ba + 47e70c8 commit c85cfc4

9 files changed

Lines changed: 55 additions & 127 deletions

File tree

eslint.changed.config.mjs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import {defineConfig} from 'eslint/config';
2+
import mainConfig from './eslint.config.mjs';
3+
4+
const config = defineConfig([
5+
...mainConfig,
6+
7+
{
8+
files: ['**/*.ts', '**/*.tsx'],
9+
rules: {
10+
'@typescript-eslint/no-deprecated': 'error',
11+
'rulesdir/no-default-id-values': 'error',
12+
'rulesdir/provide-canBeMissing-in-useOnyx': 'error',
13+
'rulesdir/no-unstable-hook-defaults': 'error',
14+
'no-restricted-syntax': [
15+
'error',
16+
{
17+
selector: 'ImportNamespaceSpecifier[parent.source.value=/^@libs/]',
18+
message: 'Namespace imports from @libs are not allowed. Use named imports instead. Example: import { method } from "@libs/module"',
19+
},
20+
{
21+
selector: 'ImportNamespaceSpecifier[parent.source.value=/^@userActions/]',
22+
message: 'Namespace imports from @userActions are not allowed. Use named imports instead. Example: import { action } from "@userActions/module"',
23+
},
24+
],
25+
},
26+
},
27+
28+
{
29+
files: ['**/libs/**/*.{ts,tsx}'],
30+
rules: {
31+
'no-restricted-syntax': [
32+
'error',
33+
{
34+
selector: 'ImportNamespaceSpecifier[parent.source.value=/^\\.\\./]',
35+
message: 'Namespace imports are not allowed. Use named imports instead. Example: import { method } from "../libs/module"',
36+
},
37+
{
38+
selector: 'ImportNamespaceSpecifier[parent.source.value=/^\\./]',
39+
message: 'Namespace imports are not allowed. Use named imports instead. Example: import { method } from "./libs/module"',
40+
},
41+
],
42+
},
43+
},
44+
]);
45+
46+
export default config;

eslint.config.changed.js

Lines changed: 0 additions & 106 deletions
This file was deleted.

eslint.config.js renamed to eslint.config.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,6 @@ const config = defineConfig([
269269
// Rulesdir specific rules
270270
'rulesdir/no-default-props': 'error',
271271
'rulesdir/prefer-type-fest': 'error',
272-
'rulesdir/no-multiple-onyx-in-file': 'off',
273272
'rulesdir/prefer-underscore-method': 'off',
274273
'rulesdir/prefer-import-module-contents': 'off',
275274
'rulesdir/no-beta-handler': 'error',
@@ -571,6 +570,7 @@ const config = defineConfig([
571570
'docs/assets/**/*',
572571
'web/gtm.js',
573572
'**/.expo/**/*',
573+
'**/.rock/**/*',
574574
'src/libs/SearchParser/searchParser.js',
575575
'src/libs/SearchParser/autocompleteParser.js',
576576
'help/_scripts/**/*',

scripts/combine-web-sourcemaps.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* eslint-disable @typescript-eslint/await-thenable */
21
import fs from 'fs';
32
import path from 'path';
43
import type {RawSourceMap} from 'source-map';

scripts/lintChanged.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ fi
3636
# Run eslint on the changed files
3737
if [[ -n "$GIT_DIFF_OUTPUT" ]] ; then
3838
# shellcheck disable=SC2086 # For multiple files in variable
39-
eslint --max-warnings=0 --config ./eslint.config.changed.js $GIT_DIFF_OUTPUT
39+
eslint --max-warnings=241 --config ./eslint.changed.config.mjs $GIT_DIFF_OUTPUT
4040
else
4141
info "No TypeScript files changed"
4242
fi

src/components/ProductTrainingContext/TOOLTIPS.ts

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,10 @@ import {dismissProductTraining} from '@libs/actions/Welcome';
33
import CONST from '@src/CONST';
44
import type {TranslationPaths} from '@src/languages/types';
55

6-
const {
7-
CONCIERGE_LHN_GBR,
8-
RENAME_SAVED_SEARCH,
9-
SCAN_TEST_TOOLTIP,
10-
SCAN_TEST_TOOLTIP_MANAGER,
11-
SCAN_TEST_CONFIRMATION,
12-
OUTSTANDING_FILTER,
13-
ACCOUNT_SWITCHER,
14-
SCAN_TEST_DRIVE_CONFIRMATION,
15-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
16-
MULTI_SCAN_EDUCATIONAL_MODAL,
17-
} = CONST.PRODUCT_TRAINING_TOOLTIP_NAMES;
6+
const {CONCIERGE_LHN_GBR, RENAME_SAVED_SEARCH, SCAN_TEST_TOOLTIP, SCAN_TEST_TOOLTIP_MANAGER, SCAN_TEST_CONFIRMATION, OUTSTANDING_FILTER, ACCOUNT_SWITCHER, SCAN_TEST_DRIVE_CONFIRMATION} =
7+
CONST.PRODUCT_TRAINING_TOOLTIP_NAMES;
188

19-
type ProductTrainingTooltipName = Exclude<ValueOf<typeof CONST.PRODUCT_TRAINING_TOOLTIP_NAMES>, typeof MULTI_SCAN_EDUCATIONAL_MODAL>;
9+
type ProductTrainingTooltipName = Exclude<ValueOf<typeof CONST.PRODUCT_TRAINING_TOOLTIP_NAMES>, typeof CONST.PRODUCT_TRAINING_TOOLTIP_NAMES.MULTI_SCAN_EDUCATIONAL_MODAL>;
2010

2111
type ShouldShowConditionProps = {
2212
shouldUseNarrowLayout: boolean;

src/libs/actions/IOU.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12051,7 +12051,8 @@ function checkIfScanFileCanBeRead(
1205112051
onFailure: () => void,
1205212052
) {
1205312053
if (!receiptFilename || !receiptPath) {
12054-
return;
12054+
onFailure();
12055+
return Promise.resolve();
1205512056
}
1205612057

1205712058
return readFileAsync(receiptPath.toString(), receiptFilename, onSuccess, onFailure, receiptType);

src/pages/iou/request/step/IOURequestStepConfirmation.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,6 @@ function IOURequestStepConfirmation({
410410
let isScanFilesCanBeRead = true;
411411

412412
Promise.all(
413-
// eslint-disable-next-line @typescript-eslint/await-thenable
414413
transactions.map((item) => {
415414
const itemReceiptFilename = getReceiptFilenameFromTransaction(item);
416415
const itemReceiptPath = item.receipt?.source;
@@ -421,7 +420,7 @@ function IOURequestStepConfirmation({
421420
if (item.receipt) {
422421
newReceiptFiles = {...newReceiptFiles, [item.transactionID]: item.receipt};
423422
}
424-
return;
423+
return Promise.resolve();
425424
}
426425

427426
const onSuccess = (file: File) => {

src/pages/iou/request/step/IOURequestStepScan/index.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,13 +241,12 @@ function IOURequestStepScan({
241241
let isAllScanFilesCanBeRead = true;
242242

243243
Promise.all(
244-
// eslint-disable-next-line @typescript-eslint/await-thenable
245244
transactions.map((item) => {
246245
const itemReceiptPath = item.receipt?.source;
247246
const isLocalFile = isLocalFileFileUtils(itemReceiptPath);
248247

249248
if (!isLocalFile) {
250-
return;
249+
return Promise.resolve();
251250
}
252251

253252
const onFailure = () => {

0 commit comments

Comments
 (0)