Skip to content

Commit 9a336fe

Browse files
committed
refactor: migrate plugin-import to plugin-import-x
also `import-resolver-oxc` to the new `import-resolver-typescript`
1 parent 1bd9fc1 commit 9a336fe

File tree

20 files changed

+391
-321
lines changed

20 files changed

+391
-321
lines changed

openbas-front/builder/dev/dev.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint import/no-extraneous-dependencies: 0 */
1+
/* eslint import-x/no-extraneous-dependencies: 0 */
22

33
import { readFileSync } from 'node:fs';
44
import path from 'node:path';

openbas-front/builder/prod/prod.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint import/no-extraneous-dependencies: 0 */
1+
/* eslint import-x/no-extraneous-dependencies: 0 */
22

33
import fs from 'node:fs';
44

openbas-front/eslint.config.js

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
/* eslint import/no-extraneous-dependencies: 0 */
2-
3-
// imports to not let tools report them as unused
4-
import 'eslint-import-resolver-oxc';
1+
/* eslint import-x/no-extraneous-dependencies: 0 */
52

63
import js from '@eslint/js';
74
import stylistic from '@stylistic/eslint-plugin';
85
import vitest from '@vitest/eslint-plugin';
6+
import { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript';
97
import customRules from 'eslint-plugin-custom-rules';
108
import i18next from 'eslint-plugin-i18next';
11-
import importPlugin from 'eslint-plugin-import';
9+
import * as importXPlugin from 'eslint-plugin-import-x';
1210
import playwright from 'eslint-plugin-playwright';
1311
import react from 'eslint-plugin-react';
1412
import reactRefresh from 'eslint-plugin-react-refresh';
@@ -29,12 +27,12 @@ export default [
2927
{ settings: { react: { version: 'detect' } } },
3028

3129
// rules recommended by eslint-plugin-import
32-
importPlugin.flatConfigs.recommended,
33-
importPlugin.flatConfigs.typescript,
30+
importXPlugin.flatConfigs.recommended,
31+
importXPlugin.flatConfigs.typescript,
3432
{
3533
settings: {
36-
'import/resolver': 'oxc',
37-
'import/ignore': [
34+
'import-x/resolver-next': [createTypeScriptImportResolver()],
35+
'import-x/ignore': [
3836
'react-apexcharts', // ignore react-apexcharts as the default export is broken
3937
],
4038
},
@@ -102,11 +100,11 @@ export default [
102100
'@stylistic/object-property-newline': ['error', { allowAllPropertiesOnSameLine: false }],
103101

104102
// eslint-plugin-import rules
105-
'import/no-named-as-default-member': 'off',
106-
'import/prefer-default-export': 'error',
107-
'import/no-mutable-exports': 'error',
108-
'import/namespace': 'off', // off to reduce computing time for one file, on when doing yarn lint
109-
'import/no-extraneous-dependencies': [
103+
'import-x/no-named-as-default-member': 'off',
104+
'import-x/prefer-default-export': 'error',
105+
'import-x/no-mutable-exports': 'error',
106+
'import-x/namespace': 'off', // off to reduce computing time for one file, on when doing yarn lint
107+
'import-x/no-extraneous-dependencies': [
110108
'error',
111109
{
112110
devDependencies: [
@@ -183,7 +181,7 @@ export default [
183181
plugins: { vitest },
184182
rules: {
185183
...vitest.configs.recommended.rules,
186-
'import/no-extraneous-dependencies': [
184+
'import-x/no-extraneous-dependencies': [
187185
'error',
188186
{
189187
devDependencies: [
@@ -202,7 +200,7 @@ export default [
202200
...playwright.configs['flat/recommended'],
203201
rules: {
204202
...playwright.configs['flat/recommended'].rules,
205-
'import/no-extraneous-dependencies': [
203+
'import-x/no-extraneous-dependencies': [
206204
'error',
207205
{
208206
devDependencies: [

openbas-front/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,10 @@
9494
"cross-env": "7.0.3",
9595
"esbuild": "0.25.1",
9696
"eslint": "9.23.0",
97-
"eslint-import-resolver-oxc": "0.13.1",
97+
"eslint-import-resolver-typescript": "4.3.2",
9898
"eslint-plugin-custom-rules": "link:packages/eslint-plugin-custom-rules",
9999
"eslint-plugin-i18next": "6.1.1",
100-
"eslint-plugin-import": "2.31.0",
100+
"eslint-plugin-import-x": "4.10.2",
101101
"eslint-plugin-playwright": "2.2.0",
102102
"eslint-plugin-react": "7.37.4",
103103
"eslint-plugin-react-refresh": "0.4.19",
@@ -130,7 +130,7 @@
130130
"start": "vite",
131131
"deprecated-start": "node builder/dev/dev.js",
132132
"build": "node builder/prod/prod.js",
133-
"lint": "cross-env DEBUG=eslint:eslint TIMING=1 eslint --max-warnings 0 --cache --rule \"{'import/namespace': 'error', 'import/no-cycle': ['error', {'ignoreExternal': true, 'disableScc': true}]}\" .",
133+
"lint": "cross-env DEBUG=eslint:eslint TIMING=1 eslint --max-warnings 0 --cache --rule \"{'import-x/namespace': 'error', 'import-x/no-cycle': ['error', {'ignoreExternal': true}]}\" .",
134134
"control": "yarn audit --groups dependencies --summary",
135135
"check-ts": "tsc",
136136
"generate-types-from-api": "swagger-typescript-api generate --no-client -p http://localhost:8080/api-docs -o src/utils -n api-types.d.ts --sort-types",

openbas-front/src/actions/findings/finding-actions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { type SearchPaginationInput } from '../../utils/api-types';
33

44
const FINDING_URI = '/api/findings';
55

6-
// eslint-disable-next-line import/prefer-default-export
6+
// eslint-disable-next-line import-x/prefer-default-export
77
export const searchFindings = (searchPaginationInput: SearchPaginationInput) => {
88
const data = searchPaginationInput;
99
const uri = `${FINDING_URI}/search`;

openbas-front/src/actions/players/player-actions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { type SearchPaginationInput } from '../../utils/api-types';
33

44
const PLAYER_URI = '/api/players';
55

6-
// eslint-disable-next-line import/prefer-default-export
6+
// eslint-disable-next-line import-x/prefer-default-export
77
export const searchPlayers = (searchPaginationInput: SearchPaginationInput) => {
88
const data = searchPaginationInput;
99
const uri = `${PLAYER_URI}/search`;

openbas-front/src/admin/components/common/form/TextFieldAskAI.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ import { useTheme } from '@mui/material/styles';
1919
import { type FunctionComponent, type MouseEvent as ReactMouseEvent, useState } from 'react';
2020

2121
import { aiChangeTone, aiExplain, aiFixSpelling, aiGenMedia, aiGenMessage, aiGenSubject, aiMakeLonger, aiMakeShorter, aiSummarize } from '../../../../actions/AskAI';
22-
// eslint-disable-next-line import/no-cycle
22+
// eslint-disable-next-line import-x/no-cycle
2323
import SimpleRichTextField from '../../../../components/fields/SimpleRichTextField';
2424
import { useFormatter } from '../../../../components/i18n';
25-
// eslint-disable-next-line import/no-cycle
25+
// eslint-disable-next-line import-x/no-cycle
2626
import ResponseDialog from '../../../../utils/ai/ResponseDialog';
2727
import useAI from '../../../../utils/hooks/useAI';
2828
import useEnterpriseEdition from '../../../../utils/hooks/useEnterpriseEdition';

openbas-front/src/admin/components/common/injects/teams/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as R from 'ramda';
44
import { type Team } from '../../../../../utils/api-types';
55
import { colors } from '../../../../../utils/Charts';
66

7-
// eslint-disable-next-line import/prefer-default-export
7+
// eslint-disable-next-line import-x/prefer-default-export
88
export const getTeamsColors: (teams: Team[]) => Record<string, string> = (teams: Team[]) => {
99
const theme = useTheme();
1010

openbas-front/src/admin/components/scenarios/constants.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// eslint-disable-next-line import/prefer-default-export
1+
// eslint-disable-next-line import-x/prefer-default-export
22
export const scenarioCategories = new Map([
33
['global-crisis', 'Global Crisis'],
44
['attack-scenario', 'Attack Scenario'],

openbas-front/src/components/AppIntlProvider.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ const momentMap = {
3737
};
3838

3939
// Export LANG to be used in non-React code
40-
// eslint-disable-next-line import/no-mutable-exports
40+
// eslint-disable-next-line import-x/no-mutable-exports
4141
export let LANG = DEFAULT_LANG;
4242

4343
const AppIntlProvider: FunctionComponent<{ children: ReactElement }> = ({ children }) => {

openbas-front/src/components/CKEditor.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ import {
5656
} from 'ckeditor5';
5757
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
5858
// @ts-ignore
59-
// eslint-disable-next-line import/extensions
59+
// eslint-disable-next-line import-x/extensions
6060
import en from 'ckeditor5/translations/en.js';
6161
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
6262
// @ts-ignore
63-
// eslint-disable-next-line import/extensions
63+
// eslint-disable-next-line import-x/extensions
6464
import fr from 'ckeditor5/translations/fr.js';
6565
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
6666
// @ts-ignore
67-
// eslint-disable-next-line import/extensions
67+
// eslint-disable-next-line import-x/extensions
6868
import zh from 'ckeditor5/translations/zh.js';
6969
import { useEffect } from 'react';
7070
import { useIntl } from 'react-intl';

openbas-front/src/components/fields/OldRichTextField.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { FormHelperText, InputLabel } from '@mui/material';
22
import { Field } from 'react-final-form';
33
import { makeStyles } from 'tss-react/mui';
44

5-
// eslint-disable-next-line import/no-cycle
5+
// eslint-disable-next-line import-x/no-cycle
66
import TextFieldAskAI from '../../admin/components/common/form/TextFieldAskAI';
77
import CKEditor from '../CKEditor';
88
import { useFormatter } from '../i18n';

openbas-front/src/components/fields/SimpleRichTextField.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { InputLabel } from '@mui/material';
22

3-
// eslint-disable-next-line import/no-cycle
3+
// eslint-disable-next-line import-x/no-cycle
44
import TextFieldAskAI from '../../admin/components/common/form/TextFieldAskAI';
55
import CKEditor from '../CKEditor';
66

openbas-front/src/network.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import axios from 'axios';
22
import { normalize } from 'normalizr';
33

4-
// eslint-disable-next-line import/prefer-default-export
4+
// eslint-disable-next-line import-x/prefer-default-export
55
export const api = (schema) => {
66
const instance = axios.create({ headers: { responseType: 'json' } });
77
// Intercept to apply schema and test unauthorized users

openbas-front/src/public/components/systembanners/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { type PlatformSettings } from '../../../utils/api-types';
22
import { isNotEmptyField, recordEntries, recordKeys } from '../../../utils/utils';
33
import { SYSTEM_BANNER_HEIGHT_PER_MESSAGE } from './SystemBanners';
44

5-
// eslint-disable-next-line import/prefer-default-export
5+
// eslint-disable-next-line import-x/prefer-default-export
66
export const computeBannerSettings = (settings: PlatformSettings) => {
77
const bannerByLevel = settings.platform_banner_by_level;
88
const isBannerActivated = bannerByLevel !== undefined && isNotEmptyField(recordKeys(bannerByLevel));

openbas-front/src/utils/ai/ResponseDialog.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import { LoadingButton } from '@mui/lab';
22
import { Alert, Button, Dialog, DialogActions, DialogContent, DialogTitle, TextField } from '@mui/material';
33
// As we can ask AI after and follow up, there is a dependency lifecycle here that can be accepted
44
// TODO: Cleanup a bit in upcoming version
5-
// eslint-disable-next-line import/no-cycle
5+
// eslint-disable-next-line import-x/no-cycle
66
import MDEditor, { commands } from '@uiw/react-md-editor/nohighlight';
77
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
88
// @ts-ignore
99
import { type FunctionComponent, useEffect, useRef } from 'react';
1010

11-
// eslint-disable-next-line import/no-cycle
11+
// eslint-disable-next-line import-x/no-cycle
1212
import TextFieldAskAI from '../../admin/components/common/form/TextFieldAskAI';
1313
import CKEditor from '../../components/CKEditor';
1414
import { useFormatter } from '../../components/i18n';

openbas-front/src/utils/hooks.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useDispatch } from 'react-redux';
22

33
// TODO upgrade redux to make it correctly work https://redux.js.org/usage/usage-with-typescript
4-
// eslint-disable-next-line @typescript-eslint/no-explicit-any,import/prefer-default-export
4+
// eslint-disable-next-line @typescript-eslint/no-explicit-any,import-x/prefer-default-export
55
export const useAppDispatch: any = useDispatch;

openbas-front/src/utils/technical.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// eslint-disable-next-line import/prefer-default-export
1+
// eslint-disable-next-line import-x/prefer-default-export
22
export enum TechnicalScenarioSimulationEnum {
33
Scenario = 'SCENARIO',
44
Simulation = 'SIMULATION',

openbas-front/tests_e2e/fixtures/baseFixtures.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,5 @@ const test = testBase.extend<{ autoTestFixture: string }>({
3939
}],
4040
});
4141

42-
// eslint-disable-next-line import/prefer-default-export
42+
// eslint-disable-next-line import-x/prefer-default-export
4343
export { test };

0 commit comments

Comments
 (0)